Open 3D Engine Atom Gem API Reference  23.05.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::Buffer
GetDecalBuffer () 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 ([[maybe_unused]] RenderPipeline *pipeline)
 
virtual void AddRenderPasses ([[maybe_unused]] 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 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

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()


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