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

Inherits AZ::Render::DecalFeatureProcessorInterface, and AZ::Data::AssetBus::MultiHandler.

Public Member Functions

 AZ_RTTI (AZ::Render::DecalTextureArrayFeatureProcessor, "{5E8365FA-BEA7-4D02-9A5C-67E6810D5465}", AZ::Render::DecalFeatureProcessorInterface)
 
 DecalTextureArrayFeatureProcessor (const DecalTextureArrayFeatureProcessor &)=delete
 
DecalTextureArrayFeatureProcessoroperator= (const DecalTextureArrayFeatureProcessor &)=delete
 
void Activate () override
 Perform any necessary activation and gives access to owning Scene.
 
void Deactivate () override
 Perform any necessary deactivation.
 
void Simulate (const RPI::FeatureProcessor::SimulatePacket &packet) override
 
void Render (const RPI::FeatureProcessor::RenderPacket &packet) override
 
DecalHandle AcquireDecal () override
 Creates a new decal which can be referenced by the returned DecalHandle. Must be released via ReleaseDecal() when no longer needed.
 
bool ReleaseDecal (const DecalHandle handle) override
 Releases a Decal.
 
DecalHandle CloneDecal (const DecalHandle handle) override
 Creates a new Decal by copying data from an existing DecalHandle.
 
void SetDecalData (const DecalHandle handle, const DecalData &data) override
 Sets all of the the decal data for the provided DecalHandle.
 
const Data::Instance< RPI::BufferGetDecalBuffer () const override
 Returns a GPU readable buffer containing the contiguous array of decals.
 
uint32_t GetDecalCount () const override
 Returns the number of decals currently in the buffer.
 
void SetDecalPosition (const DecalHandle handle, const AZ::Vector3 &position) override
 Sets the position of the decal.
 
void SetDecalOrientation (const DecalHandle handle, const AZ::Quaternion &orientation) override
 Sets the orientation of the decal.
 
void SetDecalHalfSize (const DecalHandle handle, const Vector3 &size) override
 Sets the half size of the decal.
 
void SetDecalAttenuationAngle (const DecalHandle handle, float angleAttenuation) override
 Sets the angle attenuation of the decal. Increasing this increases the transparency as the angle between the decal and geometry gets larger.
 
void SetDecalOpacity (const DecalHandle handle, float opacity) override
 Sets the opacity of the decal.
 
void SetDecalNormalMapOpacity (const DecalHandle handle, float opacity) override
 Sets the opacity of the normal map of the decal.
 
void SetDecalSortKey (const DecalHandle handle, uint8_t sortKey) override
 Sets the decal sort key. Decals with a larger sort key appear over top of smaller sort keys.
 
void SetDecalMaterial (const DecalHandle handle, const AZ::Data::AssetId id) override
 Sets the material information for this decal.
 
void SetDecalTransform (const DecalHandle handle, const AZ::Transform &world) override
 
void SetDecalTransform (const DecalHandle handle, const AZ::Transform &world, const AZ::Vector3 &nonUniformScale) override
 
- Public Member Functions inherited from AZ::Render::DecalFeatureProcessorInterface
 AZ_RTTI (AZ::Render::DecalFeatureProcessorInterface, "{4A64E427-7F9F-4AF7-B414-69EA91323827}", AZ::RPI::FeatureProcessor)
 
virtual DecalHandle AcquireDecal ()=0
 Creates a new decal which can be referenced by the returned DecalHandle. Must be released via ReleaseDecal() when no longer needed.
 
virtual bool ReleaseDecal (DecalHandle handle)=0
 Releases a Decal.
 
virtual DecalHandle CloneDecal (DecalHandle handle)=0
 Creates a new Decal by copying data from an existing DecalHandle.
 
virtual void SetDecalData (DecalHandle handle, const DecalData &data)=0
 Sets all of the the decal data for the provided DecalHandle.
 
virtual void SetDecalPosition (DecalHandle handle, const AZ::Vector3 &position)=0
 Sets the position of the decal.
 
virtual void SetDecalOrientation (DecalHandle handle, const AZ::Quaternion &orientation)=0
 Sets the orientation of the decal.
 
virtual void SetDecalHalfSize (DecalHandle handle, const Vector3 &halfSize)=0
 Sets the half size of the decal.
 
virtual void SetDecalAttenuationAngle (DecalHandle handle, float angleAttenuation)=0
 Sets the angle attenuation of the decal. Increasing this increases the transparency as the angle between the decal and geometry gets larger.
 
virtual void SetDecalOpacity (DecalHandle handle, float opacity)=0
 Sets the opacity of the decal.
 
virtual void SetDecalNormalMapOpacity (DecalHandle handle, float opacity)=0
 Sets the opacity of the decal normal map.
 
virtual void SetDecalMaterial (DecalHandle handle, const AZ::Data::AssetId)=0
 Sets the material information for this decal.
 
virtual void SetDecalSortKey (DecalHandle handle, uint8_t sortKey)=0
 Sets the sort key for the decal. Decals with a larger sort key appear over top of smaller sort keys.
 
virtual const Data::Instance< RPI::BufferGetDecalBuffer () const =0
 Returns a GPU readable buffer containing the contiguous array of decals.
 
virtual uint32_t GetDecalCount () const =0
 Returns the number of decals currently in the buffer.
 
- 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::DecalFeatureProcessorInterface
using DecalHandle = RHI::Handle< uint16_t, class Decal >
 
- Protected Member Functions inherited from AZ::RPI::FeatureProcessor
void EnableSceneNotification ()
 
void DisableSceneNotification ()
 

Member Function Documentation

◆ AcquireDecal()

DecalHandle AZ::Render::DecalTextureArrayFeatureProcessor::AcquireDecal ( )
overridevirtual

Creates a new decal which can be referenced by the returned DecalHandle. Must be released via ReleaseDecal() when no longer needed.

Implements AZ::Render::DecalFeatureProcessorInterface.

◆ Activate()

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

Perform any necessary activation and gives access to owning Scene.

Reimplemented from AZ::RPI::FeatureProcessor.

◆ CloneDecal()

DecalHandle AZ::Render::DecalTextureArrayFeatureProcessor::CloneDecal ( const DecalHandle  handle)
overridevirtual

Creates a new Decal by copying data from an existing DecalHandle.

Implements AZ::Render::DecalFeatureProcessorInterface.

◆ Deactivate()

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

Perform any necessary deactivation.

Reimplemented from AZ::RPI::FeatureProcessor.

◆ GetDecalBuffer()

const Data::Instance< RPI::Buffer > AZ::Render::DecalTextureArrayFeatureProcessor::GetDecalBuffer ( ) const
overridevirtual

Returns a GPU readable buffer containing the contiguous array of decals.

Implements AZ::Render::DecalFeatureProcessorInterface.

◆ GetDecalCount()

uint32_t AZ::Render::DecalTextureArrayFeatureProcessor::GetDecalCount ( ) const
overridevirtual

Returns the number of decals currently in the buffer.

Implements AZ::Render::DecalFeatureProcessorInterface.

◆ ReleaseDecal()

bool AZ::Render::DecalTextureArrayFeatureProcessor::ReleaseDecal ( const DecalHandle  handle)
overridevirtual

Releases a Decal.

Implements AZ::Render::DecalFeatureProcessorInterface.

◆ Render()

void AZ::Render::DecalTextureArrayFeatureProcessor::Render ( const RPI::FeatureProcessor::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.

◆ SetDecalAttenuationAngle()

void AZ::Render::DecalTextureArrayFeatureProcessor::SetDecalAttenuationAngle ( const DecalHandle  handle,
float  angleAttenuation 
)
overridevirtual

Sets the angle attenuation of the decal. Increasing this increases the transparency as the angle between the decal and geometry gets larger.

Implements AZ::Render::DecalFeatureProcessorInterface.

◆ SetDecalData()

void AZ::Render::DecalTextureArrayFeatureProcessor::SetDecalData ( const DecalHandle  handle,
const DecalData data 
)
overridevirtual

Sets all of the the decal data for the provided DecalHandle.

Implements AZ::Render::DecalFeatureProcessorInterface.

◆ SetDecalHalfSize()

void AZ::Render::DecalTextureArrayFeatureProcessor::SetDecalHalfSize ( const DecalHandle  handle,
const Vector3 &  size 
)
overridevirtual

Sets the half size of the decal.

Implements AZ::Render::DecalFeatureProcessorInterface.

◆ SetDecalMaterial()

void AZ::Render::DecalTextureArrayFeatureProcessor::SetDecalMaterial ( const DecalHandle  handle,
const AZ::Data::AssetId  id 
)
overridevirtual

Sets the material information for this decal.

Implements AZ::Render::DecalFeatureProcessorInterface.

◆ SetDecalNormalMapOpacity()

void AZ::Render::DecalTextureArrayFeatureProcessor::SetDecalNormalMapOpacity ( const DecalHandle  handle,
float  opacity 
)
overridevirtual

Sets the opacity of the normal map of the decal.

Implements AZ::Render::DecalFeatureProcessorInterface.

◆ SetDecalOpacity()

void AZ::Render::DecalTextureArrayFeatureProcessor::SetDecalOpacity ( const DecalHandle  handle,
float  opacity 
)
overridevirtual

Sets the opacity of the decal.

Implements AZ::Render::DecalFeatureProcessorInterface.

◆ SetDecalOrientation()

void AZ::Render::DecalTextureArrayFeatureProcessor::SetDecalOrientation ( const DecalHandle  handle,
const AZ::Quaternion &  orientation 
)
overridevirtual

Sets the orientation of the decal.

Implements AZ::Render::DecalFeatureProcessorInterface.

◆ SetDecalPosition()

void AZ::Render::DecalTextureArrayFeatureProcessor::SetDecalPosition ( const DecalHandle  handle,
const AZ::Vector3 &  position 
)
overridevirtual

Sets the position of the decal.

Implements AZ::Render::DecalFeatureProcessorInterface.

◆ SetDecalSortKey()

void AZ::Render::DecalTextureArrayFeatureProcessor::SetDecalSortKey ( const DecalHandle  handle,
uint8_t  sortKey 
)
overridevirtual

Sets the decal sort key. Decals with a larger sort key appear over top of smaller sort keys.

Implements AZ::Render::DecalFeatureProcessorInterface.

◆ SetDecalTransform() [1/2]

void AZ::Render::DecalTextureArrayFeatureProcessor::SetDecalTransform ( const DecalHandle  handle,
const AZ::Transform &  world 
)
overridevirtual

Sets the transform of the decal Equivalent to calling SetDecalPosition() + SetDecalOrientation() + SetDecalHalfSize()

Implements AZ::Render::DecalFeatureProcessorInterface.

◆ SetDecalTransform() [2/2]

void AZ::Render::DecalTextureArrayFeatureProcessor::SetDecalTransform ( const DecalHandle  handle,
const AZ::Transform &  world,
const AZ::Vector3 &  nonUniformScale 
)
overridevirtual

◆ Simulate()

void AZ::Render::DecalTextureArrayFeatureProcessor::Simulate ( const RPI::FeatureProcessor::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: