Создание лазерного целеуказателя
Всем привет! В этой статье я хочу показать основные моменты своего рабочего процесса при создании модели лазерного целеуказателя и некоторые приёмы, которые могут быть полезны.
Моделирование и запекание текстурных карт я производил в Blender 3D, текстурирование в Substance Painter и создание отдельных деталей в Substance Designer.
Моделирование
Этот пайплайн позволяет исключить этап high-poly моделирования и ограничиться созданием низкополигональной модели.
Скругления на рёбрах, в углах и в местах пересечения геометрии построятся шейдером и запекутся в Normal map.
Когда геометрия была закончена, я создал несколько материалов для запекания карт: Normal, Ambient Occlusion и ID.
Запекание текстур
Normal map
На входе Vertex paint (нода Attribute), который позволяет настроить разную величину скругления на разных гранях, а нода Divide задаёт общий масштаб (величина скруглений зависит от размера объекта в сцене).
Количество сэмплов в ноде Bevel стоит сделать максимальным - 16, а глобальные Render samples - 32.
Ambient Occlusion map
Как видите, здесь к входу Normal ноды Ambient Occlusion подключаются те же ноды, что и при запекании Normal map.Количество сэмплов в ноде Ambient Occlusion стоит сделать максимальным - 128, а глобальные Render samples - 4. Это, на мой взгляд, оптимальный баланс между скоростью запекания и качеством.
ID map
Для создания ID-карты я сохраняю цвета в Vertex color. Это позволяет переключаться между материалами для запекания разных карт и не беспокоиться о материале ID для каждого объекта.
Curvature Map
Для создания Curvature Map я использую этот нодовый сетап в композе. На вход подаётся Normal map, которую мы запекли ранее, а на выходе получаем готовую Curvature map. Value задаёт интенсивность.
Текстурирование
Я придерживаюсь послойного способа текстурирования - создаю слой за слоем, начиная с Height map и микро деталей и заканчивая Albedo и Roughness. Это помогает уверенно двигаться вперед и не потерять важные детали.
Substance Designer
Я сделал такие детали как мелкие и крупные винты, кнопка, резьба и сетчатое рифление в Substance Designer (SD).
В SD я ограничиваюсь созданием Height информации и маски для дальнейшего текстурирования в Painter.
Затем импортировал .sbsar файлы в Painter в качестве материалов.
Substance Painter
Перед добавлением элементов на Height map я создал пользовательский канал.
Затем добавил Fill layer (Button) и выбрал в нём в качестве материала нужную мне деталь. Активными делаю только каналы Height и User0. В выпадающем меню Channels mapping я выбираю Height, ID и Mask соответственно - это те выходные каналы которые ранее были определены в Substance Designer.
На Fill layer Button я назначил Ancor point, который далее я буду использовать для создания маски.
Аналогично и с помощью простых масок я создал и остальные детали.
Отдельно хочу рассказать о создании контуров крышек. Для них я использовал Line Filter созданный художником Osman Adzhyusmanov. Всё, что нужно, это нарисовать силуэт панели, а затем установить параметры фильтра до получения требуемой толщины щели. Поверх я кладу Blur и Levels для достижения финального результата.
После этого я создал необходимые материалы и назначил маски по ID map.
Для элементов с якорными точками я создал Fill layer в маске материала и затем выбрал ранее созданные точки в качестве источника для маски и соответствующий канал в выпадающем меню Referenced channel (в примере канал User 0).
Для добавления различных дефектов я использовал стандартные генераторы Edge Wear и Mask Builder.
В конце я добавил различные текстовые элементы. Часть из них я сделал в Photoshop и импортировал в качестве текстур.
И поверх всех слоев создал слои пыли, чтобы устройство не выглядело новым.
После этого - экспорт текстур и настройка шейдера в целевом движке.
Заключение
Вот и всё. Финальный рендер я делал в Cycles.
Благодарю за прочтение. Если у вас появятся вопросы, пишите, я постараюсь на них ответить.