Создание материалов Blend4Web. Игры с отражением
2017-12-05
Этот урок продолжает серию статей по созданию материалов для проектов Blend4Web. В прошлый раз вы уже познакомились с простыми матовыми материалами. Настало время поговорить об отражениях.
Самым простым примером такого материала служит хромированная полированная сталь, так как она практически равномерно отражает окружающее пространство. Но сначала рассмотрим способы создания отражения, которые применялись для материалов библиотеки Blend4Web:
1. Отражение в реальном времени. Достаточно включить опцию Reflective в настройках материала. Учтите, что в зависимости от сложности сцены и участвующих в отражении объектов, это может создавать значительные нагрузки на железо.
2. Использование кубической карты. Это запеченная текстура отражений окружающего пространства, которые не просчитываются в реальном времени, а только имитируют их. Быстрый и эффективный способ, но при этом игнорируется текущее положение объектов.
Более подробно о работе с кубическими картами можно прочесть здесь.
Выше можно увидеть пример, когда отражение учитывает окружающие предметы и среду, а также реагирует на их изменение в реальном времени.
Использование кубической карты является более оптимизированным и быстрым вариантом, который позволяет добиться особых художественных эффектов, не завися от окружения и освещения.
При помощи графического редактора (Gimp, Photoshop или иной) можно «размыть» карту отражения, получив таким образом имитацию настройки Roughness, которая используется в модели PBR. Условно можно предположить, что сфера слева настроена с Roughness, равной нулю, а сфера справа - ближе к единице.
Итак, если вернуться к нашему материалу хромированного металла, то можно увидеть, что он сделан с использованием только одной кубической карты и специальной ноды Reflect, которая необходима для правильной работы.
Теперь рассмотрим более сложный материал с использованием карты нормалей и Cubemap. Это будет медь.
Материал меди выглядит достаточно сложным, но нам нет необходимости рассматривать абсолютно все. Достаточно разобраться с его основной частью, а все остальное лишь добавляет реализма: состаренность, загрязненность и т.п.
Перед вами упрощенный материал меди, который более удобен для понимания работы ядра. В основе его лежит кубическая карта (2), так как металлы в реальном мире практически полностью отражают окружающее пространство вокруг себя с определённым цветовым оттенком. На этом и строится работа ядра, где кубическая карта окрашивается нодой ColorMix (3) в характерный для этого металла цвет.
Медь, представленная в библиотеке материалов Blend4Web, имеет грубую полировку. Для этого кубическая карта должна искажаться по небольшим бороздкам и неровностям. Поэтому, ко входу Normal ноды Reflect подана бесшовная карта Normal map, имитирующая грубую шлифовку с неровностями.
Теперь посмотрите видео, где демонстрируется создание материала меди с «нуля», за исключением некоторых дополнительных эффектов. При необходимости вы сами сможете добавить нужные потертости и загрязнения.