События

Фотореалистичные материалы "Часов"

2014-10-20

Введение

В данной статье я постараюсь разобрать нетривиальные моменты, с которыми я столкнулся при создании демо-сцены "Часы".

Статья ориентирована на читателей, знакомых с основными инструментами моделирования, текстурирования и редактора нодов (Node Editor) программного пакета Blender.

В качестве референса использовалась фотография из каталога (справа).

Далее рассмотриваются следующие вопросы:

  • Создание материала крокодиловой кожи, включая создание бесшовной текстуры и настройку блика.
  • Настройка материала золота.

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

Крокодиловая кожа - создание бесшовной текстуры

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

За основу были взяты фотографии кожаных ремешков для наручных часов, а так же исходное изображение часов, по которым в программе Inkscape была задана основная форма чешуек:

Направляющие (Guideline) нужны, чтобы выдержать беcшовность текстуры.

Далее на основе этой текстуры в программах Inkscape и GIMP были созданы сопутствующие маски для различных деталей:

В процессе создания всех этих изображений они проверялись на беcшовность и по необходимости корректировались в Blender'е с помощью следующего простого приёма:

Создаём плоскость, увеличиваем эту плоскость и её UV развертку в 3 раза, назначаем плоскости материал и текстуру по развертке. Создаём вторую плоскость с параметрами, как на 4 кадре изображения выше. Вторая плоскость показывает границы изображения, и, кроме того, на неё производится запекание при сборке конечной текстуры.

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

Нодовый материал текстуры:

Пункты, отмеченные на изображениях выше, показывают как преображается текстура после смешивания с другими текстурами и масками.

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

Запечённая карта нормалей и чёрно-белая текстура в альфа канале:

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

Крокодиловая кожа - настройка блика

Прорабатывая блик, хотелось показать, что этот материал одновременно прочный и мягкий.

Как видно на изображении блик состоит из трёх частей:

  • Острый центральный блик (1) - выделяет мелкие детали.
  • Большой серый блик (2) - смешиваясь с первым бликом он смягчает его, делает материал визуально мягче.
  • Имитация блика от окружения (3) - этот эффект легко получить, создав маску следующим образом:

Такие и более сложные блики можно создавать, манипулируя с выходом Spec ноды Extended Material. Например, как на изображении ниже:

Блик в нодовом материале кожаного ремешка часов:

В версиях движка, начиная с 14.09, появилась дополнительная нодовая группа SMOOTHSTEP. Использовать эту ноду вместо комбинаций Power, Multiply и Squeeze Value гораздо эффективнее.

Материал золота

Платформа Blend4Web поддерживает проецирование текстур по направлению на камеру (выход Normal ноды Geometry). Таким образом можно получить материал типа "matcap" (сокращение от "material capture"). Именно такой принцип используется в материале золота в этой сцене.

Для того, чтобы материал выглядел как золото, необходимо сымитировать отражаемое окружение. Я сделал это, совместив текстуры с мягкими градациями цвета и контрастную текстуру.

В нодовом материале золота в блоке "color" происходит смешивание по маскам оттенков, выбранных для этой сцены. Воздействие этих элементов можно увидеть на анимированом изображении с часами. 1 и 2 кадр - это маски, в 3 кадре добавляется цвет, а в 4 кадре накладывается контрастная текстура.

Заключение

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

Исходные файлы демо-сцены "Часы" доступны в коммерческом дистрибутиве Blend4Web SDK.

Изменения

[2014-10-20] Изначальная публикация.

[2015-09-15] Иллюстрации обновлены в связи с изменением интерфейса

Комментарии
Пожалуйста, зарегистрируйтесь или войдите под своей учетной записью , чтобы оставлять сообщения.