Houdini 20.0 Solaris

Karma light filters

You can attach a light filter to a light to modify the light’s output in different ways.

A light filter is a USD prim which can be assigned to a light, similar to assigning a material to a geometry object.

Karma runs the light filter “shader” on each light ray emitted by the light the filter is assigned to, allowing the filter to modify the rays cast by the light.

To...Do this

Create one or more light filter prims

  1. In a LOP network, add a Light Filter Library node.

    Set up the Light filter path prefix parameter on the Light Filter Library to specify where want the light filter prims to be created in the scene tree. The default creates a light filter prim at /lightFilters/nodename for each light filter node in the embedded network that has its output flag turned on.

  2. Dive inside the Light Filter Library node into the embedded VOP network inside.

  3. Create one (or more) of the available light filter nodes:

    • Gel adjusts the tint, intensity, and diffuse or specular components of the light.

    • Gobo projects the light through a texture.

    • Barndoor shapes the light output, as if you used traditional swinging metal gates in front of the light lens. (It also lets you change the light tint, intensity, and diffuse and specular components.)

Vary the output across the light source surface

  • You can use the parameters on a light filter as constants, for example, set the Tint parameter to purple on a Gel filter to tint the light purple in all directions.

  • Or, you can wire VOP nodes into the light filter node to compute a different filtered value for each ray.

    The filter’s inputs are re-computed for each ray sent from the light the light filter is assigned to. You can build a network of Material X VOP nodes to calculate values, noise, etc.


    You can use the Karma Light Projection to generate UV coordinates for the “current ray” to vary the light output across the light’s field of view.

Assign a light filter to a light

  • When you create a light filter in a Light Filter Library node, you can use a multiparm on the Library node to assign each created prim to a light.

  • You can specify a space-separated list of light filter prims to apply to the light in the light’s Light filters parameter.

  • You can assign an existing light filter to a light by authoring a new light:filters relationship on the light prim with the Edit Properties LOP.




  • 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.


  • 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