Одна из обязательных составляющих любого качественного рендера – красивая карта неровностей. Мелкие царапины, повреждения и потертости придают модели естественный вид, она не выглядит так, словно попала в сцену прямиком с завода-изготовителя.
Микрорельеф поверхности можно формировать как геометрией (“скульпт” или же точечное редактирование модели), так и картами – статическими (подготовленными в графическом редакторе) и процедурными (созданными в связке с нодами – текстурными генераторами).
Использование процедурных текстур для создания микрорельефа методом “дисплейса” обладает всеми плюсами (безразмерность, трехмерность, уникальность, настраиваемость) процедурных текстур, но также получает в наследство и их главный минус – скорость рендера снижается т.к. для генерации текстуры требуется производить дополнительные расчеты.
Чтобы увеличить скорость рендера, процедурную текстуру можно “запечь” – превратить в статическую растровую текстуру, которая в процессе рендера уже не будет требовать дополнительных ресурсов. Таким образом можно выиграть от 5 до 30 % (в зависимости от сложности сгенерированной карты) скорости рендера.
“Запекание” осуществляется следующим образом:
- В сцене нужно оставить только один объект, тот для которого будет проводиться процедура “запекания”. Остальные меши нужно скрыть (H).
- Открыть UV/Image-editor, создать новое изображение нужного разрешения. Галочка Alpha должна быть установлена.
- Для меша сделать развертку (u – unwrap) на созданное в п.2 изображение.
- В Node Editor:
- От нода Material Output отсоединить все.
- Добавить нод Emission (Shift+a – Shaider – Emission) с силой Strngth = 1.
- Соединить выход Emission(Emission) со входом Surface(Material Output).
- Выход процедурной карты – генератора микрорельефа (то, что ранее подавалось на вход Displace(Material Output)) соединить со входом Color(Emission).
- Добавить нод Image Texture (Shift+a – Texture – Image Texture). В качестве источника изображения указать изображение, созданное в п. 2.
- Добавить нод UV Map (Shift+a – Input – UV Map). Указать карту, созданную в п. 3.
- Выход UV(UV Map) подать на вход Vector(Image Texture).
- Выходы нода Image Texture не должны быть никуда соединены. Нод должен быть выделен.
- Во вкладке Render в меню Bake выбрать BakeType = Emit.
- Нажать Bake, дождаться окончания процесса “запекания”.
- После завершении запекания в UV/Image Editor на изображение с разверткой наложится “запеченная” карта неровностей. Сохранить готовое изображение в файл в формате с поддержкой прозрачности (например – png).
- Пересобрать ноды для конечного рендера:
- В ноде Image Texture (п. 4.e) указать в качестве источника сохраненную в файл карту неровностей. Выход Color(Image Texture) соединить со входом Displace(Material Output).
- На остальные входы нода Material Output (Surface, Volume) вернуть те соединения, которые подавались туда до начала процесса запекания.
- Ноды – генераторы неровностей процедурными текстурами можно удалить.
В итоге карта неровностей, созданная процедурными текстурами заменена на статическую текстурную карту.
С каким разрешением лучше всего запекать микрорельеф? Все зависит от итогового качества, которое нужно получить при “запекании”. Пример “запекания” карты рельефа в текстуры разного разрешения:
Спасибо, давно искал как процедурный displacement в геометрию превратить.