Class Name: Spot Light

Superclass - Positional Light

Definition

A Spot Light is a type of Positional Light that specifies an elliptic cone of influence, further restricting the light's volume of illumination. The elliptic cone is cut off by the sphere of influence inherited from the Positional Light, resulting in a "snow-cone" (optionally smashed in one direction) shaped influence volume. Attenuation factors are also inherited.

Primary Page in DRM Diagram:

Example

  1. A Model of a lighthouse has a Geometry Model with a Union of Geometry Hierarchy, to which is attached an Spot Light representing the lighthouse's light. The Spot Light has a Light Source Control Link that turns the light on or off, depending on the time of day and the weather.

  2. A headlight that actually emits light could have a Positional Light source with a direction located at the light, directed out from the headlight.

FAQs

How does this definition differ from the OpenGL equivalent?
By adding the ability to spread the light horizontally and vertically. To specify a OpenGL Spot Light the horizontal and vertical lobe angles would be the same as well as the fall off angles.

Constraints

None.

Composed of (one-way)(inherited)

Composed of (one-way)

Composed of (two-way)(inherited)

Component of (two-way)(inherited)

Inherited Field Elements

SE_BOOLEAN apply_to_children; (notes)
SE_BOOLEAN override_positional_lights; (notes)
SE_BOOLEAN override_infinite_lights; (notes)
SE_BOOLEAN active_light_value; (notes)
SE_FLOAT32 radius; (notes)
SE_FLOAT64 constant_attenuation_factor; (notes)
SE_FLOAT64 linear_attenuation_factor; (notes)
SE_FLOAT64 quadratic_attenuation_factor; (notes)

Field Elements

SE_FLOAT64 horizontal_drop_off_rate; (notes)
SE_FLOAT64 vertical_drop_off_rate; (notes)

Notes

Composed of Notes

Location_3D

 3D position in 3 space.
 This will be affected by hierarchical transformations.

Lobe_Data

 lobe shape
 The direction and axes will be affected by hierarchical transformations.

Fields Notes

apply_to_children

 Flag to allow lights to limit their scope to only affecting their children.
 If apply_to_children is False then the light is assumed to apply globally.

override_positional_lights

 Flag to reset the current cumulative definition of local Light_Sources
 If override_positional_lights is True then all Positional Light
 Sources in the current scope are cleared.

override_infinite_lights

 Flag to reset the current cumulative definition of Infinite Light_Sources.
 If override_infinite_lights is True then all Positional Light Sources in
 the current scope are cleared.

active_light_value

 SE_TRUE = on, SE_FALSE = off
 this is the default/active state of the light

radius

 (in meters)
 The radius and position define the sphere of influence.
 This will be affected by hierarchical transformations.

constant_attenuation_factor

 Constant 'a' in the attenuation quadratic (a + bd + cd**2)

linear_attenuation_factor

 Constant 'b' in the attenuation quadratic (a + bd + cd**2)

quadratic_attenuation_factor

 Constant 'c' in the attenuation quadratic (a + bd + cd**2)

horizontal_drop_off_rate

per degree
 Specifies the horizontal angular intensity distribution of the light.
 A value of 0.0 specifies a light that equally illuminates all
 objects within the cone of influence, and instantly falls to an
 intensity of 0.0 at the edge of the cone of light.
 The higher the drop off rate, the more focused the light.

vertical_drop_off_rate

per degree
 Specifies the vertical angular intensity distribution of the light.
 A value of 0.0 specifies a light that equally illuminates all
 objects within the cone of influence, and instantly falls to an
 intensity of 0.0 at the edge of the cone of light.
 The higher the drop off rate, the more focused the light.
 The intensity dropoff is computed as follows:
 Given a point on a ray in the cone at fixed distance D from the cone apex,
 if I0 = intensity on the <Lobe Data> direction axis at distance D
    Ah = the horizontal angle of the ray in degrees from direction vector
    Av = the vertical angle of the ray in degrees from direction vector
 then the intensity I at the point is:

    case: 0< horizontal_drop_off_rate
          0< vertical_drop_off_rate
    I= I0*(1-|Ah|*horizontal_drop_off_rate)*(1-|Av|*vertical_drop_off_rate)

    case: 0= horizontal_drop_off_rate
          0< vertical_drop_off_rate
    I= I0*(1-|Av|*vertical_drop_off_rate)

    case: 0< horizontal_drop_off_rate
          0= vertical_drop_off_rate
    I= I0*(1-|Ah|*horizontal_drop_off_rate)

Prev: Spherical Volume Extent. Next: Stamp Behavior. Up:Index.