Урок Houdini - "Инстансы или рендер леса" (RUS)
Вставка
- Опубліковано 21 сер 2024
- Anima render, рендер-ферма для ваших проектов:
bit.ly/2mcvS5T
Промокод: HOUDINI_RUS
Курс по частицам: gum.co/popnet
Курс по Redshift: gum.co/rsrop
Курс по Chops: gum.co/chopnet
Телеграм-канал и чат: t.me/hipnc
Наш Патреон: / hipnc
В этом уроке мы рассмотрим работу с инстансами в Houdini и Redshift для быстрого рендера больших массивов объектов.
Содержание:
1. Создание шейдеров дерева
2. Что такое инстансы
3. Рандомизация копируемой геометрии через атрибуты
4. Выбор объектов для копирования
Спасибо тебе большое, человек! Единственный человек делающий уроки по гудини на великом и могучем, продолжай, пожалуйста
Скоро от русского языка там ничего не останется. Проще английский выучить, все равно половина слов русскими буквами заменяется, такая каша уже получилась в этой сфере.
Доброго часу доби! Велике Вам дякую, уроки надзвичайно корисні, інформативні і вдало структуровані. Дякую!
низкий тебе поклон, добрый человек
Здравствуйте, Станислав! Ваши уроки это манна небесная. Большая просьба к Вам, надеюсь её и другие поддержат, в продолжении этого урока, записать урок по работе с очень тяжелыми и сложными сценами. Еще раз спасибо за столь ИНФОРМАТИВНЫЕ уроки.
лучший канал в истории человечества
После Маи в гудини с материалами все просто - одно и тоже ) Это радует )
Стас, спасибо тебе! Это просто потрясающе. Сижу в слезах радости за монитором. Очень круто!
Лучший канал по Гудини,и Стас расказывает прям обалденно
Редшифт уже умеет на лету конвертировать пакеды в нативные редшифт инстансы. Просто надо на обж ноде поставить галку Instance SOP Level Packed primitives. С этого момента оно перестаёт пытаться из распаковать и работает ровно так же как инстанс, но при этом работают все фичи кописопа типа стапмкопи и т.д.. Аттрибуты с геометрии самого инстанса можно считывать но для этого их перед запаковкой надо спромоутить на вертексы. Таким образом можно забирать в шейдер атрибуты как точек на которые происходит копирование (через импорт пойт аттрибута) так и с непосредственно самой геометрии кждого конкретного инстанса (через ипорт вертекс атрибута)
Зачем вам русский язык?)) В этом посте он лишний, проще на английском прочитать, чем натыкаться каждый раз на эти зубодробительные американизмы.
Спасибо вам, Станислав!
Отличный урок. Большое спасибо!
Thank you so much. Keep going. I wish you to have 500k subscribers
Спасиба тебе огромное за те знания которыми ты делишься.
Очень понятно и интересно, спасибо!
Хочется видеть примеры применения и в игровой индустрии с hda.
будто снова лекцию Стаса Пологрудова посмотрел))! Спасибо за ностальжи!
А у него была лекция про инстансы?
Houdini по-русски была, нам надо было лес рендерить и он рассказывал про инстансы между делом))
Умный , аж страшно ....уффф , я так никогда не смогу .
Стас, спасибо,. Некоторые моменты просто спасли меня.
Стас, большое спасибо, очень вовремя. Сейчас делаю сцену где куча инстансов, но я использовал ноду инстанс внутри гео контекста чтоб подгружать по списку (суифксу в названии файла тоже с помощью итоа) 30 разных камней и кустарников. Но тут ты подал идею сделать свой инстансер в гео контексте, как оригинальный, но со своими настройками. Вот прям сейчас и сделал.
Посмотрим, что ты скажешь, когда я доделаю урок о том, как в любой геометрии автоматом находить повторяющиеся куски и заменять их на инстансы. :)
Houdini по-русски , Стас, я и так считаю что ты один из лучших в приподнесении информации по гудини в русскоязычном пространстве! Когда-нибудь стану таким же крутым 😊
Ребят, сколько танцев с бубном и только из-за того что он (redshift) гудиневские пакеды нормально не читает... Стас спасибо вам, вы действительно делаете крутые уроки, это правда!
Скажите пожалуйста, может redshift делать векторный дисплейсмент или только N и tangent?
Это не танцы с бубнами, инстансы придуманы гораздо раньше пакедов и именно как способ рендера. А пакеды были созданы как альтернатива инстансам в симуляциях разрушений. И поскольку это сугубо гудиневский формат, сторонние рендеры их не могут декодировать (автор плагинов для Редшифта и Октана про это рассказывал).
По поводу дисплесмента там можно выбрать вектор или карту высот в пространстве объекта или тангентов. Но я векторный дисплейс не тестировал.
Спасибо!)
спасибо, это бесценно
Thanks a lot . Cool stuff is there.
I've noticed there is a new Hightfield Scatter node in Houdini 17 . Play with it, quite good.
no comments.... u r the best .
Вообще в синьке Октан Рендер, есть плюшка скаттер... вот в нее спокойно погружается любое кол-во обьектов, спокойно за 10 мин. В иной раз задумаешься что делать в Гудини или нет... Но за урок благодарствую!
Ну ты крутой! Супер
Очень гуд.
огонь
Я думаю ,чтобы гудини хорошо знать нужно лет 10 его изучать .Хоть мне и иетересно в ней ковыряться ,но лучше выучусь на персонажного аниматора !
Да нет, за полгода вполне реально прокачаться, чтобы уже делать свои проекты. Тем более, надо учить не Гудини целиком, а выбрать отдельную сферу и развивать ее. Например симуляции, процедурная анимация, процедурный моделинг и т.п. Здесь важна практика, теория настолько обширна, что быстро забывается.
@@hipnc Ну хорошо, уговорил - полгода, так полгода, поверю профи:) Проведу соцэксперимент - Возьмусь за Гудини с нуля, поспорив с родственниками на деньги (до этого только Скетчап слегка пробовал). Направление как раз моушен выбрал. Станислав, подскажи, платные уроки разумно брать где-то через 1, 2 месяца? После того, как освоил хелп и всё что есть по теме на Ютубе?
@@lextaller3058 Да, как минимум надо знать интерфейс и понимать какую-то базу. Можно и совсем с нуля заниматься, но это как-то не оптимально. Смысл уроков в том, чтобы понять логику работы, научиться решать собственные задачи, а не просто посмотреть, какие кнопки за что отвечают.
Отличный материал, интересно а в спрайт затащить цвет с геометрии никак нельзя? только текстуры грузить?
Нельзя. Спрайт ограниченная нода в этом смысле. Цвет можно только подключать к Opacity Color шейдера. Например для того же дерева это замедлит рендер примерно раз в 10, а то и больше.
Cпс, оч. хорошая демонстрация работы векса\атрибутов.
Но в плане инстансинга... в лесу обычно чуть больше пары деревьев. Возьмем для примера 20 (листва\елки, большие\малые, молодняк). А еще там есть кусты (тоже не пара). Добавим камешки, грибы, цветы, ветки, опавшие листья, траву (да, это все тоже не по два)...
В адекватном UX мы деревья кладем в группу и указываем инстансеру группу, мб тут можно реализовать аналогично (указывая сабнет)? Или по маске имен?
Подобный вариант я показывал в уроке Greeble-декоратор, алгоритм оттуда достаточно легко переносится в этот проект.
@@hipnc да, спс. Если можно, то еще вопрос: откуда информация, что для инстансинга достаточно прописать атрибут instance? Если бы я был гудиньщиком и предположил (пальцем в небо) что такое возможно, то пробовал бы instancepath из оригинальной инстанс-ноды, убедился бы, что оно не работает, сказал бы "ну так и не должно"...
Стас,а почему ты хипы не прикрепляешь?Или нельзя?Твой ассет я бы разобрал по косточкам)))
Стас, большое спасибо за информацию! Есть вопрос, а возможно ли сделать различную задержку по времени на каждой точке, при том, что инстанс анимированный? И будет ли рендерить это редшифт?
В редшифте простым методом этого не сделать, так как не поддерживается стампинг.
Как это делаем мы? Создаем много копий исходной геометрии с разным сдвигом.
Создаешь на Obj уровне новую ноду, в которую подгружаешь через Object merge исходную геометрию для инстанса. Потом таймшифтом ее сдвигаешь во времени. Штука в том, чтобы сделать много таких копий с разным сдвигом. Это легко можно автоматизировать выражением opdigits("..") - оно возвращает цифры, стоящие в конце ноды на уровне выше. То есть Geo1, Geo2, Geo3 вернут 1,2 и 3 соответственно. Это число можно использовать в таймшифте для рандомизации или напрямую как сдвиг, домножая его на нужное количество кадров.
Что это дает? Теперь, когда ты создаешь новую копию этой ноды, внутри автоматом меняется сдвиг, так можно сделать хоть сотню.
Потом из этих нод уже выбираешь нужную, например через itoa(), и подставляешь в атрибут s@instance.
Спасибо за оперативный и информативный ответ! Это сильно поможет на текущем проекте. Спасибо!
Автор спасибо за видео. Хотел бы поинтересоваться у вас... Вот я сделал подобную локацию из хвойного леса, и теперь я хочу по среди данной локации взорвать бомбу с кинетической ударной волной (без огня), и все деревья должны ложится в след за ударной волной. 3 разные вариации анимации падения (наклонения) деревьев я уже сделал. Чуть позже я вообще думаю изобразить как деревья ближе к эпицентру будет вырывать с корнями и разрушать на куски. Хотел бы получить от вас несколько советов, услышать вашу идею, как бы вы это провернули. буду очень благодарен)
Из простого: с помощью Attribute transfer передаем некий атрибут с точки взрыва. Этот атрибут используется для выбора конкретного инстанса из пачки, в которой каждый инстанс немного сдвинут по времени. В редшифте, увы, сдвиг инстансов по времени реализуется только большим количеством объектов, каждый из которых сдвинут таймшифтом, я уже это писал в ответ к другому комментарию.
Если нормали на точках направлены из центра взрыва, можно получить постепенную анимацию наклонения или падения в направлении от центра.
Но это фейк, надо понимать.
Для реалистичных шотов некая площадь вокруг эпицентра будет выполнена в другой сцене, возможно даже в другом проекте, где с помощью динамики будет сделано искажение и разрушение деревьев, а потом результат симуляции будет подставлен в проект с инстансами в виде кэша. То есть никто не мешает вам часть деревьев обработать отдельно для получения нужного результата.
Cупер) большое спасибо)! Так то да, второй вариант больше подходит, к тому же планируется комбинировать планы (крупный, общий) и мультикам.
Привет. Такой вопрос. Размножаю геометрию инстансами. Прописываю в атрибутврангле атрибут инстанс ->нода с геометрией. Всё работает. Но есть геометрия со множеством групп, Возможно ли указывать в атрибуте инстанс путь до одной из групп геометрии? Группу нужно получить именно через атрибут, а не с использованием нод по типу бласт.
Нет, нельзя. Нужно распределить эти группы в отдельные ноды на Obj уровне или записать в файл и читать с диска через instancefile.
@@hipnc ясно, спасибо.
А если я на мантре пока что, я же могу обойтись копи стампом с галочкой инстансов?) Эффект будет такой же ?
Узнали ответ на этот вопрос? Тоже интересует это
@@dezm0n679 да, давно уже))
@@kosteikov А я еще не узнал, скажете?)
@@dezm0n679 та юзаешь инстанс пакед при копировании и для мантры и уже даже для редшифта это норм
@@kosteikov Понял, спасибо
Очень круто, скажите а есть ли способ сделать отображение инстанс обьектов не в виде боксов , а например point clouds ?
В уроке показаны настройки вьюпорта (по клавише D), там есть вариант отображения с точками.
@@hipnc я имел ввиду другое , вы возможно видели отображение прокси объектов например в vray proxy , там есть форма геометрии но малым количеством полигонов , спасибо за ответ))
Вот такого нет. Можно попробовать работать с ЛОДами, об этом рассказывается в нашем уроке "Террейны в продакшене", там пайплайн для работы с кучей высокополигональных моделей
Можно ли сделать, чтобы во вьюпорте инстансы красились в цвет точки, как при "copy to points"? Не всегда удобно рендерить, чтобы посмотреть, как это выглядит.
Не задавался этим вопросом, но по идее нельзя. Инстансы потому и инстансы, что выглядят одинаково, отличаются только трансформы. А все остальное уже происходит на уровне шейдера.
@@hipnc Жаль, если нельзя. Хотя Copy-to-points получается делает и инстансы (для Мантры, верно?) и красит и трансформирует...
Никто не мешает сделать превью через Copy to points с Pack geometry.
Всё таки не видя всех инстансов деревьев во вьюпорте очень сложно будет наполнять локацию деревьями и делать лэйаут если смотреть только на боксы.
Я бы предложил разбить лес на две ноды - для общих планов-заполнения сцены и для передних планов. В первом блоке будет больше деревьев, во втором меньше. И если выключить флаг просмотра на первом, то в теории можно будет увидеть все деревья из второго во вьюпорте. Ну и количество показываемых инстансов зависит от мощности машины и видеокарты.
Столкнулся с такой проблемой: при рендере простой сцены (облако точек, соединенных линиями), но большой картинки 7000х4000, Mantra создает на диске временный файл, который постепенно увеличивается до 200GB... При этом имеющиеся 32GB RAM полностью не использует. Скриншот 1drv.ms/u/s!As3QSjQFVINsqccfGs4yoBQ6SY7SMA
Настройки Mantra дефолт, только Pixel Sample поднял до 16-32 и Noise Level 0.005. Откуда такой жор памяти? В 3ds Max + VRay/Corona/Maxwell никогда с таким не сталкивался.
Мантра не может уместить сцену в памяти, поэтому использует временный файл. Я Мантрой не рендерю, так что не могу сказать точно, нормальное это поведение или нет. Но особых проблем не вижу, временные файлы создаются всеми движками рендера, просто у большинства они спрятаны. У того же Редшифта кэш конвертированных текстур очень быстро разрастается при активной работе. Как вариант можно покрутить настройки рендера или материала, удалить лишние атрибуты с точек, и посмотреть, что изменится.
Так меня и удивляет тот факт, что в такой супер простой сцене Матре мало 32GB RAM + 32GB файл подкачки, что оно еще дополнительно создает темп на 200GB.
www.sidefx.com/tutorials/green-mountains-terrain-overview/ Вот еще от сайдов, можно скачать сцену. Очень круто сделано!
Это клевый проект, но учитывайте, что там для деревьев стоят пакеды вместо инстансов, их использование в Редшифте может привести к неожиданным результатам.
Какая минимальная мощность машина нужна для реализации такой сцены? Я имею ryzen 1700 3.6 (8 cores/16 threads), 16 ОЗУ, видяха radeon hd 7950 3 gb видеопамяти
Если рендерить GPU, то видеокарту надо менять на Nvidia. А для Мантры особо не принципиально, просто скорость рендера будет зависеть от ядер процессора. Но, конечно, надо тестировать на практике, не будет ли подвисать вьюпорт.
@@hipnc спасибо)) какую вы имеете в своем распоряжении видеокарту, скажем для домашних разработок?
У меня две карты, gtx1080 и gtx970.
Вопрос почти по теме...а если в двух словах,то чем редшифт круче мантры или арнольда?
Это GPU-рендер. При наличии сильной видеокарты он будет рендерить очень быстро. Из-за этого есть определенные ограничения, но скорость решает. Идеальный вариант для моушен-дизайна, например.
GPU.точно..я что и забыл...)))
Скажите, а как сделать, чтобы земля отображалась в рендере? Чтобы имеющаяся была одновременно и точками для скаттера и просто видимой землей?
Сделать отдельную ноду, внутрь которой через Object merge подтянуть землю или точки из другой ноды. Для этого в основной геометрии сделать NULL-ноды с понятными названиями в нужных местах, и их указывать в Object merge.
Спасибо большое. Какие каналы самые лучшие - когда застряв на середине есть возможность уточнить, и автор доступен для обратной связи, не одни пишущие в пустоту комментаторы. Поэтому - можно смело рекомендовать как по-настоящему полезный ресурс.
Очередная проблема - почему импортируемая геометрия obj скатерится, а fbx нет? Есть сборник растений в этих двух форматах - fbx сразу открывается с текстурами и шейдерами, но не скатерится, а obj скатерится, но открывается без текстур. Если вставить fbx в Object Merge, тоже не хочет.
Fbx импортируется как множество нод внутри одной. В Object Merge надо выбрать все ноды геометрии внутри ноды Fbx. Оптимально импортировать именно Obj для таких задач. Чтобы подтягивались текстуры можно пользоваться моим скриптом импорта, который я выкладывал в блоге:
hipnc.tumblr.com/post/155939250194/%D0%B8%D0%BC%D0%BF%D0%BE%D1%80%D1%82-obj-%D0%B8-mtl-%D0%B2-houdini
Спасибо, с fbx вроде разобрался, в Object Merge все ноды выбрал, там геометрия, две группы, материал, трансформ даже прикрепил, может все и не нужно, но теперь скатерится. Obj импорт со скриптом тоже попробовал - создает шейдеры, находит текстуры, но что-то не то, на рендере странный результат, и во вьюпорте тоже текстур не видно. И еще деталь - количество точек одинаковое, но у fbx при этом меньше клонов почему-то, чем у obj. Для иллюстрации скриншот прилагаю - s15.postimg.cc/c6to5m4c9/fbxobjscreen.jpg
13:17 А о каком объеме памяти идет речь?
Оперативная память 32 гигабайта, видеопамять 7+7. Но тут надо понимать, что я еще захватывал видео с экрана.
Спасибо ) У меня все равно только 8 гигов и 2 гига на видяхе. Просто хотел сориентироваться, смогу ли я такими вещами заниматься на своем старичке. Видимо не смогу.
А что, все пользуются Редшифт за $500/лицензия?
Если ты на этом деньги делаешь, то почему и нет? Почему-то людей не так удивляет система с 4мя 1080 Ti, но удивляет, что кто-то решил заплатить не такие уж и огромные деньги за рендер.
@@phat80 Дело в том что целевая аудитория - не самые профи, даже наоборот.
@@tevtatdzeko2132 почему не профи? Я знаю, что есть много людей, кто сидит в Максе или Синеме, но хочет освоить Гудини. Поверьте, что для многих Гудини это достаточно новая вещь даже с опытом в несколько лет в других приложениях.
Ну вот. Начинающие. А начинающие не бегут сразу покупать софт по 500$.
@@tevtatdzeko2132 я не знаю, какая там лицензия. Может там возможно пользоваться версиями для разных ПО на одном компе. И скорее всего так и есть. Так что если лицензия уже есть, то в чем проблема? Редшифт он же не только для Гудини. Для Гудини он вообще появился по-моему сравнительно недавно. В ином случае всегда есть трайал.
скобки буквы что за херь))))))
То же самое подумал глядя на ваш коментарий