class
Light
Public
Constructors
Light
Methods
SetCastsShadow
Determines does this light cast shadows when rendered.
SetShadowBias
Shadow bias determines offset at which the shadows are rendered from the shadow caster.
Bias value of 0 means the shadow will be renderered exactly at the casters position. If your geometry has thin areas this will produce an artifact called shadow acne, in which case you can increase the shadow bias value to eliminate it. Note that increasing the shadow bias will on the other hand make the shadow be offset from the caster and may make the caster appear as if floating (Peter Panning artifact). Neither is perfect, so it is preferable to ensure all your geometry has thickness and keep the bias at zero, or even at negative values.
Default value is 0.5. Should be in rough range [-1, 1].
SetAttenuationRadius
Range at which the light contribution fades out to zero.
Use SetUseAutoAttenuation to provide a radius automatically dependant on light intensity. The radius will cut-off light contribution and therefore manually set very small radius can end up being very physically incorrect.
SetSourceRadius
Radius of the light source.
If non-zero then this light represents an area light, otherwise it is a punctual light. Area lights have different attenuation then punctual lights, and their appearance in specular reflections is realistic. Shape of the area light depends on light type:
- For directional light the shape is a disc projected on the hemisphere on the sky. This parameter represents angular radius (in degrees) of the disk and should be very small (think of how much space the Sun takes on the sky - roughly 0.25 degree radius).
- For radial light the shape is a sphere and the source radius is the radius of the sphere.
- For spot lights the shape is a disc oriented in the direction of the spot light and the source radius is the radius of the disc.
SetUseAutoAttenuation
If enabled the attenuation radius will automatically be controlled in order to provide reasonable light radius, depending on its intensity.
SetIntensity
Determines the power of the light source.
This will be luminous flux for radial
& spot lights, luminance for directional lights with no area, and illuminance for directional lights with area (non-zero source radius).
SetSpotAngle
Determines the total angle covered by a spot light.
SetSpotFalloffAngle
Determines the falloff angle covered by a spot light.
Falloff angle determines at what point does light intensity starts quadratically falling off as the angle approaches the total spot angle.
GetLuminance
Returns the luminance of the light source.
This is the value that should be used in lighting equations.
staticGetRttiStatic
GetCastsShadow
Determines does this light cast shadows when rendered.
GetShadowBias
Shadow bias determines offset at which the shadows are rendered from the shadow caster.
Bias value of 0 means the shadow will be renderered exactly at the casters position. If your geometry has thin areas this will produce an artifact called shadow acne, in which case you can increase the shadow bias value to eliminate it. Note that increasing the shadow bias will on the other hand make the shadow be offset from the caster and may make the caster appear as if floating (Peter Panning artifact). Neither is perfect, so it is preferable to ensure all your geometry has thickness and keep the bias at zero, or even at negative values.
Default value is 0.5. Should be in rough range [-1, 1].
GetAttenuationRadius
Range at which the light contribution fades out to zero.
Use SetUseAutoAttenuation to provide a radius automatically dependant on light intensity. The radius will cut-off light contribution and therefore manually set very small radius can end up being very physically incorrect.
GetSourceRadius
Radius of the light source.
If non-zero then this light represents an area light, otherwise it is a punctual light. Area lights have different attenuation then punctual lights, and their appearance in specular reflections is realistic. Shape of the area light depends on light type:
- For directional light the shape is a disc projected on the hemisphere on the sky. This parameter represents angular radius (in degrees) of the disk and should be very small (think of how much space the Sun takes on the sky - roughly 0.25 degree radius).
- For radial light the shape is a sphere and the source radius is the radius of the sphere.
- For spot lights the shape is a disc oriented in the direction of the spot light and the source radius is the radius of the disc.
GetUseAutoAttenuation
If enabled the attenuation radius will automatically be controlled in order to provide reasonable light radius, depending on its intensity.
GetIntensity
Determines the power of the light source.
This will be luminous flux for radial
& spot lights, luminance for directional lights with no area, and illuminance for directional lights with area (non-zero source radius).
GetSpotAngle
Determines the total angle covered by a spot light.
GetSpotFalloffAngle
Determines the falloff angle covered by a spot light.
Falloff angle determines at what point does light intensity starts quadratically falling off as the angle approaches the total spot angle.
GetBounds
Returns world space bounds that completely encompass the light's area of influence.
Protected
Constructors
Light
Methods
Initialize
Construct any resources the component needs before use.
Called when the parent scene object is initialized. A non-initialized component shouldn't be used in a live scene (i.e. it should not receive any of the component logic updates or events).
OnCreated
Called once when the component has been created.
Called regardless of the state the component is in.
OnEnabled
Called every time a component leaves the Stopped state, if the component is enabled.
This includes component creation if requirements for leaving the Stopped state are met. When called during creation it is called after OnBeginPlay.
OnDisabled
Called every time a component is placed into the Stopped state.
This includes component destruction if component wasn't already in Stopped state during destruction. When called during destruction it is called before OnDestroyed.
OnDestroyed
Called once just before the component is destroyed.
Called regardless of the state the component is in.
OnSceneChanged
Called when the parent SceneObject's ECS entity is migrated to a new registry (e.g. when moving between scenes).
The old scene and entity are provided so that components can access sub-systems (renderer, physics, etc.) and read any data stored only in ECS fragments.
OnTransformChanged
Called when the component's parent scene object has changed.
Not called if the component is in Stopped state. Also only called if necessary notify flags are set via SetNotifyFlagsInternal().
Private
Methods
MarkRenderProxyDataDirty
Marks the render proxy data as dirty.
This causes the SyncToRenderProxy() method to trigger the next time objects are synced to the render thread.
- flags
- Flags in case you want to signal that only part of the internal data is dirty. SyncToRenderProxy() will be called regardless and it's up to the implementation to read the flags value if needed.
GetLightData
Returns a reference to the light data for the CRTP getter interface.
GetFragment
Returns a const reference to the ECS light fragment.
UpdateBounds
Updates the internal bounds for the light.
Call this whenever a property affecting the bounds changes.
UpdateAttenuationRange
Calculates maximum light range based on light intensity.