The SEDRIS Data Representation Model
APPENDIX A - Classes
Volume Light Behaviour

Class Name: Volume Light Behaviour

Superclass - <Light Rendering Behaviour>

Subclasses

This DRM class is concrete and has no subclasses.

Definition

An instance of this DRM class is a <Light Rendering Behaviour> instance, the colour of which varies depending on the observer's position relative to the light's location and to the volume's geometry. The volume surrounds the light. Within the volume, the light has the primary colour; outside the volume, it takes the secondary colour.

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 <Volume Light Behaviour> 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 an intensity_level of 0.95. The <Volume Light Behaviour> instance also has a secondary colour, represented by another <Colour> component of L. The minimum_colour_intensity is 0.0. The use_full_intensity flag is SE_FALSE. The light is in the centre of the volume and the volume is a <Parallelepiped Volume Extent> instance representing a cube measuring 2000 metres per side.

    if:

    eye_distance_from_light = the distance of the viewing position from the light
    volume_distance_from_light = the distance between the light and the volume boundary along the same vector

    then:

    final intensity = minimum_colour_intensity + (((volume_distance_from_light - eye_distance_from_light) /
                              volume_distance_from_light) × (full_intensity - minimum_colour_intensity))

    If the observer's position from the light is a distance of 500 metre along a vector from the light to a corner of the volume, the final intensity is 0.614 as computed by:

    0.0 + (((1414.2 - 500.0) / 1414.2) × (0.95 - 0.0))

    If the observer's position from the light is 3000 metres, the final intensity is 1.0 (using the secondary colour) because the observer is outside the volume and there is a secondary colour on the <Volume Light Behaviour> instance.

  2. Consider a light represented by a DRM object L with a <Light Rendering Properties> component having a <Volume Light Behaviour> component of its own. The <Volume Light Behaviour> instance has a primary colour that is an <Inline Colour> component of L (which makes the full intensity = 1.0). The minimum_colour_intensity is 0.5. The use_full_intensity flag is SE_TRUE. The light is in the centre of the volume and the <Volume Extent> instance is a <Spherical Volume Extent> instance with a radius of 1000 metres.

    If the observer's distance from the light is a distance of 100 metres, the final intensity is 1.0 since the observer's position is inside the volume and the use_full_intensity flag is set to SE_TRUE.

    If the observer's distance from the light is a distance of 0 metres, the final intensity is 1.0 since the observer's position is inside the volume and the use_full_intensity flag is set to SE_TRUE.

FAQs

No FAQs supplied.

Constraints

Composed of (two-way)

Component of (two-way) (inherited)

Inherited Field Elements

This class has no inherited field elements.

Field Elements

SE_Boolean use_full_intensity; 3
SE_Long_Float minimum_colour_intensity; 4

Notes

Composed of Notes


Location_3D

The <Location 3D> component specifies the centre of the volume.


Volume_Extent

The <Volume Extent> component specifies the shape of the volume.

Fields Notes

use_full_intensity

If SE_TRUE, the use_full_intensity field specifies that the full intensity of the light is shown within the volume. Otherwise, the intensity of the light decreases towards the minimum_colour_intensity value as the observer moves away from the light. The intensity of the light reaches the minimum_colour_intensity value when the observer reaches the boundary of the volume.

minimum_colour_intensity

The value of the minimum_colour_intensity field is used in conjunction with the intensity value of the primary colour. If the primary colour is a <Colour Index> instance, the full intensity is the intensity_level of that instance. If the primary colour is an <Inline Colour> instance, the full intensity is 1.0.

If the observer's location is the same as that of the light, it receives the full intensity value. As the observer moves away from the light (but is still within the volume), the intensity decreases toward the minimum_colour_intensity value, unless use_full_intensity = SE_TRUE. Once the observer is outside the volume, the intensity is that of the minimum_colour_intensity value. If the minimum_colour_intensity value is 0.0 and the observer is outside the volume, the secondary colour is seen. If no secondary colour is used, nothing is seen.


Prev: Volume Geometry. Next: Volume LOD Data. Up:Index.

Last updated: July 26, 2006 Copyright © 2006 SEDRIS