Open 3D Engine Atom Gem API Reference 23.10.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
AZ::Render::QuadLightFeatureProcessorInterface Class Referenceabstract

#include <QuadLightFeatureProcessorInterface.h>

Inherits AZ::RPI::FeatureProcessor.

Inherited by AZ::Render::QuadLightFeatureProcessor.

Public Types

using LightHandle = RHI::Handle< uint16_t, class QuadLight >
 

Public Member Functions

 AZ_RTTI (AZ::Render::QuadLightFeatureProcessorInterface, "{D86216E4-92A8-43BE-A5E4-883489C6AF06}", AZ::RPI::FeatureProcessor)
 
virtual LightHandle AcquireLight ()=0
 Creates a new quad light which can be referenced by the returned LightHandle. Must be released via ReleaseLight() when no longer needed.
 
virtual bool ReleaseLight (LightHandle &handle)=0
 Releases a LightHandle which removes the quad light.
 
virtual LightHandle CloneLight (LightHandle handle)=0
 Creates a new LightHandle by copying data from an existing LightHandle.
 
virtual void SetRgbIntensity (LightHandle handle, const PhotometricColor< PhotometricUnitType > &lightColor)=0
 Sets the intensity in RGB candela for a given LightHandle.
 
virtual void SetPosition (LightHandle handle, const AZ::Vector3 &lightPosition)=0
 Sets the position for a given LightHandle.
 
virtual void SetOrientation (LightHandle handle, const AZ::Quaternion &lightOrientation)=0
 Sets the direction for a given LightHandle.
 
virtual void SetLightEmitsBothDirections (LightHandle handle, bool lightEmitsBothDirections)=0
 Sets if the quad light emits light in both directions for a given LightHandle.
 
virtual void SetUseFastApproximation (LightHandle handle, bool useFastApproximation)=0
 Sets whether to use a fast approximation instead of the default high quality linearly transformed cosine lighting.
 
virtual void SetAttenuationRadius (LightHandle handle, float attenuationRadius)=0
 Sets the radius in meters at which the provided LightHandle will no longer have an effect.
 
virtual void SetQuadDimensions (LightHandle handle, float width, float height)=0
 Sets the quad radius for the provided LightHandle.
 
virtual void SetAffectsGI (LightHandle handle, bool affectsGI)=0
 Specifies if this light affects the diffuse global illumination in the scene.
 
virtual void SetAffectsGIFactor (LightHandle handle, float affectsGIFactor)=0
 Specifies the contribution of this light to the diffuse global illumination in the scene.
 
virtual void SetQuadData (LightHandle handle, const QuadLightData &data)=0
 Sets all of the the quad data for the provided LightHandle.
 
- Public Member Functions inherited from AZ::RPI::FeatureProcessor
 AZ_RTTI (FeatureProcessor, "{B8027170-C65C-4237-964D-B557FC9D7575}")
 
 AZ_CLASS_ALLOCATOR (FeatureProcessor, AZ::SystemAllocator)
 
SceneGetParentScene () const
 
virtual void Activate ()
 Perform any necessary activation and gives access to owning Scene.
 
virtual void Deactivate ()
 Perform any necessary deactivation.
 
virtual void ApplyRenderPipelineChange (RenderPipeline *pipeline)
 
virtual void AddRenderPasses (RenderPipeline *pipeline)
 
virtual void PrepareViews (const PrepareViewsPacket &, AZStd::vector< AZStd::pair< PipelineViewTag, ViewPtr > > &)
 
virtual void Simulate (const SimulatePacket &)
 
virtual void Render (const RenderPacket &)
 
virtual void OnEndCulling (const RenderPacket &)
 
virtual void OnRenderEnd ()
 

Static Public Attributes

static constexpr PhotometricUnit PhotometricUnitType = PhotometricUnit::Nit
 

Additional Inherited Members

- Protected Member Functions inherited from AZ::RPI::FeatureProcessor
void EnableSceneNotification ()
 
void DisableSceneNotification ()
 

Detailed Description

QuadLightFeatureProcessorInterface provides an interface to acquire, release, and update a quad light. This is necessary for code outside of the Atom features gem to communicate with the QuadLightFeatureProcessor.

Member Function Documentation

◆ AcquireLight()

virtual LightHandle AZ::Render::QuadLightFeatureProcessorInterface::AcquireLight ( )
pure virtual

Creates a new quad light which can be referenced by the returned LightHandle. Must be released via ReleaseLight() when no longer needed.

Implemented in AZ::Render::QuadLightFeatureProcessor.

◆ CloneLight()

virtual LightHandle AZ::Render::QuadLightFeatureProcessorInterface::CloneLight ( LightHandle  handle)
pure virtual

Creates a new LightHandle by copying data from an existing LightHandle.

Implemented in AZ::Render::QuadLightFeatureProcessor.

◆ ReleaseLight()

virtual bool AZ::Render::QuadLightFeatureProcessorInterface::ReleaseLight ( LightHandle handle)
pure virtual

Releases a LightHandle which removes the quad light.

Implemented in AZ::Render::QuadLightFeatureProcessor.

◆ SetAffectsGI()

virtual void AZ::Render::QuadLightFeatureProcessorInterface::SetAffectsGI ( LightHandle  handle,
bool  affectsGI 
)
pure virtual

Specifies if this light affects the diffuse global illumination in the scene.

Implemented in AZ::Render::QuadLightFeatureProcessor.

◆ SetAffectsGIFactor()

virtual void AZ::Render::QuadLightFeatureProcessorInterface::SetAffectsGIFactor ( LightHandle  handle,
float  affectsGIFactor 
)
pure virtual

Specifies the contribution of this light to the diffuse global illumination in the scene.

Implemented in AZ::Render::QuadLightFeatureProcessor.

◆ SetAttenuationRadius()

virtual void AZ::Render::QuadLightFeatureProcessorInterface::SetAttenuationRadius ( LightHandle  handle,
float  attenuationRadius 
)
pure virtual

Sets the radius in meters at which the provided LightHandle will no longer have an effect.

Implemented in AZ::Render::QuadLightFeatureProcessor.

◆ SetLightEmitsBothDirections()

virtual void AZ::Render::QuadLightFeatureProcessorInterface::SetLightEmitsBothDirections ( LightHandle  handle,
bool  lightEmitsBothDirections 
)
pure virtual

Sets if the quad light emits light in both directions for a given LightHandle.

Implemented in AZ::Render::QuadLightFeatureProcessor.

◆ SetOrientation()

virtual void AZ::Render::QuadLightFeatureProcessorInterface::SetOrientation ( LightHandle  handle,
const AZ::Quaternion &  lightOrientation 
)
pure virtual

Sets the direction for a given LightHandle.

Implemented in AZ::Render::QuadLightFeatureProcessor.

◆ SetPosition()

virtual void AZ::Render::QuadLightFeatureProcessorInterface::SetPosition ( LightHandle  handle,
const AZ::Vector3 &  lightPosition 
)
pure virtual

Sets the position for a given LightHandle.

Implemented in AZ::Render::QuadLightFeatureProcessor.

◆ SetQuadData()

virtual void AZ::Render::QuadLightFeatureProcessorInterface::SetQuadData ( LightHandle  handle,
const QuadLightData data 
)
pure virtual

Sets all of the the quad data for the provided LightHandle.

Implemented in AZ::Render::QuadLightFeatureProcessor.

◆ SetQuadDimensions()

virtual void AZ::Render::QuadLightFeatureProcessorInterface::SetQuadDimensions ( LightHandle  handle,
float  width,
float  height 
)
pure virtual

Sets the quad radius for the provided LightHandle.

Implemented in AZ::Render::QuadLightFeatureProcessor.

◆ SetRgbIntensity()

virtual void AZ::Render::QuadLightFeatureProcessorInterface::SetRgbIntensity ( LightHandle  handle,
const PhotometricColor< PhotometricUnitType > &  lightColor 
)
pure virtual

Sets the intensity in RGB candela for a given LightHandle.

Implemented in AZ::Render::QuadLightFeatureProcessor.

◆ SetUseFastApproximation()

virtual void AZ::Render::QuadLightFeatureProcessorInterface::SetUseFastApproximation ( LightHandle  handle,
bool  useFastApproximation 
)
pure virtual

Sets whether to use a fast approximation instead of the default high quality linearly transformed cosine lighting.

Implemented in AZ::Render::QuadLightFeatureProcessor.


The documentation for this class was generated from the following file: