Маткап – материал, состоящий всего из одного изображения, однако позволяющий быстро и удобно показать, как будет выглядеть модель с определенным материалом и при определенном освещении. Когда мы назначаем маткап, выбирая его в опциях шейдинга 3D вьюпорта Viewport Shading – Lighting – Matcap, маткап назначается сразу всем объектам сцены. Однако, если нужно назначить маткап на некоторые меши выборочно, маткап можно эмулировать при помощи нодов.
Автор метода Витёк Мукаев.
Принцип отображения маткапа на меше заключается в том, что часть текстуры маткапа проецируется на меш в зависимости от направления его нормалей. Мы можем эмулировать данное поведение при помощи шейдерных нодов.
Откроем редактор шейдеров Shader Editor, создадим новый материал и соберем следующее дерево нод:
Здесь мы берем координаты нормалей меша и преобразовываем их в координаты камеры при помощи нода Vector Transform.
Через нод Mapping мы выравниваем положение текстуры так, чтобы ее центр соответствовал центру меша.
Теперь мы можем загрузить в нод Image Texture текстуру требуемого маткапа.
Для примера мы можем взять один из системных маткапов Blender. Системные маткапы лежат в директории, в которую установлен Blender, по адресу:
1 |
_PATH_TO_BLENDER_\3.6\datafiles\studiolights\matcap\ |
Возьмем, например, файл clay_brown.exr
Загрузим его в нод Image Texture и назначим готовый материал мешу.
Для сравнения откроем две рабочих области 3D вьюпорта. В левой включим режим отображения “Rendering”, чтобы был виден наложенный при помощи нодов на меш материал. В правой выберем режим “Solid”, однако во Viewport Shading активируем режим MatCap и выберем маткап clay_shadow из библиотеки системных маткапов.
Как мы видим в результате отображение материалов на меше идентично, и все блики от освещения маткапа находятся на своих местах.
Такой метод наложения маткапа нодами можно использовать если необходимо наложить разные маткапы на несколько объектов сцены.