Houdini 20.0 Solaris

LOPs for lighting tutorial 3

You will continue to tweak your lighting, organize your lights, and then render your scene.

On this page

Before you begin

You have to have done LOPs Lighting Tutorial 2 before you can begin this tutorial.

Continue tweaking your lighting

Now that we have laid out our lights, we probably have some tweaking to do. Houdini has some nice tools to help you organize and adjust your lights in a friendly way.

Use the Light Mixer

On the left of the interface you will see a list of lights.

  • Drag a light from the left side to the right side. You can now adjust the light from the slider.

    • The “null” and the “star” icons are “disable” and “solo” respectively.

    • You can adjust the brightness and/or exposure using the sliders.

  • You can drag lights out of the right side of the interface, (or use the “X” button at the top), at will. This does not delete the light(s), it just removes them from the Light Mixer.

Let’s create a collection.

  • CTRL click on all of the lights with “Rim” in the name.

    • RMBNew Collection from Selection

    • Name this “rimLights”

You will now see a collection in the left side of the interface. You can drag this collection into the right side. By default, the lights are ganged, and you have one control for them all. If you want, expand the collection and adjust individually.

Note

You can delete collections by RMB clicking on them and choosing “Delete Collection”. If this option is not available, it means the collection was created in another LOP or was loaded from a USD file on disc and cannot be deleted in this LOP. Deleting collections DOES NOT delete the lights in the collections.

Set up procedural collections

Let’s create a collection procedurally. It would be nice to automatically include any light with the word “rim” in it in a collection.

  • Delete the Light Mixer LOP, (or delete the “rimLights” collection you already have in the current Light Mixer LOP.)

  • Add a new Light Mixer LOP (unless you did not delete the old one.)

  • Prepend a Collection LOP to your Light Mixer LOP.

Collection Name

rimLights

Primitive Pattern

/lights/*Rim*

Add another Collection LOP:

Collection Name

allLights

Primitive Pattern

/lights/*

Now go back to the Light Mixer LOP. You should see the two collections in the left side of the interface. !f

Note

The collections you see in the Light Mixer are the same collections that are created by the Collection LOP, but just stored in a different place.

Get ready to render

Organize your lights

At this point, you may have a long string of lights in your LOP network, or lights scattered all over the place. Here are some options to help you manage the network.

  • 1) Keep the lights in-line, but all in one place.

  • 2) Use a Sublayer LOP to organize the lights.

    Sublayer Type

    Sublayer Inputs

Render with AOVs

If you look in the viewport, you will see a drop-down that allows you to choose which AOV to view. Of course, you may want more or less AOVs than are shown by default. Let’s edit the AOVs for all shots.

  • In your LOP chain, add a Karma Standard Render Vars LOP and don’t connect it to anything yet.

  • In the “LPE” section, choose the AOVs you would like to output.

  • Plug this into the second input of the existing Karma Render Properties nodes.

    • In the Karma Render Properties nodes set:

    Import Secondary Input Render Vars

    On

Render to disc

Since we already have set up our /Render/rendesettings primitive where are render settings are stored (look for it in the Scene Graph Tree), we don’t want to stomp on the values with another Karma LOP. We are going to use a USD Render ROP to render to disc.

Render Settings

/Render/rendersettings (choose from the drop-down menu)

Note

If you are familiar with mantra rendering, you will know that by default the camera resolution is the render resolution. This is not the case with Karma.

Create a quick-render node

Let’s create a USD Render LOP to do quick test renders.

  • Copy the existing USD Render LOP.

  • Rename it “quick_render”

  • Prepend a Rendersettings LOP.

    • In the “Standard” tab, turn all options to “Do Nothing”

    • In the “Karma” tab:

      Primitives

      /Render/rendersettings (You can drag this from the Scene Graph Tree.)

      Action

      Edit

      Pixel Samples

      4

      Set or Create

      Set or Create

Final network

Notes

  • For the bounces/limits/motion blur controls, there are Render Geometry Settings LOP and Render Settings LOP which control this behaviour. Standard USD inheritance models should work for the geometry settings.

  • Also note, that for motion blur, you’ll likely have to use a Cache LOP to make sure Hydra has enough knowledge about adjacent frames.

  • To use render regions, hit SPACE + 5 to jump into the Image Viewport. Marquee-drag (LMB click-drag), to create a render region. This feature is undergoing development at this time.

Solaris

USD

Geometry

  • SOP Geometry I/O

    Details of how Houdini converts SOP geometry to USD, and how you can control the process.

  • Component Builder

    The Component Builder tool puts down a network snippet for creating a USD model from SOPs, with support for materials, variants, payloads, and layering.

Layout

  • Edit node

    Interactively transforms prims in the viewer. Can use physics collisions to position props realistically.

  • Layout node

    Provides tools for populating a scene with instanced USD assets. You can place individual components, paint/scatter components in different ways using customizable brushes, and edit existing instances.

  • Custom Layout Brushes

    How to create layout brush digital assets you can use to customize the behavior of the Layout LOP.

Look Development

  • MaterialX

    Houdini has VOP node equivalents of the MaterialX shader nodes. You can build a shader network using these nodes, or import an existing MaterialX-based shader, and use them with Karma (Houdini’s USD renderer).

  • UDIM Paths

    You can encode different tiles of a texture space into different texture files, each with its own resolution. You can then specify a texture filename such as kaiju.exr, and Houdini will replace the token with the specific tile address at load time.

  • Shader Translation Framework

    Describes the Solaris shading framework, including shader node translation to USD primitives.

Karma rendering

Tutorials