Open 3D Engine Atom Gem API Reference 25.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::RayTracingFeatureProcessor Class Reference

This feature processor manages ray tracing data for a Scene. More...

#include <RayTracingFeatureProcessor.h>

Inherits AZ::Render::RayTracingFeatureProcessorInterface.

Public Member Functions

 AZ_RTTI (AZ::Render::RayTracingFeatureProcessor, "{5017EFD3-A996-44B0-9ED2-C47609A2EE8D}", AZ::Render::RayTracingFeatureProcessorInterface)
 
void Activate () override
 Perform any necessary activation and gives access to owning Scene.
 
void Deactivate () override
 Perform any necessary deactivation.
 
void OnRenderPipelineChanged (RPI::RenderPipeline *renderPipeline, RPI::SceneNotification::RenderPipelineChangeType changeType) override
 
ProceduralGeometryTypeHandle RegisterProceduralGeometryType (const AZStd::string &name, const Data::Instance< RPI::Shader > &intersectionShader, const AZStd::string &intersectionShaderName, const AZStd::unordered_map< int, uint32_t > &bindlessBufferIndices={}) override
 
void SetProceduralGeometryTypeBindlessBufferIndex (ProceduralGeometryTypeWeakHandle geometryTypeHandle, const AZStd::unordered_map< int, uint32_t > &bindlessBufferIndices) override
 
void AddProceduralGeometry (ProceduralGeometryTypeWeakHandle geometryTypeHandle, const Uuid &uuid, const Aabb &aabb, const SubMeshMaterial &material, RHI::RayTracingAccelerationStructureInstanceInclusionMask instanceMask, uint32_t localInstanceIndex) override
 
void SetProceduralGeometryTransform (const Uuid &uuid, const Transform &transform, const Vector3 &nonUniformScale=Vector3::CreateOne()) override
 
void SetProceduralGeometryLocalInstanceIndex (const Uuid &uuid, uint32_t localInstanceIndex) override
 
void SetProceduralGeometryMaterial (const Uuid &uuid, const SubMeshMaterial &material) override
 
void RemoveProceduralGeometry (const Uuid &uuid) override
 
int GetProceduralGeometryCount (ProceduralGeometryTypeWeakHandle geometryTypeHandle) const override
 
const ProceduralGeometryTypeListGetProceduralGeometryTypes () const override
 Retrieves the list of all procedural geometry types in the scene.
 
const ProceduralGeometryList & GetProceduralGeometries () const override
 Retrieves the list of all procedural geometry instances in the scene.
 
void AddMesh (const AZ::Uuid &uuid, const Mesh &rayTracingMesh, const SubMeshVector &subMeshes) override
 
void RemoveMesh (const AZ::Uuid &uuid) override
 
void SetMeshTransform (const AZ::Uuid &uuid, const AZ::Transform transform, const AZ::Vector3 nonUniformScale) override
 
void SetMeshReflectionProbe (const AZ::Uuid &uuid, const Mesh::ReflectionProbe &reflectionProbe) override
 
void SetMeshMaterials (const AZ::Uuid &uuid, const SubMeshMaterialVector &subMeshMaterials) override
 Sets the material for a mesh.
 
const SubMeshVector & GetSubMeshes () const override
 Retrieves the map of all subMeshes in the scene.
 
SubMeshVector & GetSubMeshes () override
 
const MeshMapGetMeshMap () override
 
uint32_t GetSubMeshCount () const override
 Retrieves the total number of ray tracing meshes.
 
uint32_t GetSkinnedMeshCount () const override
 REturns the number of skinned meshes.
 
Data::Instance< RPI::ShaderResourceGroupGetRayTracingSceneSrg () const override
 Retrieves the RayTracingSceneSrg.
 
Data::Instance< RPI::ShaderResourceGroupGetRayTracingMaterialSrg () const override
 Retrieves the RayTracingMaterialSrg.
 
const Data::Instance< RPI::BufferGetMeshInfoGpuBuffer () const override
 Retrieves the GPU buffer containing information for all ray tracing meshes.
 
const Data::Instance< RPI::BufferGetMaterialInfoGpuBuffer () const override
 Retrieves the GPU buffer containing information for all ray tracing materials.
 
void Render (const RenderPacket &) override
 
void BeginFrame () override
 
uint32_t GetRevision () const override
 
uint32_t GetProceduralGeometryTypeRevision () const override
 
RHI::RayTracingBufferPoolsGetBufferPools () override
 Retrieves the buffer pools used for ray tracing operations.
 
void UpdateRayTracingSrgs () override
 
const RHI::Ptr< RHI::RayTracingTlas > & GetTlas () const override
 Retrieves the RayTracingTlas.
 
RHI::Ptr< RHI::RayTracingTlas > & GetTlas () override
 
RHI::AttachmentId GetTlasAttachmentId () const override
 Retrieves the attachmentId of the Tlas for this scene.
 
BlasInstanceMap & GetBlasInstances () override
 
AZStd::mutex & GetBlasBuiltMutex () override
 Provide access to the mutex protecting the blasBuilt flag.
 
BlasBuildList & GetBlasBuildList (int deviceIndex) override
 
const BlasBuildList & GetSkinnedMeshBlasList () override
 
BlasBuildList & GetBlasCompactionList (int deviceIndex) override
 
const void MarkBlasInstanceForCompaction (int deviceIndex, Data::AssetId assetId) override
 
const void MarkBlasInstanceAsCompactionEnqueued (int deviceIndex, Data::AssetId assetId) override
 
bool HasMeshGeometry () const override
 Returns true if the ray tracing scene contains mesh geometry.
 
bool HasProceduralGeometry () const override
 Returns true if the ray tracing scene contains procedural geometry.
 
bool HasGeometry () const override
 Returns true if the ray tracing scene contains mesh or procedural geometry.
 
- Public Member Functions inherited from AZ::Render::RayTracingFeatureProcessorInterface
 AZ_RTTI (AZ::Render::RayTracingFeatureProcessorInterface, "{84C37D5E-3676-4E39-A0E6-CB048E2F7E5E}", AZ::RPI::FeatureProcessor)
 
virtual void SetMeshReflectionProbe (const AZ::Uuid &uuid, const Mesh::ReflectionProbe &reflectionProbe)=0
 Sets the reflection probe for a mesh.
 
- 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 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 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::RayTracingFeatureProcessorInterface
using SubMeshVector = AZStd::vector< SubMesh >
 
using SubMeshMaterialVector = AZStd::vector< SubMeshMaterial >
 
using IndexVector = AZStd::vector< uint32_t >
 
using ProceduralGeometryTypeHandle = StableDynamicArrayHandle< ProceduralGeometryType >
 
using ProceduralGeometryTypeWeakHandle = StableDynamicArrayWeakHandle< ProceduralGeometryType >
 
using ProceduralGeometryTypeList = StableDynamicArray< ProceduralGeometryType >
 
using ProceduralGeometryList = AZStd::vector< ProceduralGeometry >
 
using MeshMap = AZStd::map< AZ::Uuid, Mesh >
 
using BlasInstanceMap = AZStd::unordered_map< AZ::Data::AssetId, MeshBlasInstance >
 
using BlasBuildList = AZStd::unordered_set< AZ::Data::AssetId >
 
- Protected Member Functions inherited from AZ::RPI::FeatureProcessor
void EnableSceneNotification ()
 
void DisableSceneNotification ()
 

Detailed Description

This feature processor manages ray tracing data for a Scene.

Member Function Documentation

◆ Activate()

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

Perform any necessary activation and gives access to owning Scene.

Reimplemented from AZ::RPI::FeatureProcessor.

◆ AddMesh()

void AZ::Render::RayTracingFeatureProcessor::AddMesh ( const AZ::Uuid &  uuid,
const Mesh rayTracingMesh,
const SubMeshVector &  subMeshes 
)
overridevirtual

Adds ray tracing data for a mesh. This will cause an update to the RayTracing acceleration structure on the next frame

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ AddProceduralGeometry()

void AZ::Render::RayTracingFeatureProcessor::AddProceduralGeometry ( ProceduralGeometryTypeWeakHandle  geometryTypeHandle,
const Uuid &  uuid,
const Aabb &  aabb,
const SubMeshMaterial material,
RHI::RayTracingAccelerationStructureInstanceInclusionMask  instanceMask,
uint32_t  localInstanceIndex 
)
overridevirtual

Adds a procedural geometry to the ray tracing scene.

Parameters
geometryTypeHandleA weak handle of a procedural geometry type (obtained by calling .GetWeakHandle() on the handle returned by RegisterProceduralGeometryType.
uuidThe Uuid this geometry instance should be associated with.
aabbThe axis-aligned bounding box of this geometry instance.
materialThe material of this geometry instance.
instanceMaskUsed to include/exclude mesh instances from TraceRay() calls.
localInstanceIndexAn index which can be queried in the intersection shader with GetLocalInstanceIndex() and can be used together with GetBindlessBufferIndex() to access per-instance geometry data.

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ BeginFrame()

void AZ::Render::RayTracingFeatureProcessor::BeginFrame ( )
overridevirtual

If necessary recreates TLAS buffers and updates the ray tracing SRGs. Should only be called by the RayTracingAccelerationStructurePass.

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ Deactivate()

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

Perform any necessary deactivation.

Reimplemented from AZ::RPI::FeatureProcessor.

◆ GetBlasBuildList()

BlasBuildList & AZ::Render::RayTracingFeatureProcessor::GetBlasBuildList ( int  deviceIndex)
inlineoverridevirtual

Returns the list of Blas instance asset ids that need to be built for the given device The returned asset ids can be used to access the Blas instance returned by GetBlasInstances The caller is responsible for deleting entries that where enqueued for building

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ GetBlasBuiltMutex()

AZStd::mutex & AZ::Render::RayTracingFeatureProcessor::GetBlasBuiltMutex ( )
inlineoverridevirtual

Provide access to the mutex protecting the blasBuilt flag.

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ GetBlasCompactionList()

BlasBuildList & AZ::Render::RayTracingFeatureProcessor::GetBlasCompactionList ( int  deviceIndex)
inlineoverridevirtual

Returns the list of Blas instance asset ids that are ready for compaction The returned asset ids can be used to access the Blas instance returned by GetBlasInstances The caller is responsible for deleting entries that where enqueued for building

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ GetBlasInstances()

BlasInstanceMap & AZ::Render::RayTracingFeatureProcessor::GetBlasInstances ( )
inlineoverridevirtual

◆ GetBufferPools()

RHI::RayTracingBufferPools & AZ::Render::RayTracingFeatureProcessor::GetBufferPools ( )
inlineoverridevirtual

Retrieves the buffer pools used for ray tracing operations.

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ GetMaterialInfoGpuBuffer()

const Data::Instance< RPI::Buffer > AZ::Render::RayTracingFeatureProcessor::GetMaterialInfoGpuBuffer ( ) const
inlineoverridevirtual

Retrieves the GPU buffer containing information for all ray tracing materials.

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ GetMeshInfoGpuBuffer()

const Data::Instance< RPI::Buffer > AZ::Render::RayTracingFeatureProcessor::GetMeshInfoGpuBuffer ( ) const
inlineoverridevirtual

Retrieves the GPU buffer containing information for all ray tracing meshes.

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ GetMeshMap()

const MeshMap & AZ::Render::RayTracingFeatureProcessor::GetMeshMap ( )
inlineoverridevirtual

◆ GetProceduralGeometries()

const ProceduralGeometryList & AZ::Render::RayTracingFeatureProcessor::GetProceduralGeometries ( ) const
inlineoverridevirtual

Retrieves the list of all procedural geometry instances in the scene.

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ GetProceduralGeometryCount()

int AZ::Render::RayTracingFeatureProcessor::GetProceduralGeometryCount ( ProceduralGeometryTypeWeakHandle  geometryTypeHandle) const
overridevirtual

Returns the number of procedural geometry instances of a given procedural geometry type.

Parameters
geometryTypeHandleA weak handle of a procedural geometry type(obtained by calling .GetWeakHandle() on the handle returned by RegisterProceduralGeometryType.
Returns
The number of procedural geometry instances of this type.

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ GetProceduralGeometryTypeRevision()

uint32_t AZ::Render::RayTracingFeatureProcessor::GetProceduralGeometryTypeRevision ( ) const
inlineoverridevirtual

Retrieves the revision number of the procedural geometry data of the ray tracing data. This is used to determine if the RayTracingPipelineState needs to be recreated.

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ GetProceduralGeometryTypes()

const ProceduralGeometryTypeList & AZ::Render::RayTracingFeatureProcessor::GetProceduralGeometryTypes ( ) const
inlineoverridevirtual

Retrieves the list of all procedural geometry types in the scene.

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ GetRayTracingMaterialSrg()

Data::Instance< RPI::ShaderResourceGroup > AZ::Render::RayTracingFeatureProcessor::GetRayTracingMaterialSrg ( ) const
inlineoverridevirtual

Retrieves the RayTracingMaterialSrg.

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ GetRayTracingSceneSrg()

Data::Instance< RPI::ShaderResourceGroup > AZ::Render::RayTracingFeatureProcessor::GetRayTracingSceneSrg ( ) const
inlineoverridevirtual

Retrieves the RayTracingSceneSrg.

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ GetRevision()

uint32_t AZ::Render::RayTracingFeatureProcessor::GetRevision ( ) const
inlineoverridevirtual

Retrieves the revision number of the ray tracing data. This is used to determine if the RayTracingShaderTable needs to be rebuilt.

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ GetSkinnedMeshBlasList()

const BlasBuildList & AZ::Render::RayTracingFeatureProcessor::GetSkinnedMeshBlasList ( )
inlineoverridevirtual

Returns the asset id of all skinned mesh Blas instances in the scene The returned asset ids can be used to access the Blas instance returned by GetBlasInstances

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ GetSkinnedMeshCount()

uint32_t AZ::Render::RayTracingFeatureProcessor::GetSkinnedMeshCount ( ) const
inlineoverridevirtual

REturns the number of skinned meshes.

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ GetSubMeshCount()

uint32_t AZ::Render::RayTracingFeatureProcessor::GetSubMeshCount ( ) const
inlineoverridevirtual

Retrieves the total number of ray tracing meshes.

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ GetSubMeshes() [1/2]

const SubMeshVector & AZ::Render::RayTracingFeatureProcessor::GetSubMeshes ( ) const
inlineoverridevirtual

Retrieves the map of all subMeshes in the scene.

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ GetSubMeshes() [2/2]

SubMeshVector & AZ::Render::RayTracingFeatureProcessor::GetSubMeshes ( )
inlineoverridevirtual

◆ GetTlas() [1/2]

const RHI::Ptr< RHI::RayTracingTlas > & AZ::Render::RayTracingFeatureProcessor::GetTlas ( ) const
inlineoverridevirtual

Retrieves the RayTracingTlas.

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ GetTlas() [2/2]

RHI::Ptr< RHI::RayTracingTlas > & AZ::Render::RayTracingFeatureProcessor::GetTlas ( )
inlineoverridevirtual

◆ GetTlasAttachmentId()

RHI::AttachmentId AZ::Render::RayTracingFeatureProcessor::GetTlasAttachmentId ( ) const
inlineoverridevirtual

Retrieves the attachmentId of the Tlas for this scene.

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ HasGeometry()

bool AZ::Render::RayTracingFeatureProcessor::HasGeometry ( ) const
inlineoverridevirtual

Returns true if the ray tracing scene contains mesh or procedural geometry.

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ HasMeshGeometry()

bool AZ::Render::RayTracingFeatureProcessor::HasMeshGeometry ( ) const
inlineoverridevirtual

Returns true if the ray tracing scene contains mesh geometry.

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ HasProceduralGeometry()

bool AZ::Render::RayTracingFeatureProcessor::HasProceduralGeometry ( ) const
inlineoverridevirtual

Returns true if the ray tracing scene contains procedural geometry.

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ MarkBlasInstanceAsCompactionEnqueued()

const void AZ::Render::RayTracingFeatureProcessor::MarkBlasInstanceAsCompactionEnqueued ( int  deviceIndex,
Data::AssetId  assetId 
)
overridevirtual

Signals that the Blas compaction has been enqueued The original uncompacted BLAS will be deleted when it's no longer needed

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ MarkBlasInstanceForCompaction()

const void AZ::Render::RayTracingFeatureProcessor::MarkBlasInstanceForCompaction ( int  deviceIndex,
Data::AssetId  assetId 
)
overridevirtual

Signals that the compaction size queries of the asset have been enqueued The mesh will be inserted into the queue returned by GetBlasCompactionList when the compacted size is ready

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ RegisterProceduralGeometryType()

ProceduralGeometryTypeHandle AZ::Render::RayTracingFeatureProcessor::RegisterProceduralGeometryType ( const AZStd::string &  name,
const Data::Instance< RPI::Shader > &  intersectionShader,
const AZStd::string &  intersectionShaderName,
const AZStd::unordered_map< int, uint32_t > &  bindlessBufferIndices = {} 
)
overridevirtual

Registers a new procedural geometry type, which uses an intersection shader to determine hits for ray tracing.

Parameters
nameThe name this procedural geometry type should be associated with. It must be unique within the ray tracing pipeline as it is used to match hit group records to hit groups.
intersectionShaderThe intersection that should be used for procedural geometry of this type. The intersection shader must include the file <Atom/Features/RayTracing/RayTracingSrgs.azsli> and must use the struct ProceduralGeometryIntersectionAttributes to forward its hit parameters to ReportHit().
intersectionShaderNameThe name of the intersection shader entry function within m_intersectionShader.
bindlessBufferIndexA single 32-bit value which can be queried in the intersection shader with GetBindlessBufferIndex(). This value is in most cases obtained by calling GetBindlessReadIndex() on a RHI BufferView, such that it can be accessed with Bindless::GetByteAddressBuffer(GetBindlessBufferIndex()) in the intersection shader.
Returns
A handle to the created type. If this handle is destroyed (by falling out of scope or calling .Free()), this procedural geometry type is also destroyed. This handle should be regarded as an opaque pointer, meaning that no member variables should be accessed or changed directly.

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ RemoveMesh()

void AZ::Render::RayTracingFeatureProcessor::RemoveMesh ( const AZ::Uuid &  uuid)
overridevirtual

Removes ray tracing data for a mesh. This will cause an update to the RayTracing acceleration structure on the next frame

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ RemoveProceduralGeometry()

void AZ::Render::RayTracingFeatureProcessor::RemoveProceduralGeometry ( const Uuid &  uuid)
overridevirtual

Removes a procedural geometry instance from the ray tracing scene.

Parameters
uuidThe Uuid of the procedrual geometry which must have been added with AddProceduralGeometry before.

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ Render()

void AZ::Render::RayTracingFeatureProcessor::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.

◆ SetMeshMaterials()

void AZ::Render::RayTracingFeatureProcessor::SetMeshMaterials ( const AZ::Uuid &  uuid,
const SubMeshMaterialVector &  subMeshMaterials 
)
overridevirtual

Sets the material for a mesh.

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ SetMeshTransform()

void AZ::Render::RayTracingFeatureProcessor::SetMeshTransform ( const AZ::Uuid &  uuid,
const AZ::Transform  transform,
const AZ::Vector3  nonUniformScale 
)
overridevirtual

Sets the ray tracing mesh transform This will cause an update to the RayTracing acceleration structure on the next frame

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ SetProceduralGeometryLocalInstanceIndex()

void AZ::Render::RayTracingFeatureProcessor::SetProceduralGeometryLocalInstanceIndex ( const Uuid &  uuid,
uint32_t  localInstanceIndex 
)
overridevirtual

Sets the local index by which this instance can be addressed in the intersection shader.

Parameters
uuidThe Uuid of the procedural geometry which must have been added with AddProceduralGeometry before.
localInstanceIndexAn index which can be queried in the intersection shader with GetLocalInstanceIndex() and can be used together with GetBindlessBufferIndex() to access per-instance geometry data.

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ SetProceduralGeometryMaterial()

void AZ::Render::RayTracingFeatureProcessor::SetProceduralGeometryMaterial ( const Uuid &  uuid,
const SubMeshMaterial material 
)
overridevirtual

Sets the material of a procedural geometry instance.

Parameters
uuidThe Uuid of the procedural geometry which must have been added with AddProceduralGeometry before.
materialThe material of the procedural geometry instance.

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ SetProceduralGeometryTransform()

void AZ::Render::RayTracingFeatureProcessor::SetProceduralGeometryTransform ( const Uuid &  uuid,
const Transform &  transform,
const Vector3 &  nonUniformScale = Vector3::CreateOne() 
)
overridevirtual

Sets the transform of a procedural geometry instance.

Parameters
uuidThe Uuid of the procedural geometry which must have been added with AddProceduralGeometry before.
transformThe transform of the procedural geometry instance.
nonUniformScaleThe non-uniform scale of the procedural geometry instance.

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ SetProceduralGeometryTypeBindlessBufferIndex()

void AZ::Render::RayTracingFeatureProcessor::SetProceduralGeometryTypeBindlessBufferIndex ( ProceduralGeometryTypeWeakHandle  geometryTypeHandle,
const AZStd::unordered_map< int, uint32_t > &  bindlessBufferIndices 
)
overridevirtual

Sets the bindlessBufferIndices of a procedural geometry type. This is necessary if the buffer, whose bindless read index was passed to RegisterProceduralGeometryType, is resized or recreated.

Parameters
geometryTypeHandleA weak handle of a procedural geometry type (obtained by calling .GetWeakHandle() on the handle returned by RegisterProceduralGeometryType.
bindlessBufferIndicesA single 32-bit value which can be queried in the intersection shader with GetBindlessBufferIndex().

Implements AZ::Render::RayTracingFeatureProcessorInterface.

◆ UpdateRayTracingSrgs()

void AZ::Render::RayTracingFeatureProcessor::UpdateRayTracingSrgs ( )
overridevirtual

Updates the RayTracingSceneSrg and RayTracingMaterialSrg, called after the TLAS is allocated in the RayTracingAccelerationStructurePass

Implements AZ::Render::RayTracingFeatureProcessorInterface.


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