Class Name: Pyramid Directional Light

Superclass - Directional Light Behavior

Definition

A Pyramid Directional Light is a light whose intensity varies depending on your position to the light's location, direction, and shape. This light takes the shape of a pyramid.

It is possible when defining the Lobe Data component of a Pyramid Directional Light, to set the horizontal_width or vertical_width to 0. When one of these values is set to 0, then it means infinity, and that there are no bounds in that direction. The shape of the light then becomes a wedge shape.

If a secondary color exists, then it is seen outside the lobe.

Primary Page in DRM Diagram:

Example

  1. The Pyramid Directional Light has a primary color that is a Color Index that has an intensity attribute of 0.9. The Pyramid Directional Light also has a secondary color. The minimum_color_intensity is 0.0. The use_full_intensity flag is false. The Lobe Data component has horizontal_width=60 and vertical_width=60.

    equation:

    final_intensity = minimum_color_intensity + ((((width / 2.0) - degrees_away_from_direction_vector) / (width / 2.0)) * (full_intensity - minimum_color_intensity))

    If my position from the light direction is 10 degrees in the horizontal direction then the final_intensity is 0.6 = 0.0 + ((((60.0 / 2.0) - 10.0) / (60.0 / 2.0)) * (0.9 - 0.0))

    If my position from the light direction is 35 degrees in the horizontal direction then the final_intensity is 1.0 (using the secondary color) because I am outside the horizontal width and there is a secondary color on the Pyramid Directional Light.

  2. The Pyramid Directional Light has a primary color that is an Inline Color (which makes the full intensity 1.0). The minimum_color_intensity is 0.2. The use_full_intensity flag is true. The component Lobe Data horizontal_width is 20 and the vertical_width is 20.

    If my position from the light direction is 0 degrees in the horizontal direction then the final_intensity is 1.0 since my position is exactly in the light direction.

    If my position from the light direction is 10 degrees in the horizontal direction then the final_intensity is 0.2 since I am outside the horizontal width.

FAQs

--FAQs needed here --

Constraints

None.

Composed of (one-way)(inherited)

Component of (one-way)(inherited)

Field Elements

SE_BOOLEAN use_full_intensity; (notes)
SE_FLOAT64 minimum_color_intensity; (notes)
SE_BOOLEAN invisible_behind; (notes)

Notes

Composed of Notes

Lobe_Data

 lobe shape

Fields Notes

use_full_intensity

 A flag; if true, indicates that the full intensity of the light is
 shown in the cone shaped area. If this flag is false, then the intensity
 of the light decreases (towards the minimum_color_intensity value)
 as you move away from the direction vector.

minimum_color_intensity

 This value (between 0.0 and 1.0) is used in conjunction with the
 intensity value of the primary color. If the primary color is a
 <Color Index>, then the full intensity will be the intensity field
 of that object. If the primary color is an <Inline Color>, then the
 full intensity is 1.0.
 If your location is in the direct path of the light direction vector
 (<Lobe Data> component Reference_Vector of type SE_LIGHT_DIRECTION),
 then you receive the full (intensity) value.
 As you move away from the light direction vector (but still lie within
 the horizontal and vertical widths), your intensity decreases toward
 the minimum_color_intensity value (unless the use_full_intensity flag
 is TRUE). Once you get outside the horizontal and vertical width area,
 then the intensity is that of the minimum_color_intensity value.
 If the minimum_color_intensity value is 0.0 and you're outside the
 vertical and horizontal widths, the secondary color will be seen. If no
 secondary color is used, then nothing will be seen.

invisible_behind

 If this flag is set, then the directional light is not seen
 if you're behind the plane of the directional light.

Prev: Pseudo Code Function. Next: Quad Tree Related Features. Up:Index.