ShapingAPI
Use this schema to control the shaping of a light’s emission. This includes controlling the light spread, light cone settings, etc.
See Light Shaping for more examples of using ShapingAPI.
Properties
inputs:shaping:cone:angle
USD type: float
Fallback value: 90.0
Angular limit off the primary axis to restrict the light spread, in degrees. Smaller angles can create a light “cone” used to make the light behave as a spot light.
Light emissions at angles off the primary axis greater than this are guaranteed to be zero:
For angles < coneAngle, behavior is determined by shaping:cone:softness.
At the default of coneSoftness = 0, the luminance is unaltered if the
emissionOffAxisAngle <= coneAngle, so the coneAngle functions as a hard binary
“off” toggle for all angles > coneAngle.
Note that this attribute does not affect IES profiles (if any are applied for this light).
inputs:shaping:cone:softness
USD type: float
Fallback value: 0.0
The cutoff softness for cone angle. In most cases you’ll use a value in the range from 0 (hard cut-off) to 1 (smooth transition), but you can use values higher than 1 for additional gradation.
At the fallback value of coneSoftness = 0, the luminance is unaltered if the emissionOffAxisAngle <= coneAngle, and 0 if emissionOffAxisAngle > coneAngle, so in this situation the coneAngle functions as a hard binary “off” toggle for all angles > coneAngle.
For coneSoftness in the range (0, 1], it defines the proportion of the non-cutoff angles over which the luminance is smoothly interpolated from 0 to 1. Mathematically:
Values outside of the [0, 1] range are clamped to the range.
inputs:shaping:focus
USD type: float
Fallback value: 0.0
Use focus to shape the spread of the light. A higher focus value pulls light towards the center, effectively narrowing the spread. Values < 0 are ignored.
This is implemented as a multiplication with the absolute value of the dot
product between the light’s surface normal and the emission direction, raised to
the power focus. See inputs:shaping:focusTint
for the complete formula, but if we assume a default focusTint of pure black,
then that formula simplifies to:
inputs:shaping:focusTint
USD type: color3f
Fallback value: (0, 0, 0)
Use focusTint to set the color tint of the emission of the light in the falloff region. This tints the emission in the falloff region starting from the off-angle direction of the light towards the center.
This is implemented as a linear interpolation between focusTint and
white, by the factor computed from the focus attribute, in other words:
Note that this implies that a focusTint of pure white will disable focus.
inputs:shaping:ies:angleScale
USD type: float
Fallback value: 0.0
Applies a scaling factor to the latitudinal
theta/vertical polar coordinate before sampling the IES profile, to shift the
samples more toward the “top” or “bottom” of the profile. The scaling origin
varies depending on whether angleScale is positive or negative. If it is
positive, the scaling origin is theta = 0; if it is negative, the scaling origin
is theta = pi (180 degrees). Values where |angleScale| < 1 will “shrink” the
angular range in which the iesProfile is applied, while values where
|angleScale| > 1 will “grow” the angular range to which the iesProfile is mapped.
If 𝛳light is the latitudinal theta polar coordinate of the emission direction in the light’s local space, and 𝛳ies is the value that will be used when actually sampling the profile, then the exact formula is:
See Best Practices When Working With angleScale for best practices when using angleScale.
inputs:shaping:ies:file
USD type: asset
An Illumination Engineering Society (IES) light profile describing the angular distribution of light.
For full details on the .ies file format, see the full specification, ANSI/IES LM-63-19
The luminous intensity values in the IES profile are sampled using the emission
direction in the light’s local space (after a possible transformation by a
non-zero shaping:ies:angleScale, see below). The sampled value is then
potentially normalized by the overall power of the profile if
shaping:ies:normalize is enabled, and then used as a scaling factor on the
returned luminance:
See inputs:shaping:ies:angleScale
for a description of applyAngleScale, and
inputs:shaping:ies:normalize
for how iesProfilePower is calculated.
inputs:shaping:ies:normalize
USD type: bool
Fallback value: False
Normalizes the IES profile to affect the shaping of the light while preserving the overall energy output. Used to prevent the IES profile amplitude from altering the energy of the light.
The sampled luminous intensity is scaled by the overall power of the IES profile if this is on, where the total power is calculated by integrating the luminous intensity over all solid angle patches defined in the profile.