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::PolygonLightFeatureProcessor Class Referencefinal

Inherits AZ::Render::PolygonLightFeatureProcessorInterface.

Public Member Functions

 AZ_RTTI (AZ::Render::PolygonLightFeatureProcessor, "{59E4245F-AD7B-4181-B80A-1B973A50B4C8}", AZ::Render::PolygonLightFeatureProcessorInterface)
 
void Activate () override
 Perform any necessary activation and gives access to owning Scene.
 
void Deactivate () override
 Perform any necessary deactivation.
 
void Simulate (const SimulatePacket &packet) override
 
void Render (const RenderPacket &packet) override
 
LightHandle AcquireLight () override
 Creates a new Polygon light which can be referenced by the returned LightHandle. Must be released via ReleaseLight() when no longer needed.
 
bool ReleaseLight (LightHandle &handle) override
 Releases a LightHandle which removes the Polygon light.
 
LightHandle CloneLight (LightHandle handle) override
 Creates a new LightHandle by copying data from an existing LightHandle.
 
void SetPosition (LightHandle handle, const AZ::Vector3 &position) override
 Sets the position for a given LightHandle.
 
void SetRgbIntensity (LightHandle handle, const PhotometricColor< PhotometricUnitType > &lightColor) override
 Sets the intensity in RGB nits for a given LightHandle.
 
void SetPolygonPoints (LightHandle handle, const Vector3 *vectices, const uint32_t vertexCount, const Vector3 &direction) override
 Sets the polygon's world space positions for a given LightHandle.
 
void SetLightEmitsBothDirections (LightHandle handle, bool lightEmitsBothDirections) override
 Sets if the light is emitted from both directions for a given LightHandle.
 
void SetAttenuationRadius (LightHandle handle, float attenuationRadius) override
 Sets the radius in meters at which the provided LightHandle will no longer have an effect.
 
const Data::Instance< RPI::BufferGetLightBuffer () const
 
const Data::Instance< RPI::BufferGetLightPointBuffer () const
 
uint32_t GetLightCount () const
 
- Public Member Functions inherited from AZ::Render::PolygonLightFeatureProcessorInterface
 AZ_RTTI (AZ::Render::PolygonLightFeatureProcessorInterface, "{FB21684B-5752-4943-9D44-C81EB0C0991B}", AZ::RPI::FeatureProcessor)
 
virtual LightHandle AcquireLight ()=0
 Creates a new Polygon 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 Polygon light.
 
virtual LightHandle CloneLight (LightHandle handle)=0
 Creates a new LightHandle by copying data from an existing LightHandle.
 
virtual void SetPosition (LightHandle handle, const AZ::Vector3 &position)=0
 Sets the position for a given LightHandle.
 
virtual void SetRgbIntensity (LightHandle handle, const PhotometricColor< PhotometricUnitType > &lightColor)=0
 Sets the intensity in RGB nits for a given LightHandle.
 
virtual void SetPolygonPoints (LightHandle handle, const Vector3 *vectices, const uint32_t vertexCount, const Vector3 &direction)=0
 Sets the polygon's world space positions for a given LightHandle.
 
virtual void SetLightEmitsBothDirections (LightHandle handle, bool lightEmitsBothDirections)=0
 Sets if the light is emitted from both directions for a given LightHandle.
 
virtual void SetAttenuationRadius (LightHandle handle, float attenuationRadius)=0
 Sets the radius in meters at which the provided LightHandle will no longer have an effect.
 
- 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 Member Functions

static void Reflect (AZ::ReflectContext *context)
 

Additional Inherited Members

- Public Types inherited from AZ::Render::PolygonLightFeatureProcessorInterface
using LightHandle = RHI::Handle< uint16_t, class PolygonLight >
 
- Static Public Attributes inherited from AZ::Render::PolygonLightFeatureProcessorInterface
static constexpr PhotometricUnit PhotometricUnitType = PhotometricUnit::Nit
 
- Protected Member Functions inherited from AZ::RPI::FeatureProcessor
void EnableSceneNotification ()
 
void DisableSceneNotification ()
 

Member Function Documentation

◆ AcquireLight()

LightHandle AZ::Render::PolygonLightFeatureProcessor::AcquireLight ( )
overridevirtual

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

Implements AZ::Render::PolygonLightFeatureProcessorInterface.

◆ Activate()

void AZ::Render::PolygonLightFeatureProcessor::Activate ( )
overridevirtual

Perform any necessary activation and gives access to owning Scene.

Reimplemented from AZ::RPI::FeatureProcessor.

◆ CloneLight()

LightHandle AZ::Render::PolygonLightFeatureProcessor::CloneLight ( LightHandle  handle)
overridevirtual

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

Implements AZ::Render::PolygonLightFeatureProcessorInterface.

◆ Deactivate()

void AZ::Render::PolygonLightFeatureProcessor::Deactivate ( )
overridevirtual

Perform any necessary deactivation.

Reimplemented from AZ::RPI::FeatureProcessor.

◆ ReleaseLight()

bool AZ::Render::PolygonLightFeatureProcessor::ReleaseLight ( LightHandle handle)
overridevirtual

Releases a LightHandle which removes the Polygon light.

Implements AZ::Render::PolygonLightFeatureProcessorInterface.

◆ Render()

void AZ::Render::PolygonLightFeatureProcessor::Render ( const RenderPacket )
overridevirtual

The feature processor should enqueue draw packets to relevant draw lists.

  • This is called every frame.
  • This may be called in parallel with other feature processors.
  • This may be called in parallel with culling

Reimplemented from AZ::RPI::FeatureProcessor.

◆ SetAttenuationRadius()

void AZ::Render::PolygonLightFeatureProcessor::SetAttenuationRadius ( LightHandle  handle,
float  attenuationRadius 
)
overridevirtual

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

Implements AZ::Render::PolygonLightFeatureProcessorInterface.

◆ SetLightEmitsBothDirections()

void AZ::Render::PolygonLightFeatureProcessor::SetLightEmitsBothDirections ( LightHandle  handle,
bool  lightEmitsBothDirections 
)
overridevirtual

Sets if the light is emitted from both directions for a given LightHandle.

Implements AZ::Render::PolygonLightFeatureProcessorInterface.

◆ SetPolygonPoints()

void AZ::Render::PolygonLightFeatureProcessor::SetPolygonPoints ( LightHandle  handle,
const Vector3 *  vectices,
const uint32_t  vertexCount,
const Vector3 &  direction 
)
overridevirtual

Sets the polygon's world space positions for a given LightHandle.

Implements AZ::Render::PolygonLightFeatureProcessorInterface.

◆ SetPosition()

void AZ::Render::PolygonLightFeatureProcessor::SetPosition ( LightHandle  handle,
const AZ::Vector3 &  position 
)
overridevirtual

Sets the position for a given LightHandle.

Implements AZ::Render::PolygonLightFeatureProcessorInterface.

◆ SetRgbIntensity()

void AZ::Render::PolygonLightFeatureProcessor::SetRgbIntensity ( LightHandle  handle,
const PhotometricColor< PhotometricUnitType > &  lightColor 
)
overridevirtual

Sets the intensity in RGB nits for a given LightHandle.

Implements AZ::Render::PolygonLightFeatureProcessorInterface.

◆ Simulate()

void AZ::Render::PolygonLightFeatureProcessor::Simulate ( const SimulatePacket )
overridevirtual

The feature processor should perform any internal simulation at this point - For instance, updating a particle system or animation. Not every feature processor will need to implement this.

  • This may not be called every frame.
  • This may be called in parallel with other feature processors.

Reimplemented from AZ::RPI::FeatureProcessor.


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