On this page |
|
Previous Geometry
Overview ¶
Lighting in Karma heavily relies on USD’s built-in features related to lights. This chapter describes the basics of USD lighting, and Karma-specific properties.
USD lights ¶
USD provides a family of lighting tools under the UsdLux umbrella. The basic light types provided are:
|
Cylindrical shaped light source. |
|
|
Circle shaped light source. |
|
|
Infinitely distant light source. |
|
|
Omni-directional, environment light source. |
|
|
An infinitely small light source. |
|
|
Geometry provides a portal for dome lights. |
|
|
Rectangular shaped light source |
|
|
Spherical light source. |
Additionally, USD provides a way to turns meshes or other geometry into lights via API Schemas:
|
Turn any geometry primitives into lights. |
|
|
Turn mesh primitives into lights. |
|
|
Turn volume primitives into lights. |
Together, these constitute the light sources provided by USD.
Common light properties ¶
Lights have various properties to mimic real-world lighting and provide artistic control. Directional lights are aligned to emit light along their local -Z axis by default. All lights can be moved, rotated, and scaled.
Base ¶
Intensity
A linear scale on the power output of the light.
Exposure
Scales the power output exponentially as a power of 2, similar to an F-stop control. 0
does not scale intensity, negative numbers scale intensity down by the square, positive numbers scale intensity up. Often you will set the Intensity to what looks like the right amount of light, and then use this parameter to “tweak” it.
Color
The color of the light, in energy-linear terms.
Enable Color Temperature
Use Color Temperature to control the light color. The color calculated by Color Temperature is multiplied by the RGB color in Color, so if you want the “pure” temperature color, you should set Color to 1.0, 1.0, 1.0
.
Color Temperature
When Enable Color Temperature is on, the temperature (in degrees Kelvin) to simulate. The valid range is from 1000
to 10000
. Lower values are warmer and higher values are cooler. The default is the common D65 white point.
If necessary, you can compute the same color value using the UsdLuxBlackbodyTemperatureAsRgb()
function from the USD library.
Clipping Range
Don’t show geometry closer than the near distance or farther away than the far distance (in world units).
Normalize Power
Divides the set power output (intensity scaled by exposure) by the surface area or angular size of the light. This makes it easier to adjust and compare energy output without it being affected by the size of the light.
Diffuse Multiplier
Scales the effect this light has on the diffuse response of shaders. This is a non-physical “tweak”.
Specular Multiplier
Scales the effect this light has on the specular response of shaders. This is a non-physical “tweak”.
Scale Guide Geometry
Applies a uniform scaling factor on the guide geometry that is drawn for the light in the viewport. The default value is an expression that inverts the “meters per unit” value of the USD stage to produce a consistent real-world size for the guide geometry.
Light Filters
A space-separated list of light filters you want to use with the light. You can create a light filter in a Light Filter Library LOP.
Shaping ¶
Intensity
A linear scale on the power output of the light.
Exposure
Scales the power output exponentially as a power of 2, similar to an F-stop control. 0
does not scale intensity, negative numbers scale intensity down by the square, positive numbers scale intensity up. Often you will set the Intensity to what looks like the right amount of light, and then use this parameter to “tweak” it.
Color
The color of the light, in energy-linear terms.
Enable Color Temperature
Use Color Temperature to control the light color. The color calculated by Color Temperature is multiplied by the RGB color in Color, so if you want the “pure” temperature color, you should set Color to 1.0, 1.0, 1.0
.
Color Temperature
When Enable Color Temperature is on, the temperature (in degrees Kelvin) to simulate. The valid range is from 1000
to 10000
. Lower values are warmer and higher values are cooler. The default is the common D65 white point.
If necessary, you can compute the same color value using the UsdLuxBlackbodyTemperatureAsRgb()
function from the USD library.
Clipping Range
Don’t show geometry closer than the near distance or farther away than the far distance (in world units).
Normalize Power
Divides the set power output (intensity scaled by exposure) by the surface area or angular size of the light. This makes it easier to adjust and compare energy output without it being affected by the size of the light.
Diffuse Multiplier
Scales the effect this light has on the diffuse response of shaders. This is a non-physical “tweak”.
Specular Multiplier
Scales the effect this light has on the specular response of shaders. This is a non-physical “tweak”.
Scale Guide Geometry
Applies a uniform scaling factor on the guide geometry that is drawn for the light in the viewport. The default value is an expression that inverts the “meters per unit” value of the USD stage to produce a consistent real-world size for the guide geometry.
Light Filters
A space-separated list of light filters you want to use with the light. You can create a light filter in a Light Filter Library LOP.
Shadow ¶
Enable
When this is on, objects hit by this light will cast shadows (subject to shadow masks).
Color
Tints the color of shadows cast by this light. Changing this from black (0, 0, 0
) is a non-physical “tweak”.
Falloff Start Distance
The near distance at which shadow falloff begins.
The default value (-1
) indicates no falloff.
Falloff Gamma
A gamma (i.e., exponential) control over shadow strength with linear distance within the falloff zone (between Falloff and Distance).
Distance
The maximum distance to check for objects shadowing this light. The default is -1
, meaning no limit. Setting this may speed up rendering if you know all objects you want shadowed are within a certain distance.
Base Lights ¶
CylinderLight ¶
Height |
|
Radius |
|
Transform |
|
DiskLight ¶
Radius |
|
Transform |
|
DistantLight ¶
Angle |
|
Transform |
|
DomeLight ¶
Transform |
|
Mesh Light (MeshLightAPI) ¶
Transform |
|
Other |
|
Point Light ¶
Transform |
|
Portals ¶
Transform |
|
Other |
|
RectLight ¶
Width |
|
Height |
|
Transform |
|
SphereLight ¶
Radius |
|
Transform |
|
Karma Lights ¶
These are lights added with Solaris, specifically for Karma.
KarmaSkyDomeLight ¶
Solar Altitude |
|
Solar Azimuth |
|
Turbidity |
|
Transform |
|
Karma Physical Sky ¶
Combination of a KarmaSkyDome and Distant lights and special properties.
See the node helpcard for more details.
Light Tree ¶
Karma automatically builds a light tree to make rendering scenes with many lights more efficient. This helps Karma efficiently decide which lights should be sampled the most, and are most likely to resolve faster. Setting this to Uniform on a light will force it to always be sampled.
Some types of lights, or lights with certain configurations, are never added to the light tree. Dome lights, and lights with IES profiles and light filters are excluded from the light tree.
See Sampling > Light Tree for more details.
Light Properties
Sampling Mode
When using the light tree for rendering, Karma will try to put any light source that’s compatible into the tree. This option can force a light to be excluded from the tree and subject to uniform sampling, which can sometimes yield an improved sampling quality the light at the expense of speed.
Geometry Lights ¶
Beginning with Houdini 21.0, Karma supports USD’s LightAPI-approach to geometry lights. This turns geomtry into actual lights, that behave just like the other light types. Karma also knows to sample these light sources more efficiently, compared to simple emissive materials.
See Geometry Light LOP for more details.
In previous releases, Karma would require users to add the “Efficient Emissive Sampling” geometry/material property, in order to efficiently sample glowing shaders. Although this method is not being removed at this point, we encourage artists to embrace the superior LightAPI approach instead.
Warning
Karma does not currently support light filters on geometry lights.
Instances ¶



Beginning with Houdini 20.5, the USD library passes instanceable lights through Hydra to Karma. This allows lights to be instanced alongside geometry, and works both with instanceable references and point instancers. Currently Karma allows controlling lights via primvars or light filters setup to read primvars.
By default Karma will match primvars in the light
namespace to corresponding inputs on the instanced lights:
Primvar |
Light Input |
Type |
---|---|---|
|
|
float |
|
|
color3f |
Light filters can also be setup to read primvars, if you wish to use differently named primvars to drive your lights.
LPE tags ¶
Light filters ¶
Light filters can be added to lights to provide artistic modifications to lighting elements. These are created with a Light Filter Library. Karma supports using MaterialX shaders in light filters. The Karma Light Project is essential for these workflows.
|
Controls how the light intensity/color changes over distance. |
|
|
Adds barndoors to a cone light. |
|
|
Adjusts the color, intensity, or diffuse/specular of a light source. |
|
|
Projects the light source through a texture. |
|
|
Provide the depth and UV coordinates of the “current ray” in the light’s projection space |
Warning
-
Lights with light filters applied are not automatically added to the light tree.
-
It is not advised to use light filters on dozens or hundreds of lights in the same scene.
Viewport lighting ¶
By default the viewport reflects the lights found in the scene. If no lights are found, Hydra produces a head light. The head light type can be a distant light along the camera view or dome light. Along the right side of the viewport are buttons to override the scene lights.
-
Available lighting modes change based on the chosen render delegate.
-
Disable Lighting disables all scene lights, in order to visualize emissive shaders. With the Houdini Viewport, it produces an unlit appearance.
-
The automatic dome light is a uniform white color. A map can be applied using the
HOUDINI_DEFAULT_DOMELIGHT_TEXTURE
environment variable.
Karma light properties ¶
Global properties can often be control on a per-light basis. These controls live in the inputs:karma:light:
namespace, and are usually multipliers on their global counterpart. If a property does not specify that it multiplies or scales, then it acts as an override.
Spread ¶




For rectangle and disk lights only, Karma has the spread
parameter. This can focus an area light projection, making them appear a bit more like distant lights.
Next Cameras