
Шот из урока 7 собран из слоев отделов, но в нем нет света и рендера. Свет выпускаем своим слоем, а рендер описываем примами USD и делим на два прохода.

Свет и рендер тоже лежат в слоях. Лампы в /World/lights, настройки рендера и проходы в /Render.
1. Свет своим слоем

Сцена света лежит в activities/lighting шота.
1. SubLayer берет восемь слоев, что в root ниже света.
2. Layer Break, выше него в слой ничего не попадет.
3. Лампы неба, солнца и подсветки кораллов.
4. Light Linker решает, на что светит подсветка.
5. USD ROP пишет слой lighting v001 в publish шота.
Лампа в USD это прим, его тип говорит, какая это лампа. Ставят их Dome Light, Distant Light и Light.
1. Primitive Path у всех в /World/lights.
2. В Texture у неба HDRI из Houdini.
3. Направление солнца задает Rotate на вкладке Transform.
4. Intensity у подсветки больше, чем у солнца, ее свет гаснет с расстоянием.
Подсветке нужны только кораллы.
1. Тащим corals_fill из Light List в Rules.
2. Из Geometry кладем в правило /World/env/reef.
3. Правило записалось на саму лампу.
Такое правило называется light linking, без него лампа светит на все. На лампе оно записано коллекцией (collection), списком примов под своим именем.
В v002 опускаем солнце, ослабляем подсветку и прячем краулер.
1. Прячет его новая Configure Primitive перед USD ROP.
2. В Primitives путь к краулеру.
3. У Visibility ставим галку и выбираем Invisible.
Атрибут visibility прячет прим со всем, что внутри, и во вьюпорте, и в рендере.
2. Рендер через примы USD
Примы рендера пишет сцена в activities/render поверх слоев шота и света v002, а USD ROP выпускает слой render v001. В root он встает первой строкой.
Проход ссылается на настройки, настройки на файл, файл на каналы.
1. RenderVar это канал картинки (AOV), у нас beauty.
2. RenderProduct это файл кадров.
3. RenderSettings это камера, разрешение и список файлов.
4. RenderPass это часть шота для отдельного рендера.
Render Var делает канал /Render/Vars/beauty.
1. Data Type ставим color4f, цвет с альфой.
2. Source Type ставим LPE, в Source Name пишем C.[LO].
3. На вкладке Husk в Name пишем beauty, в Format ставим color4h.
Строка LPE описывает путь луча. C.[LO] значит от камеры через любые отскоки до лампы или светящегося объекта, то есть весь свет кадра.
У effects все так же, кроме путей.
1. У Render Product Sampling Behavior ставим Sample Frame Range и кадры шота.
2. В Ordered Render Vars канал beauty.
3. В Product Name путь от $RENDER, $F4 это номер кадра.
4. У Render Settings в Ordered Products этот файл, Camera шота, ширина 2048.
Render Pass задает, что из шота попадет в проход. В pass_geometry идет все, кроме эффектов.
1. В Pruned Objects пишем /World/fx, эффекты уходят из рендера совсем.
2. В Render Source его настройки, settings_geometry.
В pass_effects остаются только взрыв и искры.
1. В Matte Objects пишем /World/env /World/characters /World/vehicles. Маска закрывает то, что за ней, а альфа у нее нулевая.
2. В Pruned Objects подсветка кораллов, риф здесь маска.
Проход ничего не стирает в шоте. Он только говорит рендеру, что взять, что убрать и что сделать маской.
3. Запускаем рендер
Рендерим из сцены сборки, в ней SubLayer с root шота и USD Render ROP.
1. Valid Frame Range ставим Render Frame Range From Stage, кадры из root.
2. В Render Pass путь прохода.
3. В Render Settings выражение на Python, оно берет у прохода renderSource и отдает его настройки.



