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
    }
  }
}