Рендер-пайплайн в Houdini для статичных персонажей

3D-визуализация предполагает множество разных приемов и технических решений, от выбора 3D-пакета до настройки шейдеров и подготовки моделей для конечной визуализации. Применяемая технология определяется, с одной стороны, потребностью в оптимизации, с другой — детализацией результата. Наши специалисты поделятся своим подходом к визуализации детализированных и реалистичных 3D-персонажей на примере проектов Vikings: War of Clans и Throne: Kingdom at War.

0.jpg

В разных программах рендеринг имеет больше сходств, чем отличий. Настраивать шейдеры, материалы, определять свойства света и теней нужно везде.

Для рендера персонажей мы решили использовать программу Houdini, потому что нам был необходим стабильный пайплайн, с помощью которого можно было бы соблюдать единство художественного стиля для множества персонажей, легко вносить изменения на любом этапе, работать сразу над несколькими персонажами и переиспользовать ассеты. Конечно, это не обязательно делать именно в Houdini. Многие опции, упоминаемые в статье, реализуются практически в любой программе. При этом надо признать, что не все программы предоставляют набор возможностей, подходящий для автоматизации, выстраивания и упрощения пайплайна «из коробки». В некоторых случаях автоматизация требует целого отдела специалистов, владеющих разными языками программирования. В Houdini же все эти опции заложены в саму архитектуру программы.

Процедурность и Digital Assets

Houdini — процедурный пакет. Это значит, что работа идет не с объектами, а с процедурами, или алгоритмами, в результате чего объекты и создаются. Процедуры формируются из сетей или цепей нод (узлов, имеющих вход для приема изначальных данных и выход для измененных данных), которые последовательно выполняют операции. Вы можете превратить цепь из нод любой сложности в пользовательскую ноду — Digital Asset, сохраненную в виде отдельного файла. Digital Asset — это как процедура, так и целый объект, материал, в котором лежат все необходимые карты. При обновлении файла Digital Asset обновятся и все ссылки на него в других местах (если не будет указано иное).

Для Digital Asset наша команда создает свои пользовательские интерфейсы, которые содержат только необходимые настройки. Это позволяет фокусироваться на главном. Кроме того, мы храним ассеты в общей сети. Централизованное обновление избавляет от операций с файлами и обновления сцены вручную.

Процедурный подход в пайплайне

Возможности автоматизации и процедурный подход в настройке рендера позволяют на любом этапе работы избежать ошибок, возникающих под влиянием человеческого фактора. Так, 3D-модель, которую наша команда получает из другого отдела, проходит подготовку к рендерингу: мы можем откорректировать нормали, устранить ненужные точки, сделать или исправить UV-развертку, привести объекты к нужному масштабу, закрыть незамкнутую геометрию или наоборот, удалить невидимые полигоны.

1.gif

Для соблюдения общего стиля освещения среди нескольких подобных рендеров применяется один ассет, содержащий в себе главное освещение (master light). Для каждого отдельного рендера пользователь указывает собственные настройки и источники света, но как только происходят какие-либо изменения в ассете master light, они автоматически появляются во всех сценах, не разрушая проделанной работы. Мы сохраняем все необходимые шейдеры и текстуры в Digital Asset, оставляя низкоуровневые операции закрытыми для конечного пользователя. Ассет заранее заботится об актуальности связей файлов, настроек. Нажимая на Render, можно быть уверенным, что все сохранится в нужном расположении, с правильными именами, с полным набором необходимых дополнительных материалов, масок и пр.

2.jpg

3.jpg

Такой подход также дает возможность нескольким художникам вместе работать над одной сценой и не переживать об инфраструктуре. Изменения, произведенные каждым из пользователей, будут актуальны в главной сцене, куда загружены все ассеты. Эта особенность Houdini нам очень пригодилась при настройке персонажей: пока один художник занимается материалами, другой, например, работает над волосами.

Волосы в Houdini

Одно из главных отличий Houdini от остальных программ в том, что в ней нет закрытых систем. Свойства объектов модифицируются на какой угодно стадии. Если у вас множество копий объекта, вы можете в любой момент отредактировать любую точку отдельно взятой копии. Доступные типы геометрии в Houdini легко конвертируются из одного в другой. Например, полигональная геометрия превращается в Volume, где с ней можно работать с помощью соответствующих инструментов, затем переводится обратно в полигоны, где задействуются методы полигонального моделирования. Это справедливо и для системы волос, а также процесса их генерации (груминга). Вся мощь Houdini в модификации обычной геометрии (точек и полигонов) применима к Hair как к одной из систем программы. Мы можем сделать какой-то паттерн или форму из кривых (polylines) с помощью удобных нам инструментов, превратить в направляющие для генерации волос и работать далее инструментами для груминга. При подготовке рендера Вивы и Уннара из Vikings: War of Clans мы создали ассеты для генерации бороды, бровей, причесок и кос, которые с небольшими модификациями использовались в дальнейшем для груминга других персонажей.

4.jpg

5.jpg

Рендер Mantra

Houdini поддерживает практически все представленные на рынке популярные рендеры: Arnold, Redshift, V-Ray, Octane, RenderMan. Основной рендер в программе сейчас — это Mantra, его мы и выбрали для продакшена. Это CPU-рендер. Он не на 100% unbiased, но практически без допущений. В Mantra можно контролировать любой аспект рендера, но стремление к физической корректности — один из его принципов, заложенных в архитектуру. Из плюсов — наиболее глубокая интеграция с Houdini, поддержка всех опций программы, максимальная гибкость настроек. В Mantra есть возможность создавать как высокоуровневые, так и низкоуровневые шейдеры с контролем каждого аспекта, добавлять новые функции, выводить свои render-pass, маски и пр.

На простых сценах наблюдается разница в скорости по сравнению со многими популярными рендерами, и она не в пользу Mantra. Рендер создавался для киноиндустрии, где способность обрабатывать большое количество детализированной геометрии, а также гибкость и надежность важнее, чем скорость. На сложных сценах разница значительно сокращается.

Заключение

При использовании процедурного подхода в любом пайплайне важно помнить, что готовых инструментов для каждого конкретного случая пока нет. Однако есть все, чтобы эти инструменты создать и составить из них удобную комбинацию. Необходимо закладывать время на подготовку всех нужных ассетов. Занимаясь этим уже в процессе продакшена, в рамках жестких дедлайнов, вы рискуете в спешке создать инструменты, которым для корректной работы требуется множество «костылей», что нивелирует преимущества процедурного подхода. Разумеется, все индивидуально, поэтому конвейерный или процедурный подход кому-то может и вовсе не подойти.

Важно не увлекаться автоматизацией, не превращать ее в самоцель, а помнить о том, для чего она нам нужна. Мы не хотим, автоматизируя все вокруг, в итоге заменить человека. Мы хотим освободить энергию для творчества и помочь художнику решать проблемы гораздо более высокого порядка, чем борьба с настройками рендера или организацией файлов. Мы хотим как можно сильнее сократить расстояние от идеи до ее воплощения.

750 0 850 3
5
2020-12-02
Спасибо, было познавательно)
2020-12-03
Трудно разобраться в таком подходе. Смысла в таком способе по-моему никакого. Перегонять меш из майки что бы в гуде развернуть нормали и юви исправить? Это вообще что... Делать волосы в гудини я никогда не пробовал. Хотя видел один раз... Тема не раскрыта
2020-12-09
Алексей ПавленкоСпасибо, было познавательно)

Алексей, здравствуйте! Мы рады, что статья для вас была полезна.
2020-12-09
Ангар Ви (Angar)Трудно разобраться в таком подходе. Смысла в таком способе по-моему никакого. Перегонять меш из майки что бы в гуде развернуть нормали и юви исправить? Это вообще что... Делать волосы в гудини я никогда не пробовал. Хотя видел один раз... Тема не раскрыта

Здравствуйте! Надеемся, вы найдете в нашем блоге интересные статьи, которые окажутся вам более полезными.
2020-12-13
Большой минус Мантры - долгий рендер только на CPU: Сравнение рендер-движков
RENDER.RU