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::DecalFeatureProcessorInterface Class Referenceabstract

#include <DecalFeatureProcessorInterface.h>

Inherits AZ::RPI::FeatureProcessor.

Inherited by AZ::Render::DecalTextureArrayFeatureProcessor.

Public Types

using DecalHandle = RHI::Handle< uint16_t, class Decal >
 

Public Member Functions

 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.
 
virtual void SetDecalTransform (DecalHandle handle, const AZ::Transform &world)=0
 
virtual void SetDecalTransform (DecalHandle handle, const AZ::Transform &world, const AZ::Vector3 &nonUniformScale)=0
 
- 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 ()
 

Additional Inherited Members

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

Detailed Description

DecalFeatureProcessorInterface provides an interface to acquire, release, and update a decal. This is necessary for code outside of the Atom features gem to communicate with the DecalTextureArrayFeatureProcessor.

Member Function Documentation

◆ AcquireDecal()

virtual DecalHandle AZ::Render::DecalFeatureProcessorInterface::AcquireDecal ( )
pure virtual

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

Implemented in AZ::Render::DecalTextureArrayFeatureProcessor.

◆ CloneDecal()

virtual DecalHandle AZ::Render::DecalFeatureProcessorInterface::CloneDecal ( DecalHandle  handle)
pure virtual

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

Implemented in AZ::Render::DecalTextureArrayFeatureProcessor.

◆ GetDecalBuffer()

virtual const Data::Instance< RPI::Buffer > AZ::Render::DecalFeatureProcessorInterface::GetDecalBuffer ( ) const
pure virtual

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

Implemented in AZ::Render::DecalTextureArrayFeatureProcessor.

◆ GetDecalCount()

virtual uint32_t AZ::Render::DecalFeatureProcessorInterface::GetDecalCount ( ) const
pure virtual

Returns the number of decals currently in the buffer.

Implemented in AZ::Render::DecalTextureArrayFeatureProcessor.

◆ ReleaseDecal()

virtual bool AZ::Render::DecalFeatureProcessorInterface::ReleaseDecal ( DecalHandle  handle)
pure virtual

Releases a Decal.

Implemented in AZ::Render::DecalTextureArrayFeatureProcessor.

◆ SetDecalAttenuationAngle()

virtual void AZ::Render::DecalFeatureProcessorInterface::SetDecalAttenuationAngle ( DecalHandle  handle,
float  angleAttenuation 
)
pure virtual

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

Implemented in AZ::Render::DecalTextureArrayFeatureProcessor.

◆ SetDecalData()

virtual void AZ::Render::DecalFeatureProcessorInterface::SetDecalData ( DecalHandle  handle,
const DecalData data 
)
pure virtual

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

Implemented in AZ::Render::DecalTextureArrayFeatureProcessor.

◆ SetDecalHalfSize()

virtual void AZ::Render::DecalFeatureProcessorInterface::SetDecalHalfSize ( DecalHandle  handle,
const Vector3 &  halfSize 
)
pure virtual

Sets the half size of the decal.

Implemented in AZ::Render::DecalTextureArrayFeatureProcessor.

◆ SetDecalMaterial()

virtual void AZ::Render::DecalFeatureProcessorInterface::SetDecalMaterial ( DecalHandle  handle,
const AZ::Data::AssetId   
)
pure virtual

Sets the material information for this decal.

Implemented in AZ::Render::DecalTextureArrayFeatureProcessor.

◆ SetDecalNormalMapOpacity()

virtual void AZ::Render::DecalFeatureProcessorInterface::SetDecalNormalMapOpacity ( DecalHandle  handle,
float  opacity 
)
pure virtual

Sets the opacity of the decal normal map.

Implemented in AZ::Render::DecalTextureArrayFeatureProcessor.

◆ SetDecalOpacity()

virtual void AZ::Render::DecalFeatureProcessorInterface::SetDecalOpacity ( DecalHandle  handle,
float  opacity 
)
pure virtual

Sets the opacity of the decal.

Implemented in AZ::Render::DecalTextureArrayFeatureProcessor.

◆ SetDecalOrientation()

virtual void AZ::Render::DecalFeatureProcessorInterface::SetDecalOrientation ( DecalHandle  handle,
const AZ::Quaternion &  orientation 
)
pure virtual

Sets the orientation of the decal.

Implemented in AZ::Render::DecalTextureArrayFeatureProcessor.

◆ SetDecalPosition()

virtual void AZ::Render::DecalFeatureProcessorInterface::SetDecalPosition ( DecalHandle  handle,
const AZ::Vector3 &  position 
)
pure virtual

Sets the position of the decal.

Implemented in AZ::Render::DecalTextureArrayFeatureProcessor.

◆ SetDecalSortKey()

virtual void AZ::Render::DecalFeatureProcessorInterface::SetDecalSortKey ( DecalHandle  handle,
uint8_t  sortKey 
)
pure virtual

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

Implemented in AZ::Render::DecalTextureArrayFeatureProcessor.

◆ SetDecalTransform()

virtual void AZ::Render::DecalFeatureProcessorInterface::SetDecalTransform ( DecalHandle  handle,
const AZ::Transform &  world 
)
pure virtual

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

Implemented in AZ::Render::DecalTextureArrayFeatureProcessor.


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