big

Щас мы ставим свет и рендерим шот из урока 7. Свет выпускаем своим слоем, как любой отдел. Настройки рендера, которые жили в ноде Karma, кладем в сам файл USD, и шот одинаково отрендерит кто угодно на любой машине. Кадр делим на два прохода, геометрию и эффекты, чтобы взрыв на композе крутить и перерендеривать отдельно.

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

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

1. Свет своим слоем

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

Сцена света лежит в activities/lighting шота. В ее слое только новые лампы и over, правки чужих prim.
1. SubLayer берет все слои шота из урока 7.
2. Layer Break, как в уроке 1, в файл идет только свое.
3. Лампы неба, солнца и подсветки кораллов.
4. Light Linker решает, на что светит подсветка.
5. USD ROP пишет слой lighting v001 в publish шота. В root его строку пишем в начало списка, так свет сильнее слоев отделов.

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

Лампа в USD тоже prim, ее тип задает schema из урока 3. Ставят их Dome Light, Distant Light и Light, schema видна справа от дерева.
1. Primitive Path у всех в /World/lights.
2. В Texture у неба HDRI‑панорама из папки Houdini, путь на картинке.
3. Направление солнца задает Rotate на вкладке Transform.
4. У подсветки Intensity больше, чем у солнца. Солнце светит издалека и везде одинаково, а свет лампы гаснет с расстоянием.

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

Подсветка нужна только кораллам, иначе засветит песок. Правило, на что светит лампа, называется light linking, без него лампа светит на все. Его ставит Light Linker.
1. Лампу corals_fill тащим из Light List слева в Rules посередине.
2. Из Geometry справа кладем в правило /World/env/reef.
3. Правило записалось на саму лампу строкой includes, списком prim. Такой список называется collection.

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

Важно. Light Linker пишет только связи света с объектами. LPE‑теги он лампам не ставит, а сами связи в нем иногда слетают. Если свет лампы нужен отдельным каналом, тег ставим на саму лампу.
1. В ноде Light на вкладке Karma в поле LPE Tag пишем имя, например corals_fill.
2. Свет с этим тегом выводим своим каналом. В сцене рендера из раздела 2 ставим еще одну Render Var, Source Type LPE, в Source Name C.*<L.'corals_fill'>, на вкладке Husk в Name имя канала.
3. Канал добавляем в Ordered Render Vars у Render Product, иначе он не попадет в файл.

Если ламп много, теги раздает нода LPE Tag, например по именам ламп.

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

Режиссер попросил солнце пониже, подсветку слабее, а краулер, машинку в окружении, убрать. Сохраняем сцену как v002, солнце и подсветку правим в их нодах, слой пишем в lighting/v002.
1. Краулер прячет новая Configure Primitive.
2. В Primitives путь к краулеру.
3. У Visibility галка и Invisible. Атрибут visibility прячет prim со всем, что внутри, во всем шоте.

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

Кольца справа отмечают краулер, на кадре v002 он спрятан. Чтобы шот взял новый свет, в root руками меняем строку lighting/v001 на lighting/v002, как с анимацией в уроке 7. Папка v001 остается на месте.

2. Настройки рендера в USD

Настройки рендера пишет отдельная сцена в activities/render, устроенная как сцена света. USD ROP выпускает слой render v001, в root его строка встает первой. Спорить ему не с кем, в /Render пишет только он.

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

Это те же настройки, что на ноде Karma, только разложены на четыре prim.
1. RenderVar ‑ канал картинки, он же AOV. Это как слой внутри EXR, у нас beauty.
2. RenderProduct ‑ файл кадров со списком каналов.
3. RenderSettings ‑ камера, разрешение и список файлов.
4. RenderPass ‑ что из шота взять в этот рендер.

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

Render Var делает канал /Render/Vars/beauty.
1. Data Type ставим color4f, цвет с альфой, f ‑ точный формат для расчета.
2. Source Type ставим LPE, это строка пути луча. В Source Name пишем C.*[LO], это путь от камеры через любые отскоки до лампы или светящегося объекта, то есть весь свет кадра.
3. На вкладке Husk в Name пишем beauty, в Format color4h, h ‑ половинная точность, файл легче. С float кадр выйдет серым.

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

На картинке Render Product и Render Settings прохода geometry, у effects меняются только пути.
1. Sampling Behavior ставим Sample Frame Range и кадры шота, иначе все кадры лягут в один файл.
2. В Ordered Render Vars канал beauty.
3. В Product Name путь к кадрам. $HIP/render ‑ папка render рядом со сценой, $F4 ‑ номер кадра.
4. У Render Settings в Ordered Products этот файл, Camera шота, ширина 2048.

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

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

В проход pass_geometry идет все, кроме эффектов. Это задает нода Render Pass.
1. В Pruned Objects пишем /World/fx, эффекты уходят из этого рендера совсем.
2. В Render Source настройки прохода, /Render/settings_geometry.

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