big

В уроке 4 одна сцена коралла записала три слоя. Geo и xform мы разобрали, а щас очередь mtl. В нем только материал коралла и его назначение на геометрию. Поэтому новую версию лукдева выпускаем, не трогая геометрию, а в шот она попадает заменой одной строки.

big
Исходный размер 3840x2020

Материал живет в своем слое поверх геометрии. Новому лукдеву хватает новой папки v002 и одной строки SubLayer.

1. Как устроен слой лукдева

Слой mtl ничего не строит заново. Коралл и его ветки в нем записаны через over, как правка чужого прима. Добавляет он только ветку mtl с материалом и связь с ним на geo, геометрии нет.

Связь с материалом в USD называется material: binding, это путь к материалу, записанный на ветке. Материал с ветки получают меши внутри, если у них нет своей связи.

big
Исходный размер 3840x2020

В проверке и в шоте коралл собирают тремя строками SubLayer, внизу geo, над ним mtl, сверху xform. Это обычная стопка слоев из урока 1. Спорить файлам не о чем, каждый пишет свое. Поэтому строку mtl можно заменить, а геометрия и место коралла останутся прежними.

2. Сетап по нодам

Исходный размер 3840x2020

Это та же сцена коралла из урока 4, кусок сети сразу после geo. Layer Break отрезает все, что выше, и геометрия в mtl не попадет. Дальше материал, назначение и USD ROP, он пишет mtl так же, как geo в уроке 4. Ноды разбираем по цифрам на картинке.

Исходный размер 3840x2020

Material Library кладет материал в ветку mtl.
1. В Parent Primitive Type ставим Scope, как у geo.
2. В Material Path пишем полный путь с именем материала <коралл>_mat. Тогда Material Path Prefix ни на что не влияет.

Прим материала в USD называется Material, на него указывает связь. Внутри лежат примы Shader, в них записаны ноды сети.

Исходный размер 3840x2020

Внутри Material Library стоит Karma Material Builder с сетью из нод MtlX, без текстур.
1. Три ноды MtlX Geometry Property Value читают атрибуты коралла.
2. MtlX Standard Surface, сам шейдер, собирает цвет и шероховатость.

Атрибут геометрии, который видят рендер и шейдер, называется primvar. SOP Import записал атрибуты коралла как primvar.

Исходный размер 3840x2020

MtlX Geometry Property Value читает primvar margin, расстояние до края пластины. По нему материал рисует белую кайму и кольца роста.
1. В Geomprop пишем margin, имя атрибута как в SOP.
2. Default отдается, если атрибута нет. Тогда кайма пропадет, а кольца перестанут повторять край.

Поэтому Attribute Delete в SOP оставляет все, что читает материал.

Исходный размер 3840x2020

Assign Material записывает связь с материалом.
1. В Primitives пишем /World/env/corals/<коралл>/geo, ветку с render и proxy.
2. В Material Path пишем путь материала из Material Library.

В файле это over на ветке geo с одной строкой material: binding. Связь стоит на geo, поэтому материал получают оба меша.

В слое mtl нет ни одного меша. В пустой сцене он ничего не рисует, а если виден коралл, в слой уехала геометрия.

3. Новая версия одной строкой

Лукдев v002 делаем в той же сцене, но сохраняем ее как <коралл>_v002.hip. Меняем только материал и пишем только mtl, в новую папку mtl/v002. Папка v001 остается на месте, ее никто не перезаписывает. Geo и xform тоже остаются v001.

Исходный размер 3840x2020

В MtlX Standard Surface открываем раздел Coat. Это прозрачная глянцевая пленка поверх материала, как лак или вода.
1. Coat поднимаем, и коралл выглядит мокрым.
2. Roughness в том же разделе ставим чуть выше, и блик становится мягче.

Исходный размер 3840x2020

USD ROP слоя mtl пишет новую версию.
1. Output File теперь $JOB/assets/Environment/Corals/<коралл>/publish/usd/mtl/v002/<коралл>_mtl.usd, поменялась только папка версии.
2. Save to Disk жмем только на этом USD ROP. USD ROP слоев geo и xform в сцене v002 не запускаем, иначе перезапишем выпущенные v001.

Исходный размер 3840x2020

Утверждаем v002 одной строкой там, где собран коралл. В проверке это SubLayer со слоем mtl, в шоте такая же строка, если коралл стоит там тремя строками.
1. В File меняем v001 на v002, остальное в пути не трогаем.

Исходный размер 3840x2020
Исходный размер 3840x2020
Мы используем файлы cookies для улучшения работы сайта и большего удобства его использования. Более подробную информац...
Показать больше