Lights
Generated from the schema registry by ernie schema --markdown.
LightAPI
What every light has: brightness, colour, and Ernie's polarization and pulses.
API schema · Built in: CollectionAPI · Built in: CollectionAPI
| Attribute | Type | Description | Fallback | Values | Source |
|---|---|---|---|---|---|
light:shaderId |
token | The light's shader, as renderers name it. | "" |
UsdLux | |
light:materialSyncMode |
token | For geometry that emits: whether its bound material's glow tints the light, is lit independently, or is ignored. | "noMaterialResponse" |
materialGlowTintsLight, independent, noMaterialResponse |
UsdLux |
inputs:intensity |
double | Brightness, scaled by 2^exposure. | 1.0 |
≥ 0 | UsdLux |
inputs:exposure |
double | Stops of brightness, as photographers count them. | 0.0 |
UsdLux | |
inputs:diffuse |
double | Multiplier of its diffuse response. | 1.0 |
≥ 0 | UsdLux |
inputs:specular |
double | Multiplier of its specular response. | 1.0 |
≥ 0 | UsdLux |
inputs:normalize |
bool | Divides its power by its area, so resizing it leaves its brightness. | false |
UsdLux | |
inputs:color |
color3d | Linear RGB tint. | [1.0,1.0,1.0] |
≥ 0 | UsdLux |
inputs:enableColorTemperature |
bool | Tints it by its colour temperature too. | false |
UsdLux | |
inputs:colorTemperature |
double | Kelvin, a black body's. | 6500.0 |
> 0 | UsdLux |
ernie:polarization:degree |
double | The fraction of its light linearly polarized. | 0.0 |
≥ 0, ≤ 1 | Ernie |
ernie:polarization:angle |
double | Degrees from the light's +x to its electric field. | 0.0 |
Ernie | |
ernie:pulse:rate |
double | Pulses per second, a strobe's; 0 continuous. | 0.0 |
≥ 0 | Ernie |
ernie:pulse:width |
double | Seconds each pulse lasts. | 0.0 |
≥ 0 | Ernie |
ernie:pulse:delay |
double | Seconds on the sensor clock, or after the exposure opens, a pulse starts. | 0.0 |
Ernie | |
ernie:pulse:decay |
double | Seconds its level takes to fall by e over a pulse, as a xenon flash's; 0 flat. | 0.0 |
≥ 0 | Ernie |
ernie:pulse:jitter |
double | Seconds each pulse may start early or late. | 0.0 |
≥ 0 | Ernie |
ernie:pulse:trigger |
token | The sensor clock, or the camera's exposure: one pulse a frame, its delay after it opens. | "clock" |
clock, exposure |
Ernie |
Fallbacks it changes: collection:lightLink:includeRoot true; collection:shadowLink:includeRoot true.
{
"$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
"prims": {
"/World/LightAPI": {
"typeName": "Xform",
"apiSchemas": ["LightAPI"],
"light:materialSyncMode": "noMaterialResponse",
"inputs:intensity": 1.0,
"inputs:exposure": 0.0,
"inputs:diffuse": 1.0,
"inputs:specular": 1.0,
"inputs:normalize": false,
"inputs:color": [1.0, 1.0, 1.0],
"inputs:enableColorTemperature": false,
"inputs:colorTemperature": 6500.0,
"ernie:polarization:degree": 0.0,
"ernie:polarization:angle": 0.0,
"ernie:pulse:rate": 0.0,
"ernie:pulse:width": 0.0,
"ernie:pulse:delay": 0.0,
"ernie:pulse:decay": 0.0,
"ernie:pulse:jitter": 0.0,
"ernie:pulse:trigger": "clock"
}
}
}
BoundableLightBase
A light with a shape, bounded by it.
Abstract base · Inherits Boundable · Built in: LightAPI
| Attribute | Type | Description | Fallback | Values | Source |
|---|---|---|---|---|---|
ernie:power |
double | Radiant flux in watts, scaling the illuminant's spectral shape; authored, it sets the brightness unless photometric values are authored. | 0.0 |
≥ 0 | Ernie |
NonboundableLightBase
A light at infinity or around everything, so unbounded.
Abstract base · Inherits Xformable · Built in: LightAPI
DistantLight
A light from infinitely far along +z, such as the Sun's.
Prim type · Inherits NonboundableLightBase
| Attribute | Type | Description | Fallback | Values | Source |
|---|---|---|---|---|---|
inputs:angle |
double | Angular diameter in degrees; the Sun's is 0.53. | 0.53 |
≥ 0, ≤ 360 | UsdLux |
ernie:irradiance |
double | W m^-2 at normal incidence (the Sun's at 1 au), scaling the illuminant's spectral shape; authored, it sets the brightness unless photometric values are authored. | 1361.0 |
≥ 0 | Ernie |
Fallbacks it changes: inputs:intensity 50000.0.
{
"$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
"prims": {
"/World/DistantLight": {
"typeName": "DistantLight",
"inputs:angle": 0.53,
"ernie:irradiance": 1361.0
}
}
}
DiskLight
A disk emitting towards -z.
Prim type · Inherits BoundableLightBase
| Attribute | Type | Description | Fallback | Values | Source |
|---|---|---|---|---|---|
inputs:radius |
double | Metres; a disk facing -z. | 0.5 |
≥ 0 | UsdLux |
{
"$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
"prims": {
"/World/DiskLight": {
"typeName": "DiskLight",
"inputs:radius": 0.5
}
}
}
RectLight
A rectangle emitting towards -z.
Prim type · Inherits BoundableLightBase
| Attribute | Type | Description | Fallback | Values | Source |
|---|---|---|---|---|---|
inputs:width |
double | Metres along x; a rectangle facing -z. | 1.0 |
≥ 0 | UsdLux |
inputs:height |
double | Metres along y. | 1.0 |
≥ 0 | UsdLux |
inputs:texture:file |
asset | An image it emits. | "" |
UsdLux |
{
"$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
"prims": {
"/World/RectLight": {
"typeName": "RectLight",
"inputs:width": 1.0,
"inputs:height": 1.0
}
}
}
SphereLight
A sphere emitting outwards.
Prim type · Inherits BoundableLightBase
| Attribute | Type | Description | Fallback | Values | Source |
|---|---|---|---|---|---|
inputs:radius |
double | Metres. | 0.5 |
≥ 0 | UsdLux |
treatAsPoint |
bool | Lights as a point however large it is. | false |
UsdLux |
{
"$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
"prims": {
"/World/SphereLight": {
"typeName": "SphereLight",
"inputs:radius": 0.5,
"treatAsPoint": false
}
}
}
CylinderLight
A cylinder along x emitting outwards.
Prim type · Inherits BoundableLightBase
| Attribute | Type | Description | Fallback | Values | Source |
|---|---|---|---|---|---|
inputs:length |
double | Metres along x. | 1.0 |
≥ 0 | UsdLux |
inputs:radius |
double | Metres. | 0.5 |
≥ 0 | UsdLux |
treatAsLine |
bool | Lights as a line however thick it is. | false |
UsdLux |
{
"$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
"prims": {
"/World/CylinderLight": {
"typeName": "CylinderLight",
"inputs:length": 1.0,
"inputs:radius": 0.5,
"treatAsLine": false
}
}
}
DomeLight
Light from all around, from an environment image.
Prim type · Inherits NonboundableLightBase
| Attribute | Type | Description | Fallback | Values | Source |
|---|---|---|---|---|---|
inputs:texture:file |
asset | The environment it emits. | "" |
UsdLux | |
inputs:texture:format |
token | The texture's mapping. | "automatic" |
automatic, latlong, mirroredBall, angular, cubeMapVerticalCross |
UsdLux |
ernie:texture |
float tensor, rank 3 | float32 (rows, columns, 3 or 4) linear RGB in memory, latitude-longitude about +z, in place of the file. | Ernie | ||
portals |
rel[] | Portal lights its light enters through. | [] |
UsdLux | |
guideRadius |
double | Metres to the sphere drawn as its guide. | 100000.0 |
> 0 | UsdLux |
{
"$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
"prims": {
"/World/DomeLight": {
"typeName": "DomeLight",
"inputs:texture:format": "automatic",
"guideRadius": 100000.0
}
}
}
PortalLight
A rectangle a dome light's light comes in through, guiding its samples.
Prim type · Inherits BoundableLightBase
| Attribute | Type | Description | Fallback | Values | Source |
|---|---|---|---|---|---|
inputs:width |
double | Metres along x. | 1.0 |
≥ 0 | UsdLux |
inputs:height |
double | Metres along y. | 1.0 |
≥ 0 | UsdLux |
{
"$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
"prims": {
"/World/PortalLight": {
"typeName": "PortalLight",
"inputs:width": 1.0,
"inputs:height": 1.0
}
}
}
MeshLightAPI
Makes a Mesh emit, its bound material's glow tinting the light.
API schema · Built in: LightAPI · Applies to Mesh
Fallbacks it changes: light:shaderId "MeshLight"; light:materialSyncMode "materialGlowTintsLight".
{
"$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
"prims": {
"/World/MeshLightAPI": {
"typeName": "Mesh",
"apiSchemas": ["MeshLightAPI"]
}
}
}
VolumeLightAPI
Makes a Volume emit, its bound material's glow tinting the light.
API schema · Built in: LightAPI · Applies to Volume
Fallbacks it changes: light:shaderId "VolumeLight"; light:materialSyncMode "materialGlowTintsLight".
{
"$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
"prims": {
"/World/VolumeLightAPI": {
"typeName": "Volume",
"apiSchemas": ["VolumeLightAPI"]
}
}
}
ShapingAPI
Focuses a light, limits it to a cone, or shapes it by an IES profile.
API schema
| Attribute | Type | Description | Fallback | Values | Source |
|---|---|---|---|---|---|
inputs:shaping:focus |
double | Concentrates its light towards -z. | 0.0 |
≥ 0 | UsdLux |
inputs:shaping:focusTint |
color3d | The colour of what the focus takes away. | [0.0,0.0,0.0] |
UsdLux | |
inputs:shaping:cone:angle |
double | Degrees from -z it lights. | 90.0 |
≥ 0, ≤ 180 | UsdLux |
inputs:shaping:cone:softness |
double | How gradually the cone's edge falls off. | 0.0 |
≥ 0 | UsdLux |
inputs:shaping:ies:file |
asset | An IES LM-63 profile. | "" |
UsdLux | |
inputs:shaping:ies:angleScale |
double | Widens or narrows the profile's angles. | 0.0 |
UsdLux | |
inputs:shaping:ies:normalize |
bool | Keeps the profile from changing the light's power. | false |
UsdLux |
{
"$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
"prims": {
"/World/ShapingAPI": {
"typeName": "Xform",
"apiSchemas": ["ShapingAPI"],
"inputs:shaping:focus": 0.0,
"inputs:shaping:focusTint": [0.0, 0.0, 0.0],
"inputs:shaping:cone:angle": 90.0,
"inputs:shaping:cone:softness": 0.0,
"inputs:shaping:ies:angleScale": 0.0,
"inputs:shaping:ies:normalize": false
}
}
}
ShadowAPI
Controls a light's shadows.
API schema
| Attribute | Type | Description | Fallback | Values | Source |
|---|---|---|---|---|---|
inputs:shadow:enable |
bool | Whether it casts shadows. | true |
UsdLux | |
inputs:shadow:color |
color3d | The colour of shadows. | [0.0,0.0,0.0] |
UsdLux | |
inputs:shadow:distance |
double | Metres shadow rays reach; -1 for no limit. | -1.0 |
UsdLux | |
inputs:shadow:falloff |
double | Metres over which shadows fade near their limit; -1 for none. | -1.0 |
UsdLux | |
inputs:shadow:falloffGamma |
double | The fade's curve. | 1.0 |
UsdLux |
{
"$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
"prims": {
"/World/ShadowAPI": {
"typeName": "Xform",
"apiSchemas": ["ShadowAPI"],
"inputs:shadow:enable": true,
"inputs:shadow:color": [0.0, 0.0, 0.0],
"inputs:shadow:distance": -1.0,
"inputs:shadow:falloff": -1.0,
"inputs:shadow:falloffGamma": 1.0
}
}
}
PhotometricAreaLightAPI
Omniverse's photometric units for shaped lights: lumens, or lux at a distance.
API schema
| Attribute | Type | Description | Fallback | Values | Source |
|---|---|---|---|---|---|
photometric:power |
double | Luminous flux in lumens, whatever the colour or cone. Authored, it alone sets the light's brightness. | 1600.0 |
≥ 0 | Ernie |
photometric:illuminance |
double | Lux on a surface facing it on its axis at the distance below, in place of the power when both are above 0. | 0.0 |
≥ 0 | Ernie |
photometric:illuminance:distance |
double | Metres at which the illuminance holds; 0 uses the power. | 0.0 |
≥ 0 | Ernie |
{
"$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
"prims": {
"/World/PhotometricAreaLightAPI": {
"typeName": "Xform",
"apiSchemas": ["PhotometricAreaLightAPI"],
"photometric:power": 1600.0,
"photometric:illuminance": 0.0,
"photometric:illuminance:distance": 0.0
}
}
}
PhotometricDistantLightAPI
Omniverse's photometric units for distant lights: lux on a facing surface.
API schema
| Attribute | Type | Description | Fallback | Values | Source |
|---|---|---|---|---|---|
photometric:illuminance |
double | Lux on a surface facing the light. Authored, it alone sets the light's brightness. | 10000.0 |
≥ 0 | Ernie |
{
"$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
"prims": {
"/World/PhotometricDistantLightAPI": {
"typeName": "Xform",
"apiSchemas": ["PhotometricDistantLightAPI"],
"photometric:illuminance": 10000.0
}
}
}
PhotometricDomeLightAPI
Omniverse's photometric units for dome lights: lux on an upward-facing surface.
API schema
| Attribute | Type | Description | Fallback | Values | Source |
|---|---|---|---|---|---|
photometric:illuminance |
double | Lux on an upward-facing surface under the dome. Authored, it alone sets the light's brightness. | 10000.0 |
≥ 0 | Ernie |
{
"$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
"prims": {
"/World/PhotometricDomeLightAPI": {
"typeName": "Xform",
"apiSchemas": ["PhotometricDomeLightAPI"],
"photometric:illuminance": 10000.0
}
}
}
PhysicalLightIlluminantAPI
Omniverse's illuminant: the shape of a light's spectrum.
API schema
| Attribute | Type | Description | Fallback | Values | Source |
|---|---|---|---|---|---|
physical:illuminant |
token | The spectrum's shape: white (flat) or blackbody over 380 to 780 nm, illuminant D at the colour temperature, custom (the pairs below), or sun (TSIS-1, 115 nm to 200 um); unset, a black body when the temperature is used, else flat. | "" |
white, blackbody, illuminant D, custom, sun |
Ernie |
physical:customIlluminant |
float[] | (nm, value) pairs, wavelengths increasing, of a custom illuminant's shape; 0 outside them. | [] |
Ernie |
{
"$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
"prims": {
"/World/PhysicalLightIlluminantAPI": {
"typeName": "Xform",
"apiSchemas": ["PhysicalLightIlluminantAPI"],
"physical:customIlluminant": []
}
}
}
LaserLight
A laser along -z: a Gaussian beam and its pattern. Its power is ernie:power, its pulses LightAPI's, and its extent the emitter, so framing it frames the device.
Prim type · Inherits BoundableLightBase
| Attribute | Type | Description | Fallback | Values | Source |
|---|---|---|---|---|---|
ernie:laser:wavelength |
double | Centre wavelength, nm. | 532.0 |
> 0 | Ernie |
ernie:laser:linewidth |
double | Spectral width (FWHM), nm. | 0.1 |
≥ 0 | Ernie |
ernie:laser:speckle |
bool | Grain on rough surfaces, sized by the camera's aperture. | false |
Ernie | |
ernie:laser:waistRadius |
double2 | 1/e^2 radius at the waist along x and y, metres. | [0.0005,0.0005] |
> 0 | Ernie |
ernie:laser:waistDistance |
double | Metres from the aperture along the beam to its waist. | 0.0 |
Ernie | |
ernie:laser:beamQuality |
double2 | M^2 along x and y: 1 for an ideal beam. | [1.0,1.0] |
≥ 1 | Ernie |
ernie:laser:apertureRadius |
double | Metres at which the aperture clips the beam's tails; 0 none. | 0.0 |
≥ 0 | Ernie |
ernie:laser:pattern |
token | The beam itself, a line fanned along x, a grid of beamlets, a field of dots, an image, or a scanned Lissajous figure. | "spot" |
spot, line, grid, dots, image, scan |
Ernie |
ernie:laser:fanAngle |
double | A line's full angle along x, degrees. | 60.0 |
> 0, < 170 | Ernie |
ernie:laser:lineProfile |
token | Along a line: flat (a Powell lens) or Gaussian, 1/e^2 at the fan's edges. | "flat" |
flat, gaussian |
Ernie |
ernie:laser:gridColumns |
int | A grid's beamlets along x. | 5 |
≥ 1 | Ernie |
ernie:laser:gridRows |
int | A grid's beamlets along y. | 5 |
≥ 1 | Ernie |
ernie:laser:gridPitch |
double2 | Degrees between a grid's beamlets along x and y. | [2.0,2.0] |
> 0 | Ernie |
ernie:laser:dotColumns |
int | Dots per tile along x. | 64 |
≥ 1 | Ernie |
ernie:laser:dotRows |
int | Dots per tile along y. | 48 |
≥ 1 | Ernie |
ernie:laser:dotTileColumns |
int | Tiles of the same dots along x. | 1 |
≥ 1 | Ernie |
ernie:laser:dotTileRows |
int | Tiles of the same dots along y. | 1 |
≥ 1 | Ernie |
ernie:laser:dotJitter |
double | How far a dot strays from its cell's centre, in cells: 0 a regular grid, 1 anywhere. | 0.9 |
≥ 0, ≤ 1 | Ernie |
ernie:laser:dotSeed |
int | The seed the dots derive from. | 1 |
≥ 0 | Ernie |
ernie:laser:scanFrequencies |
double2 | A scan's Lissajous turns along x and y each period, swept faster than cameras see. | [3.0,2.0] |
≥ 0 | Ernie |
ernie:laser:scanPhase |
double | A scan's phase along x, degrees. | 90.0 |
Ernie | |
ernie:laser:efficiency |
double | The fraction of the power that goes into the pattern. | 1.0 |
≥ 0, ≤ 1 | Ernie |
ernie:laser:zeroOrder |
double | The fraction of the power left in a beam along the axis. | 0.0 |
≥ 0, ≤ 1 | Ernie |
ernie:laser:pattern:image |
asset | The image pattern's relative power (linear), its top towards +y. | "" |
Ernie | |
ernie:laser:pattern:imageArray |
float tensor, rank 2 | float32 (rows, columns) pattern image in place of the file, on the host or a device. | Ernie | ||
ernie:laser:pattern:fieldOfView |
double2 | Full angles an image, dots or a scan span along x and y, degrees. | [40.0,30.0] |
≥ 0, < 170 | Ernie |
ernie:laser:sequence:count |
int | Patterns shown in turn; 1 for one pattern. | 1 |
≥ 1 | Ernie |
ernie:laser:sequence:period |
double | Seconds each pattern of a sequence shows. | 0.03333333333333333 |
> 0 | Ernie |
ernie:laser:sequence:delay |
double | Seconds on the sensor clock the first pattern shows. | 0.0 |
Ernie |
Fallbacks it changes: ernie:power 0.001; ernie:polarization:degree 0.98.
{
"$schema": "https://alexmaietta.github.io/ernie/schema/ernie-scene.schema.json",
"prims": {
"/World/LaserLight": {
"typeName": "LaserLight",
"ernie:laser:wavelength": 532.0,
"ernie:laser:linewidth": 0.1,
"ernie:laser:speckle": false,
"ernie:laser:waistRadius": [0.0005, 0.0005],
"ernie:laser:waistDistance": 0.0,
"ernie:laser:beamQuality": [1.0, 1.0],
"ernie:laser:apertureRadius": 0.0,
"ernie:laser:pattern": "spot",
"ernie:laser:fanAngle": 60.0,
"ernie:laser:lineProfile": "flat",
"ernie:laser:gridColumns": 5,
"ernie:laser:gridRows": 5,
"ernie:laser:gridPitch": [2.0, 2.0],
"ernie:laser:dotColumns": 64,
"ernie:laser:dotRows": 48,
"ernie:laser:dotTileColumns": 1,
"ernie:laser:dotTileRows": 1,
"ernie:laser:dotJitter": 0.9,
"ernie:laser:dotSeed": 1,
"ernie:laser:scanFrequencies": [3.0, 2.0],
"ernie:laser:scanPhase": 90.0,
"ernie:laser:efficiency": 1.0,
"ernie:laser:zeroOrder": 0.0,
"ernie:laser:pattern:fieldOfView": [40.0, 30.0],
"ernie:laser:sequence:count": 1,
"ernie:laser:sequence:period": 0.03333333333333333,
"ernie:laser:sequence:delay": 0.0
}
}
}