Open 3D Engine Atom Gem API Reference  2205.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
Public Types | Public Member Functions | List of all members
AZ::Render::DecalFeatureProcessorInterface Class Referenceabstract

#include <DecalFeatureProcessorInterface.h>

Inherits AZ::RPI::FeatureProcessor.

Public Types

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

Public Member Functions

 AZ_RTTI (AZ::Render::DecalFeatureProcessorInterface, "{4A64E427-7F9F-4AF7-B414-69EA91323827}", 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, 0)
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 *)
 Apply changes and add additional render passes to the render pipeline from the feature processors.
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 DecalFeatureProcessor.

Member Function Documentation

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

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