The SEDRIS Data Representation Model
APPENDIX A - Classes
Pyramid Directional Light

Class Name: Pyramid Directional Light

Superclass - <Directional Light Behaviour>

Subclasses

This DRM class is concrete and has no subclasses.

Definition

An instance of this DRM class specifies a light, the intensity of which varies depending on the observer's position relative to the light's location, direction, and pyramid-shaped lobe.

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

Primary Page in DRM Diagram:

Secondary Pages in DRM Diagram:

This class appears on only one page of the DRM class diagram.

Example

  1. Consider a light represented by a DRM object L with a <Light Rendering Properties> component having a <Pyramid Directional Light> component of its own. The primary colour of the light is represented by a <Colour Index> component of L that has colour_mapping = { Primary_Light_Rendering_Behaviour } and intensity_level = 0.9, and which also has a secondary colour. The minimum_colour_intensity is 0.0. The use_full_intensity flag is SE_FALSE. The <Lobe Data> component has horizontal_width = 1.04 radians and vertical_width = 1.04 radians.

    The following equation computes the final intensity:

    final intensity = minimum_colour_intensity +
                            ((((width / 2.0) - radians_away_from_direction_vector) /
                            (width / 2.0)) ×
                            (full_intensity - minimum_colour_intensity))

    At 0.177 radians (approximately 10 degrees) from the SE_REFVEC_LIGHT_DIRECTION vector in the horizontal direction, the final intensity is

    0.6 = 0.0 + ((((60.0 / 2.0) - 10.0) / (60.0 / 2.0)) × (0.9 - 0.0))

    At 0.6195 radians (approximately 35 degrees) from the SE_REFVEC_LIGHT_DIRECTION vector in the horizontal direction, the final intensity is 1.0 (using the secondary colour), because this lies outside the lobe.

  2. Consider a light represented by a DRM object L with a <Light Rendering Properties> component having a <Pyramid Directional Light> component of its own. The primary colour of the light is represented by an <Inline Colour> instance, so that the full intensity is 1.0. The minimum_colour_intensity is 0.2. The use_full_intensity flag is SE_TRUE. The horizontal_width of the <Lobe Data> component is 0.354 (approximately 20 degrees) and the vertical_width is 0.354.

    Lying on the SE_REFVEC_LIGHT_DIRECTION vector (that is, at 0 radians), the final intensity is 1.0.

    At 0.177 radians (approximately 10 degrees) from the SE_REFVEC_LIGHT_DIRECTION vector in the horizontal direction, the final intensity is 0.2, since this position is outside the lobe.

FAQs

No FAQs supplied.

Constraints

Composed of (two-way) (inherited)

Component of (two-way) (inherited)

Inherited Field Elements

This class has no inherited field elements.

Field Elements

SE_Boolean use_full_intensity; 2
SE_Long_Float minimum_colour_intensity; 3
SE_Boolean invisible_behind; 4

Notes

Composed of Notes


Lobe_Data

The <Lobe Data> component specifies the lobe shape.

Fields Notes

use_full_intensity

If SE_TRUE, the use_full_intensity field specifies that the full intensity of the light is shown in the pyramid shaped area. Otherwise, the intensity of the light decreases (towards the minimum_colour_intensity value) as one moves away from the SE_REFVEC_LIGHT_DIRECTION vector.

minimum_colour_intensity

The minimum_colour_intensity field's value is used in conjunction with the primary colour's full intensity value. If the primary colour is a <Colour Index> instance, the full intensity is specified by its intensity_level field. If the primary colour is an <Inline Colour> instance, the full intensity is 1.0.

A location in the direct path of the <Lobe Data> instance's SE_REFVEC_LIGHT_DIRECTION vector receives the full intensity value. If use_full_intensity is SE_FALSE, the intensity decreases with increasing distance from the SE_REFVEC_LIGHT_DIRECTION vector, until the boundary specified by the horizontal_width and vertical_width of the <Lobe Data> instance is reached. Outside the lobe, the intensity is minimum_colour_intensity. If the minimum_colour_intensity value is 0.0, the secondary colour (if present) shall be seen outside the lobe at full intensity. If no secondary colour is present, nothing shall be visible outside the lobe.

invisible_behind

If the value of the invisible_behind field is SE_TRUE, the directional light is invisible when viewed from behind the plane of the directional light.


Prev: Pseudo Code Function. Next: Quadrant Data. Up:Index.

Last updated: July 26, 2006 Copyright © 2006 SEDRIS