no description available, TAbstractLightNode description follows
Base class for all VRML / X3D light nodes.
Note that even the old VRML 1.0 light nodes inherit from this. Although they interpret some bits differently ("ambientIntensity" < 0 has special meaning). But most of the fields behave identically, they only have different default values.
property Radius: Single read GetRadius write SetRadius;
Description
Methods
procedure CreateNode; override;
function DistanceNeededForAttenuation: boolean;
Calculate light intensity drop because of the distance to the light. This follows the equation 1/max( attenuation[0] + ... ) from the VRML/X3D specification, it is the same as OpenGL attenuation.
Since calculating the DistanceToLight for the Attenuation method may be time-consuming in some situations, you can check DistanceNeededForAttenuation first. When the DistanceNeededForAttenuation returns False, then the value of DistanceToLight parameter is ignored (you can pass anything).
The DistanceToLight should be a distance in the light source local coordinate system. TODO: although our renderers currently ignore this: ray-tracer uses global coord system, OpenGL (fixed-function and shader) renderer uses eye coord system (should be equal to global coord system for normal cameras).
function CalculateAttenuation(const DistanceToLight: Single): Single; overload;
function CalculateAttenuation(const DistanceToLight: Double): Double; overload;
function HasAttenuation: boolean;
Is attenuation relevant. When False, you know that Attenuation function always returns 1, so there's no point in using it at all.