Blender Node Groups ► 03. Vector Noise - искажение текстур с помощью процедурных шумов.

  Рет қаралды 12,618

Andrey Sokolov

Andrey Sokolov

3 жыл бұрын

Стать спонсором или задонатить можно здесь - boosty.to/as.blend
Плэйлист, где в каждом видео мы собираем по одной нод-группе для повседневного использования. Развитие канала напрямую зависит от вашей реакции.
Меня зовут Андрей Соколов, я специалист по компьютерной графике, оптимизации и автоматизации проектов, работаю в Блендер с 2014 года. В этом видео рассмотрим широко распространённую технику искажения текстур за счёт искажения их входных координат.
Ссылка на плэйлист по нод-группам в Блендер:
• Blender Node Groups
Ссылка на плэйлист с базовым курсом по Блендер: • Blender 3D Основы
Буду рад видеть в подписчиках:
Yt (рус.): / andreysokolovru
Tg (рус.): t.me/andreysokolovofficial
Vk (рус.): as.blend
Boosty (рус.): boosty.to/as.blend
Англоязычные ресурсы (временно не обновляю в связи с санкциями):
Инстаграм (eng.) - / so_records
Твиттер (eng.) - / so_records_rus
Фейсбук (eng.) - / andrey.guardian.sokolov
Английский канал (eng.) - / andreysokolov
#blender #блендер #andreysokolov

Пікірлер: 110
@TemaShahov
@TemaShahov 3 жыл бұрын
А чем отличается если вместо 3х нойзов взять один цветной? Как будто бы тоже самое
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
🤔 хммм, а ведь и правда. Всё думал, как бы это так сделать, а ларчик просто открывался. Супер!
@TemaShahov
@TemaShahov 3 жыл бұрын
@@AndreySokolovRu а ещё если нода уже везде где надо подключена и мы ее дублируем через Ctrl+Shift+D, то у дубликата остаются связи. Пусть маленькая но всё же тоже оптимизация Ещё мне очень нравятся хоткеи Ctrl+"+"/Ctrl+0/Ctrl+* когда выбраны две текстуры или два шейдера он добавляет ноду эдд/микс/мультиплай. Мне удобней чем запоминать когда ctrl держать, а когда alt или shift и когда ПКМ, а когда ЛКМ. Не могу логику запомнить.
@VirtualityLife
@VirtualityLife 3 жыл бұрын
@@AndreySokolovRu Добрый день! Колокольчик что-то молчит, а я жду новые видео :) Прошу помочь с проблемой по анимации. У меня 1 объект составной, из метаболов. Вне зависимости объединены они или нет при релокации и масштабировании анимация записывается в КАЖДЫЙ метабол. У меня на 50 кадров анимация облака из метаболов состояние покоя, но их больше 10 шт. Мне нужно чтобы была анимация с 1 именем, чтобы после экспорта в fbx я мог по этому одному имени обратиться в скрипте С# в Unity и проиграть эту анимацию а не писать код для 10 анимаций одного действия. Подскажите как такого сделать. Или как объединить 10 и более анимаций под 1 именем.
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
@@VirtualityLife я писал в сообществе на канале, что записал курс по волюметрикам и теперь его монтирую, какое-то время это займёт. fbx не распознаёт метаболы. При экспорте Блендер конвертирует их в статичные меши. Анимация деформации мешей fbx не поддерживается. fbx поддерживает Shape Keys, но у метаболов количество полигонов не стабильно, поэтому это тоже не вариант. Сработают только форматы экспорта типа alembic (*.abc), заточенные под экспорт деформации мешей, но они, во-первых, в разы "тяжелее", чем fbx, а во-вторых, экспортируют покадровую секвенцию анимации, а не саму анимацию.
@VirtualityLife
@VirtualityLife 3 жыл бұрын
@@AndreySokolovRu Ясно... зря я сунулся к метаболам :) Буду другим способом ваять. Спасибо большое за ответ! А то я бы ещё долго кувыркался.
@user-ch1df4fs8p
@user-ch1df4fs8p Жыл бұрын
мне нравится такая концепция - "спидран". Посмотрел,оценил возможности инструмента, что-то сам попытался покрутить, а далее - от общего к частному - уже легче запоминать материал.
@artkoteguar6911
@artkoteguar6911 3 жыл бұрын
Я человек простой - сначала ставлю лайк потом смотрю видео
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
Правильный подход! Спасибо! ))
@user-mm7ch3xw4e
@user-mm7ch3xw4e 3 жыл бұрын
Зашел посмотреть вчерашнее видео, а тут бац уже новое))))
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
Иногда такое получается устроить )
@user-vg6bd7of5y
@user-vg6bd7of5y Жыл бұрын
Спасибо!
@target7967
@target7967 3 жыл бұрын
Андрей то что вы делаете на канале настоящий балдеж! Для людей в теме, это бесценная информация! Спасибо.
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
Спасибо! Радостно, что это приносит пользу. )
@user-cg7rr2nv1k
@user-cg7rr2nv1k 3 жыл бұрын
Привет. Большое спасибо за интересные плюшки... В прошлом году смотрел зарубежных ребят, которые чисто математическими нодами делали нужную текстуру, в основном, для Дисплесмент. Мат ноды вообще творят чудеса
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
Да, на этом Nodevember'е безумие творилось ))) Жаль, что только в Cycles это всё работает. И если б разработчики ещё микрополигональный дисплейсмент с адаптивным сабдивом в Cycles когда-нибудь до ума довели: так много я в своё время на эту их фишку ставил, а они её так и не допилили, эх...
@Mika_love_me
@Mika_love_me 3 жыл бұрын
Рахмет 👍👍👍. Здоровье вам 🙏
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
Спасибо! Взаимно! )
@ivanuralsky8913
@ivanuralsky8913 3 жыл бұрын
не успел посмотреть первое видео из серии и не хочется уже начинать из середины, поэтому онлайн не смотрю. Спасибо за труды! осваиваю по очереди все ролики
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
Спасибо! Тут кстати в этом плэйлисте видео друг с другом практически не связаны, каждый раз что-то с нуля собираем. Дальше, возможно, будут отсылки к определённым нод-группам из первых видео, но пока планирую только новые делать каждый раз.
@igoryurin
@igoryurin 3 жыл бұрын
@@AndreySokolovRu О! попёрло! "Опять играю")))
@maxcherdancev8226
@maxcherdancev8226 3 жыл бұрын
Очень полезный нод, спасибо большое)
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
Спасибо! Посмотрите закреплённый комментарий, там можно вместо трёх текстур для сдвига использовать одну, только брать с нее выход не fac, а Color, и подключать его дальше уже без Combine XYZ. Я, как будет время, небольшой апдейт запишу на этот счёт.
@Vladimir_Stepchenkov
@Vladimir_Stepchenkov 2 жыл бұрын
Спасибо! :)
@omurbekov2452
@omurbekov2452 Жыл бұрын
Спасибо большое, обожаю вас
@AndreySokolovRu
@AndreySokolovRu Жыл бұрын
Спасибо! )
@user-dl1xv6hi6n
@user-dl1xv6hi6n 3 жыл бұрын
Андрей ,респект ✊
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
Спасибо! )
@Jhon_SiL_ver
@Jhon_SiL_ver 3 жыл бұрын
Все ещё достоин! (с) Тор
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
Спасибо! )
@vazapcool
@vazapcool 3 жыл бұрын
Вот бы ещё понять принцип создания этих самых текстур с помощью нодов)
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
В смысле изначальных? kzbin.info/www/bejne/jKaxYXyciKqkjM0 - вот здесь я пытаюсь такие вещи объяснить.
@eugenekrutoy1475
@eugenekrutoy1475 3 жыл бұрын
Никогда не задумывался, что чёрный 0 а белый 1. Это ж можно значения использовать. Черт столько идей сразу! Спасибо!
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
Именно! Вот здесь я подробнее раскрываю именно эту тему: kzbin.info/www/bejne/jKaxYXyciKqkjM0
@eugenekrutoy1475
@eugenekrutoy1475 3 жыл бұрын
👍
@eugenekrutoy1475
@eugenekrutoy1475 3 жыл бұрын
@@AndreySokolovRu Сейчас делаю, ORM текстуру, для движка. Это означает Occlusion, Roughness, Metallness. Засунутые в rgb каналы, одной текстуры для уменьшения памяти текстур и прочей оптимизации. Ещё есть с использованием rgba текстур. Ну или как шейдер пожелает. Делаю в фотошопе, но походу уже знаю как их сразу из блендера доставать. Вот был бы инструмент пакующий эти текстурки. Было бы огонь.
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
@@eugenekrutoy1475 Combine RGB или Combine XYZ ноды не пойдут для этой цели? )))
@cyberdaywww3903
@cyberdaywww3903 3 жыл бұрын
Андрей спасибо за информацию, так доходчиво объяснить про ноды было давно ожидаемым курсом видео. Не могли бы Вы так же подробно рассказать про анимацию, риддинг, ретопологию. С чего начинать, в каких случаях ретопировать, сколько полигонов и в каких пропорциях, как вставлять арматуры. Будем очень благодарны!
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
Спасибо! Посмотрим, не люблю загадывать. Риггинг и анимация персонажей - это всё же не ко мне, я в геймдеве не работал, больше по моушн-графике, есть намного более компетентные люди.
@yana967
@yana967 3 жыл бұрын
спасибо
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
Спасибо за коммент!
@igoryurin
@igoryurin 3 жыл бұрын
И в третий раз поздравляю)))
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
Спасибооооо! ))))
@Sam-dq5jm
@Sam-dq5jm 3 жыл бұрын
пока мало что понял, но чел ты крутой, инфа супергодная)
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
Спасибо! )
@CamoxaRUS
@CamoxaRUS 3 жыл бұрын
Цикличный оулоуолоулоулоу тебе)
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
Еееееее! )))
@SuperElon
@SuperElon 3 жыл бұрын
Ничего не понял, но очень интересно.
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
Спасибо, ну да, это такие штуки, чисто технические )
@ordinaryman292
@ordinaryman292 2 жыл бұрын
Размытие текстуры очень полезно! Давно искал как это сделать. Спасибо.
@AndreySokolovRu
@AndreySokolovRu 2 жыл бұрын
😊👍
@mihoilo2276
@mihoilo2276 2 жыл бұрын
Не совсем понимаю как вы делаете из одной линии соединения равзлетвление. У меня в группе с XYZ было не 1 вектор на 3 на входе
@AndreySokolovRu
@AndreySokolovRu 2 жыл бұрын
Большая просьба указывать таймкод, поскольку я не помню свои видео наизусть, и версию Блендер )
@Joker-oq6pm
@Joker-oq6pm 3 жыл бұрын
Огромное спасибо за видео,вопрос блендер соперник сабстенс дизайнеру?
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
Я с сабстенсом не работал, не могу сказать )
@avtonomys
@avtonomys 3 жыл бұрын
А можно же вместо Scale vector + Add vector использовать один add MixRGB, сокет Fac использовать вместо scale?
@avtonomys
@avtonomys 3 жыл бұрын
А, понял ))) Fac не как Scale работает, он ограничен от 0 до 1 и просто смешивает два вектора))
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
@@avtonomys технически это скорее всего то же самое, просто как математика работает я знаю точно, а как высчитываются режимы наложения - не очень. В фотошопе и Блендере, по крайне мере, насколько я знаю, одни и те же по названию режимы отличаются. И надо кстати проверить - по-моему для фактора можно вручную вбивать значения и вне диапазона от 0 до 1, или он их на вход может принимать, или это вообще с Mix Shader было, компа под рукой нет, не могу проверить.
@juser5954
@juser5954 2 жыл бұрын
3:48 Здравствуйте,почему когда я пытаюсь объединить ноды нажатием на ПКМ и ctrl ,они у меня разъединяются?
@AndreySokolovRu
@AndreySokolovRu 2 жыл бұрын
Shift+ПКМ
@user-rb7zf8gk3c
@user-rb7zf8gk3c 3 жыл бұрын
Добрый день, Андрей. Как думаете насколько сложно аддон instant meshes для версии 2.8 подогнать под версию 2.9?
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
Добрый день. Зависит от того, кто этим будет заниматься (не я).
@user-rb7zf8gk3c
@user-rb7zf8gk3c 3 жыл бұрын
@@AndreySokolovRu понял)) И вопрос к вам, как к оптимизатору: какой, на ваш взгляд самый простой вариант равномерно утоньшать модели?
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
@@user-rb7zf8gk3c первое, что надо принимать во внимание - равномерное утоньшение рано или поздно неизбежно ведёт к взаимному пересечению граней и полигонов. Второе - без ручного вмешательства скорее всего обойтись не удастся. Третье - переделывать всегда сложнее и дороже, чем сразу делать правильно. Если речь идёт об анимации, модель изначально надо делать минимальной толщины, а уже от нее раздувать тем или иным способом. Если речь об исправлении косяков, оптимизация - это не о том, как исправлять косяки, а о том, как таких ситуаций не допускать. Конкретные способы того, о чем вы говорите, будут зависеть от конкретных моделей, их топологии, количества, глубины утоньшения и того, какие результаты вы готовы счесть приемлемыми. Если исходники - не куча брака, я бы смотрел в сторону связки Solidify с even thickness и инвертированными нормалями + Weld, с последующим их применением, убиранием внешней оболочки и доделкой вручную. Или даже просто в Edit mode вручную Alt+S с последующим merge by distance и доделкой вручную.
@user-rb7zf8gk3c
@user-rb7zf8gk3c 3 жыл бұрын
@@AndreySokolovRu я просто делаю фигуры для топиариев, их надо сначала делать толстыми, потом сужать, чтобы они в реальности не были раздутыми. И сначала пользовался alt+s, но для корректной работы нужно сохранять те файлы в которых топология крупная, чтобы не было уродского результата)) Потом пробовал через скульпт - достаточно быстрый вариант, мало доработок. И сейчас смотрю в сторону создание тонкой модели и накладывания текстуры травы
@user-dl1xv6hi6n
@user-dl1xv6hi6n 3 жыл бұрын
Я сейчас делаю анимацию персонажа в 3d max и знаете что я вам скажу что это тоже самое что кататься на велосипеде на квадратных колёсах это боль 😖 я уравновешенный человек и спокойный ну этот софт это что то с чем то бипед боль скининг боль надеюсь с анимацией норм все будет ))))А по анимации ещё будут видео выходить?
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
Возможно что-то будет, но честно говоря, я не большой специалист по риггингу и анимации персонажей. Основы знаю, конечно, какие-то отдельные фишки, но реальной практики было не так много, это всё же не совсем моя тема. Мне кажется, сейчас имеет смысл смотреть в сторону софта, который всё это может делать как-то автоматизировано. Возможно, я ошибаюсь.
@user-dl1xv6hi6n
@user-dl1xv6hi6n 3 жыл бұрын
@@AndreySokolovRu я согласен с вами по поводу софта !не будь это задание по курсу одной из школ нашей необъятной ,делал бы возможно в каскадере
@user-ei5uj7zm8z
@user-ei5uj7zm8z 2 жыл бұрын
1:25 сделала все точно также как в видео, нажимаю ctrl+shift+click, но кубик не меняется? С чем это может быть связано?
@AndreySokolovRu
@AndreySokolovRu 2 жыл бұрын
С тем, что не включен аддон Node Wrangler
@user-ei5uj7zm8z
@user-ei5uj7zm8z 2 жыл бұрын
@@AndreySokolovRu спасибо
@Jason_Silent
@Jason_Silent 3 жыл бұрын
Может это не к вам, но не могли бы записать ролик о режимах подключаемых карт? Linear, Non-Color, я заметил это сильно влияет на конечный результат, но толковой информации никто не объясняет, просто говорит, "Эту текстуру подключаем так, а эту эдак" но почему? Не понятно. Или может знаете ссылку на документацию?
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
В отличие от обычного sRGB, который яркость цвета компрессирует и отображает пиксели темнее, чем они фактически есть, чтобы адаптировать под человеческое зрение, linear использует не компрессированный цветовой диапазон, воспроизводящийся от 0 до 1 линейно, с поправкой на настройки Color Management. Non-Color - то же, что linear, но плюс к этому игнорирует все настройки цветового пространства - Color Management, Exposure и т.д., просто линейно воспроизводит цвета в чистом виде. Ссылка - вот, например: blender.stackexchange.com/a/87265/81172
@Jason_Silent
@Jason_Silent 3 жыл бұрын
@@AndreySokolovRu спасибо за подсказку!
@user-sk8ij7tg6p
@user-sk8ij7tg6p 2 жыл бұрын
ОТкуда взялся нод Viewer?
@AndreySokolovRu
@AndreySokolovRu 2 жыл бұрын
Нужно найти и включить в Edit > Preferences > Add-ons аддон Node Wrangler
@ermineKA9
@ermineKA9 Жыл бұрын
Как двигать (перемещать) рероут ?
@AndreySokolovRu
@AndreySokolovRu Жыл бұрын
Выделить и нажать G, как и любой объект в Блендер.
@ermineKA9
@ermineKA9 Жыл бұрын
@@AndreySokolovRu тю, точно 🤣🤣🤣 спасибо 😉 👍
@user-sk8ij7tg6p
@user-sk8ij7tg6p 2 жыл бұрын
не пойму куда комбайн ХВЗ подключился из вектора
@AndreySokolovRu
@AndreySokolovRu 2 жыл бұрын
Тайминг видео, плз, я их не помню наизусть )
@user-sk8ij7tg6p
@user-sk8ij7tg6p 2 жыл бұрын
@@AndreySokolovRu разобрался.
@kvest_Star
@kvest_Star 3 жыл бұрын
Кто нибудь знает как установить последнюю версию блендер на виндовс 7 ?
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
Боюсь, никак. На официальном сайте пишут, что начиная с 2.93, семёрка больше не поддерживается.
@ivanbo2182
@ivanbo2182 2 жыл бұрын
@@AndreySokolovRu поставь 3 альфу у меня норм
@AndreySokolovRu
@AndreySokolovRu 2 жыл бұрын
@@ivanbo2182 да у меня и с 2.93 всё в порядке )) В работе альфа-версии я никогда не использую, наученный горьким опытом, а просто так её крутить пока времени нет )
@user-ch1df4fs8p
@user-ch1df4fs8p Жыл бұрын
репак блендера на вин 7 легко гуглится. Просто скачиваешь и запускаешь.
@kvest_Star
@kvest_Star Жыл бұрын
@@user-ch1df4fs8p спасибо, уже не актуально
@iraklinacvlishvili2107
@iraklinacvlishvili2107 3 жыл бұрын
мне очень интересно где вообще это можно применить
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
В процедурном текстурировании - когда материалы не рисуются вручную, а генерируются с помощью нодов.
@SlonoKing
@SlonoKing 2 жыл бұрын
Да нигде. Чисто баловство
@SwedliAnimator
@SwedliAnimator 3 жыл бұрын
Вопрос от новичка: как в коде (bpy.data...) вызвать Кость арматуры ?
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
bpy.data.objects['Название Объекта Арматуры'].data.bones['Название Кости']
@SwedliAnimator
@SwedliAnimator 3 жыл бұрын
@@AndreySokolovRu большое спасибо
@SwedliAnimator
@SwedliAnimator 3 жыл бұрын
@@AndreySokolovRu смотрите , а как теперь к bpy.data.objects['!1Arm'].data.bones['mouth'] применить : bpy.ops.graph.sound_bake(filepath="путь к файлу")
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
​@@SwedliAnimator Я попробую объяснить, но поковыряться придётся. bpy.ops - оператор, который запекает в выделенные кривые анимации звук из указанного в качестве аргумента файла. Кость - это просто кость. На ней может быть, а может не быть кривая анимации. Надо пробегаться по всем fcurves объекта, они находятся в bpy.data.objects['!1Arm'].animation_data.action.fcurves и с помощью if проверять, равняется ли их аргумент data_path в этом случае 'pose.bones['mouth']...' - и после точки путь анимированного параметра ('rotation_quaternion', 'location') или что там анимировано. Если не является - то их аргумент .select = False, если равняется - True. Так перебрав все анимационные кривые, мы снимем выделение со всех ненужных и оставим выделение на нужных. Это первая часть. Сначала стоит убедиться, что она сработала без ошибок, нужные кривые в Graph Editor выделились, ненужные не выделились. После этого достаточно просто запустить bpy.ops и т.д. оператор с указанием в качестве аругмента пути до нужного аудиофайла (включая название и расширение) - и он уже должен будет сам всё запечь, если только не окажется очень сильно прихотливым к контексту. Тогда надо ему ещё делать контекст-оверрайд, и вот это точно в коммент я уже не
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
@@SwedliAnimator короче выделить нужные кривые так (если ютуб не переформатирует): import bpy obj_name = "Armature" # имя объекта bone_name = "Bone" # имя кости animated_param = 'pose.bones["Bone"].location' # анимированный параметр, чтобы получить этот путь, правой кнопкой мышки щёлкнуть на анимированном параметре > выбрать Copy Data Path и вставить вместо того, что до хэштега obj = bpy.data.objects[obj_name] if obj.animation_data and obj.animation_data.action and obj.animation_data.action.fcurves: for fc in obj.animation_data.action.fcurves: if fc.data_path == animated_param: fc.select = True else: fc.select = False
@greenda7672
@greenda7672 Жыл бұрын
возможно разработчики тоже, не столько хороши! и пока не могут это сделать!
@AndreySokolovRu
@AndreySokolovRu Жыл бұрын
Если речь про Blur, то в Блендер 3.5 в геонодах его уже сделали.
@waltage
@waltage 3 жыл бұрын
есть темы поинтереснее типа. Двухфакторный микс нормалей. Или трехфакторная едж маска. Последняя нужна, потому что в Маск Туле она говно.
@AndreySokolovRu
@AndreySokolovRu 3 жыл бұрын
Не может быть! Расскажите подробнее!
@CamoxaRUS
@CamoxaRUS 3 жыл бұрын
@@AndreySokolovRu чую... сарказм)
39kgのガリガリが踊る絵文字ダンス/39kg boney emoji dance#dance #ダンス #にんげんっていいな
00:16
💀Skeleton Ninja🥷【にんげんっていいなチャンネル】
Рет қаралды 8 МЛН
Why Is He Unhappy…?
00:26
Alan Chikin Chow
Рет қаралды 26 МЛН
Blender 3D ► 11. Материалы. Часть 1.
16:50
Andrey Sokolov
Рет қаралды 97 М.
Налог на незнание JavaScript - [Hamster Kombat]
50:20
8. Blender. Шум | Noise Texture Node | Fresnel (Материалы)
52:18
Программная мясорубка
Рет қаралды 2 М.
10. Blender. Map Range Node | Correct Face Attributes | Диапазон (Материалы)
38:27
Программная мясорубка
Рет қаралды 755