The SEDRIS Data Representation Model
APPENDIX A - Classes Pyramid Directional Light |
---|
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 lobe, which is pyramid-shaped.
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 colour exists, then it is seen outside the lobe.
Consider a
<Pyramid Directional Light> with a primary colour that is a
<Colour Index> with
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
= 60.0 and
vertical_width =
60.0.
equation:
final_intensity = minimum_colour_intensity +
((((width / 2.0) - degrees_away_from_direction_vector)
/ (width / 2.0))
* (full_intensity - minimum_colour_intensity))
At 10 degrees from the 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 35 degrees from the light direction vector in the horizontal
direction, the final_intensity is 1.0
(using the secondary colour), because this lies outside the lobe.
Consider a <Pyramid Directional Light> with a primary colour that is an <Inline Colour>, so that the full intensity is 1.0. The minimum_colour_intensity is 0.2. The use_full_intensity flag is SE_TRUE. The component <Lobe Data> horizontal_width is 20.0 and the vertical_width is 20.0.
Lying on the light direction vector (that is, at 0 degrees), the final_intensity is 1.0.
At 10 degrees from the light direction vector in the horizontal direction, the final_intensity is 0.2, since this position is outside the lobe.
No FAQs supplied.
SE_Boolean | use_full_intensity; | (notes) |
---|---|---|
SE_Long_Float | minimum_colour_intensity; | (notes) |
SE_Boolean | invisible_behind; | (notes) |
This specifies the lobe shape.
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_REF_VEC_TYP_LIGHT_DIRECTION vector.
The minimum_colour_intensity field's value is used in conjunction with the primary colour's 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>'s SE_REF_VEC_TYP_LIGHT_DIRECTION vector receives the full intensity value. If use_full_intensity is SE_FALSE, the intensity decreases with increasing distance from the light direction vector, until the boundary specified by the horizontal and vertical <Lobe Data> widths 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) will be seen outside the lobe. If no secondary colour is present, then nothing is visible outside the lobe.
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.
|