|
The SEDRIS Data Representation Model
APPENDIX A - Classes Spot Light |
|---|
An instance of this DRM class is a <Base Positional Light> that specifies an elliptic cone of influence, the tip of which is the specified <Location 3D>. The cone is bounded where it intersects the sphere centred at the tip, the radius of which is given by the radius field. This results in a a cone-shaped volume of influence, possibly smashed in one direction. Only objects located within this cone can be affected.
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)
<Spot Light>, however, has the additional capability of specifying that the light is to spread horizontally and vertically, while in an OpenGL <Spot Light>, the horizontal and vertical lobe angles shall be identical, as shall the fall off angles.
| SE_Long_Float | horizontal_drop_off_rate; | (notes) |
|---|---|---|
| SE_Long_Float | vertical_drop_off_rate; | (notes) |
If a <Light Source> instance is subject to dynamic control - that is, if it can be turned on and off - it will have a <Light Source Control Link> component to express that control mechanism.
3D position in 3 space. This will be affected by hierarchical transformations.
Specifies the lobe shape. The direction and axes will be affected by hierarchical transformations.
For a <Light Source> instance (that is, an instance of one of the concrete classes descended from the class) that is a component of some <Aggregate Geometry>, apply_to_children provides a mechanism for limiting the scope of the <Light Source>. If apply_to_children is SE_TRUE, only <Primitive Geometry> in the component tree of those <Aggregate Geometry> instances are affected by the given <Light Source>. If apply_to_children is SE_FALSE, the <Light Source> is not limited to the scope of those <Aggregate Geometry> instances and thus applies globally.
For a <Light Source> instance (that is, an instance of one of the concrete classes descended from the class) that is a component of some <Aggregate Geometry>, override_positional_lights provides a mechanism to indicate with a value of SE_TRUE that the effect of the given <Light Source> overrides that of any <Base Positional Light> instances that would have otherwise applied to that <Aggregate Geometry> - for example, if the given <Light Source> is so close to the affected <Geometry> that the <Base Positional Light> effects would be negligible. If override_positional_lights is SE_FALSE, the effect of the given <Light Source> is combined with that of any <Base Positional Light> instances that are already in effect.
Flag to reset the current cumulative definition of Infinite Light_Sources. For a <Light Source> instance (that is, an instance of one of the concrete classes descended from the class) that is a component of some <Aggregate Geometry>, override_infinite_lights provides a mechanism to indicate with a value of SE_TRUE that the effect of the given <Light Source> overrides that of any <Infinite Light> instances that would have otherwise applied to that <Aggregate Geometry> - for example, if the given <Light Source> is so close to the affected <Geometry> that the <Infinite Light> effects would be negligible. If override_infinite_lights is SE_FALSE, the effect of the given <Light Source> is combined with that of any <Infinite Light> instances that are already in effect.
A value of SE_TRUE indicates that the light is on, while a value of SE_FALSE indicates that the light is off. For a <Light Source> with a <Light Source Control Link> instance as a component, this is the default state of the light.
The radius, which is specified in metres, and which, with the <Location 3D> component, defines the zone of influence of this <Light Source>.
This is the constant 'a' in the attenuation quadratic (a + bd + cd**2).
This is the constant 'b' in the attenuation quadratic (a + bd + cd**2).
This is the constant 'c' in the attenuation quadratic (a + bd + cd**2).
Specifies, in degrees of arc, the horizontal angular intensity distribution of the light. The higher this value, the more focused 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.
Specifies, in degrees of arc, the vertical angular intensity distribution of the light. The higher this value, the more focused 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.
|