Delegate for managing light shape specific functionality in the AreaLightComponentController. More...
#include <LightDelegateBase.h>
Inherits AZ::Render::LightDelegateInterface, LmbrCentral::ShapeComponentNotificationsBus::Handler, and AZ::TransformNotificationBus::Handler.
Public Member Functions | |
LightDelegateBase (EntityId entityId, bool isVisible) | |
void | SetConfig (const AreaLightComponentConfig *config) override |
Sets the area light component config so delegates don't have to cache the same data locally. | |
void | SetChroma (const Color &chroma) override |
Sets the color of the light independent of light intensity. The color is a mask on the total light intensity. | |
void | SetIntensity (float intensity) override |
Sets the light intensity. | |
float | SetPhotometricUnit (PhotometricUnit unit) override |
Sets the light unit, and returns the converted light intensity. | |
void | SetAttenuationRadius (float radius) override |
Sets the maximum distance from any part of the surface of the area light at which this light will have an effect. | |
const PhotometricValue & | GetPhotometricValue () const override |
Gets the light intensity. | |
void | SetLightEmitsBothDirections (bool lightEmitsBothDirections) override |
Sets if this shape is double-sided (only applicable for 2d shapes). | |
void | SetUseFastApproximation (bool useFastApproximation) override |
void | SetVisibility (bool visibility) override |
Turns the visibility of this light on/off. | |
void | SetEnableShutters (bool enabled) override |
void | SetShutterAngles (float innerAngleDegrees, float outerAngleDegrees) override |
void | SetEnableShadow (bool enabled) override |
Sets if shadows should be enabled. | |
void | SetShadowBias (float bias) override |
Sets the shadow bias. | |
void | SetShadowmapMaxSize (ShadowmapSize size) override |
Sets the maximum resolution of the shadow map. | |
void | SetShadowFilterMethod (ShadowFilterMethod method) override |
Sets the filter method for the shadow. | |
void | SetFilteringSampleCount (uint32_t count) override |
Sets the sample count for filtering of the shadow boundary, max 64. | |
void | SetEsmExponent (float esmExponent) override |
Sets the Esm exponent to use. Higher values produce a steeper falloff between light and shadow. | |
void | SetNormalShadowBias (float bias) override |
Sets the normal bias. Reduces acne by biasing the shadowmap lookup along the geometric normal. | |
void | SetShadowCachingMode (AreaLightComponentConfig::ShadowCachingMode cachingMode) override |
void | SetAffectsGI (bool affectsGI) override |
Sets if the light should affect diffuse global illumination. | |
void | SetAffectsGIFactor (float affectsGIFactor) override |
Sets the multiplier on the contribution to diffuse global illumination. | |
void | SetLightingChannelMask (uint32_t lightingChannelMask) override |
Set the lighting channel mask. | |
void | SetGoboTexture (AZ::Data::Instance< AZ::RPI::Image > goboTexture) override |
![]() | |
virtual float | GetSurfaceArea () const =0 |
Gets the surface area of the shape. | |
virtual float | GetEffectiveSolidAngle () const =0 |
Returns the number of steradians covered by this light type. | |
virtual float | CalculateAttenuationRadius (float lightThreshold) const =0 |
Calculates the attenuation radius for this light type based on a threshold value. | |
virtual void | DrawDebugDisplay (const Transform &transform, const Color &color, AzFramework::DebugDisplayRequests &debugDisplay, bool isSelected) const =0 |
Handle any additional debug display drawing for beyond what the shape already provides. | |
virtual Aabb | GetLocalVisualizationBounds () const =0 |
Returns the Aabb for the debug visualization of the light. | |
Protected Member Functions | |
void | InitBase (EntityId entityId) |
FeatureProcessorType * | GetFeatureProcessor () const |
const AreaLightComponentConfig * | GetConfig () const |
FeatureProcessorType::LightHandle | GetLightHandle () const |
const Transform & | GetTransform () const |
bool | GetShuttersEnabled () |
bool | GetShadowsEnabled () |
virtual void | HandleShapeChanged ()=0 |
void | OnShapeChanged (ShapeChangeReasons changeReason) override |
void | OnTransformChanged (const Transform &local, const Transform &world) override |
Protected Attributes | |
LmbrCentral::ShapeComponentRequests * | m_shapeBus = nullptr |
Delegate for managing light shape specific functionality in the AreaLightComponentController.
|
inlineoverridevirtual |
Gets the light intensity.
Implements AZ::Render::LightDelegateInterface.
|
inlineoverridevirtual |
Sets if the light should affect diffuse global illumination.
Implements AZ::Render::LightDelegateInterface.
Reimplemented in AZ::Render::QuadLightDelegate, AZ::Render::SimplePointLightDelegate, AZ::Render::SimpleSpotLightDelegate, and AZ::Render::SphereLightDelegate.
|
inlineoverridevirtual |
Sets the multiplier on the contribution to diffuse global illumination.
Implements AZ::Render::LightDelegateInterface.
Reimplemented in AZ::Render::QuadLightDelegate, AZ::Render::SimplePointLightDelegate, AZ::Render::SimpleSpotLightDelegate, and AZ::Render::SphereLightDelegate.
|
overridevirtual |
Sets the maximum distance from any part of the surface of the area light at which this light will have an effect.
Implements AZ::Render::LightDelegateInterface.
|
overridevirtual |
Sets the color of the light independent of light intensity. The color is a mask on the total light intensity.
Implements AZ::Render::LightDelegateInterface.
|
overridevirtual |
Sets the area light component config so delegates don't have to cache the same data locally.
Implements AZ::Render::LightDelegateInterface.
|
inlineoverridevirtual |
Sets if shadows should be enabled.
Implements AZ::Render::LightDelegateInterface.
Reimplemented in AZ::Render::SimpleSpotLightDelegate, and AZ::Render::SphereLightDelegate.
|
inlineoverridevirtual |
Implements AZ::Render::LightDelegateInterface.
|
inlineoverridevirtual |
Sets the Esm exponent to use. Higher values produce a steeper falloff between light and shadow.
Implements AZ::Render::LightDelegateInterface.
Reimplemented in AZ::Render::SimpleSpotLightDelegate, and AZ::Render::SphereLightDelegate.
|
inlineoverridevirtual |
Sets the sample count for filtering of the shadow boundary, max 64.
Implements AZ::Render::LightDelegateInterface.
Reimplemented in AZ::Render::SimpleSpotLightDelegate, and AZ::Render::SphereLightDelegate.
|
inlineoverridevirtual |
Implements AZ::Render::LightDelegateInterface.
|
overridevirtual |
Sets the light intensity.
Implements AZ::Render::LightDelegateInterface.
|
inlineoverridevirtual |
Sets if this shape is double-sided (only applicable for 2d shapes).
Implements AZ::Render::LightDelegateInterface.
Reimplemented in AZ::Render::PolygonLightDelegate, and AZ::Render::QuadLightDelegate.
|
overridevirtual |
Set the lighting channel mask.
Implements AZ::Render::LightDelegateInterface.
|
inlineoverridevirtual |
Sets the normal bias. Reduces acne by biasing the shadowmap lookup along the geometric normal.
Implements AZ::Render::LightDelegateInterface.
Reimplemented in AZ::Render::SimpleSpotLightDelegate, and AZ::Render::SphereLightDelegate.
|
overridevirtual |
Sets the light unit, and returns the converted light intensity.
Implements AZ::Render::LightDelegateInterface.
|
inlineoverridevirtual |
Sets the shadow bias.
Implements AZ::Render::LightDelegateInterface.
Reimplemented in AZ::Render::SimpleSpotLightDelegate, and AZ::Render::SphereLightDelegate.
|
inlineoverridevirtual |
Sets the current shadow caching mode. Cached shadows use persistent textures and only update when they detect a change. Regular shadows use transient textures but re-render every frame.
Implements AZ::Render::LightDelegateInterface.
Reimplemented in AZ::Render::SimpleSpotLightDelegate, and AZ::Render::SphereLightDelegate.
|
inlineoverridevirtual |
Sets the filter method for the shadow.
Implements AZ::Render::LightDelegateInterface.
Reimplemented in AZ::Render::SimpleSpotLightDelegate, and AZ::Render::SphereLightDelegate.
|
inlineoverridevirtual |
Sets the maximum resolution of the shadow map.
Implements AZ::Render::LightDelegateInterface.
Reimplemented in AZ::Render::SimpleSpotLightDelegate, and AZ::Render::SphereLightDelegate.
|
inlineoverridevirtual |
Implements AZ::Render::LightDelegateInterface.
|
inlineoverridevirtual |
Sets if this light uses linearly transformed cosines (false) or a faster approximation (true). Only applicable for shapes that support LTC.
Implements AZ::Render::LightDelegateInterface.
Reimplemented in AZ::Render::QuadLightDelegate.
|
overridevirtual |
Turns the visibility of this light on/off.
Implements AZ::Render::LightDelegateInterface.