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

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

Сцена света лежит в activities/lighting шота. В ее слое только новые лампы и over, правки чужих prim.
1. SubLayer берет все слои шота из урока 7.
2. Layer Break, как в уроке 1, в файл идет только свое.
3. Лампы неба, солнца и подсветки кораллов.
4. Light Linker решает, на что светит подсветка.
5. USD ROP пишет слой lighting v001 в publish шота. В root его строку пишем в начало списка, так свет сильнее слоев отделов.
Лампа в USD тоже prim, ее тип задает schema из урока 3. Ставят их Dome Light, Distant Light и Light, schema видна справа от дерева.
1. Primitive Path у всех в /World/lights.
2. В Texture у неба HDRI‑панорама из папки Houdini, путь на картинке.
3. Направление солнца задает Rotate на вкладке Transform.
4. У подсветки Intensity больше, чем у солнца. Солнце светит издалека и везде одинаково, а свет лампы гаснет с расстоянием.
Подсветка нужна только кораллам, иначе засветит песок. Правило, на что светит лампа, называется light linking, без него лампа светит на все. Его ставит Light Linker.
1. Лампу corals_fill тащим из Light List слева в Rules посередине.
2. Из Geometry справа кладем в правило /World/env/reef.
3. Правило записалось на саму лампу строкой includes, списком prim. Такой список называется collection.
Важно. 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, например по именам ламп.
Режиссер попросил солнце пониже, подсветку слабее, а краулер, машинку в окружении, убрать. Сохраняем сцену как v002, солнце и подсветку правим в их нодах, слой пишем в lighting/v002.
1. Краулер прячет новая Configure Primitive.
2. В Primitives путь к краулеру.
3. У Visibility галка и Invisible. Атрибут visibility прячет prim со всем, что внутри, во всем шоте.
Кольца справа отмечают краулер, на кадре v002 он спрятан. Чтобы шот взял новый свет, в root руками меняем строку lighting/v001 на lighting/v002, как с анимацией в уроке 7. Папка v001 остается на месте.
2. Настройки рендера в USD
Настройки рендера пишет отдельная сцена в activities/render, устроенная как сцена света. USD ROP выпускает слой render v001, в root его строка встает первой. Спорить ему не с кем, в /Render пишет только он.
Это те же настройки, что на ноде Karma, только разложены на четыре prim.
1. RenderVar ‑ канал картинки, он же AOV. Это как слой внутри EXR, у нас beauty.
2. RenderProduct ‑ файл кадров со списком каналов.
3. RenderSettings ‑ камера, разрешение и список файлов.
4. RenderPass ‑ что из шота взять в этот рендер.
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 кадр выйдет серым.
На картинке 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.
Проход ничего не стирает в шоте. Он только говорит рендеру, что взять, что убрать и что сделать маской.
В проход pass_geometry идет все, кроме эффектов. Это задает нода Render Pass.
1. В Pruned Objects пишем /World/fx, эффекты уходят из этого рендера совсем.
2. В Render Source настройки прохода, /Render/settings_geometry.



