Open 3D Engine DiffuseProbeGrid 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::DiffuseProbeGrid Class Referencefinal

#include <DiffuseProbeGrid.h>

Public Member Functions

void Init (RPI::Scene *scene, DiffuseProbeGridRenderData *diffuseProbeGridRenderData)
 
void Simulate (uint32_t probeIndex)
 
void SetTransform (const AZ::Transform &transform)
 
bool ValidateExtents (const AZ::Vector3 &newExtents)
 
const AZ::Vector3 & GetExtents () const
 
void SetExtents (const AZ::Vector3 &extents)
 
const AZ::Obb & GetObbWs () const
 
bool ValidateProbeSpacing (const AZ::Vector3 &newSpacing)
 
const AZ::Vector3 & GetProbeSpacing () const
 
void SetProbeSpacing (const AZ::Vector3 &probeSpacing)
 
float GetNormalBias () const
 
void SetNormalBias (float normalBias)
 
float GetViewBias () const
 
void SetViewBias (float viewBias)
 
const DiffuseProbeGridNumRaysPerProbeEntryGetNumRaysPerProbe () const
 
void SetNumRaysPerProbe (DiffuseProbeGridNumRaysPerProbe numRaysPerProbe)
 
float GetAmbientMultiplier () const
 
void SetAmbientMultiplier (float ambientMultiplier)
 
void Enable (bool enabled)
 
bool GetGIShadows () const
 
void SetGIShadows (bool giShadows)
 
bool GetUseDiffuseIbl () const
 
void SetUseDiffuseIbl (bool useDiffuseIbl)
 
DiffuseProbeGridMode GetMode () const
 
void SetMode (DiffuseProbeGridMode mode)
 
bool GetScrolling () const
 
void SetScrolling (bool scrolling)
 
bool GetEdgeBlendIbl () const
 
void SetEdgeBlendIbl (bool edgeBlendIbl)
 
uint32_t GetFrameUpdateCount () const
 
void SetFrameUpdateCount (uint32_t frameUpdateCount)
 
uint32_t GetFrameUpdateIndex () const
 
DiffuseProbeGridTransparencyMode GetTransparencyMode () const
 
void SetTransparencyMode (DiffuseProbeGridTransparencyMode transparencyMode)
 
float GetEmissiveMultiplier () const
 
void SetEmissiveMultiplier (float emissiveMultiplier)
 
bool GetVisualizationEnabled () const
 
void SetVisualizationEnabled (bool visualizationEnabled)
 
bool GetVisualizationShowInactiveProbes () const
 
void SetVisualizationShowInactiveProbes (bool visualizationShowInactiveProbes)
 
float GetVisualizationSphereRadius () const
 
void SetVisualizationSphereRadius (float visualizationSphereRadius)
 
uint32_t GetRemainingRelocationIterations () const
 
void DecrementRemainingRelocationIterations ()
 
void ResetRemainingRelocationIterations ()
 
void ResetCullingVisibility ()
 
bool GetIsVisible () const
 
uint32_t GetTotalProbeCount () const
 
void GetTexture2DProbeCount (uint32_t &probeCountX, uint32_t &probeCountY) const
 
const Data::Instance< RPI::ShaderResourceGroup > & GetPrepareSrg () const
 
const Data::Instance< RPI::ShaderResourceGroup > & GetRayTraceSrg () const
 
const Data::Instance< RPI::ShaderResourceGroup > & GetBlendIrradianceSrg () const
 
const Data::Instance< RPI::ShaderResourceGroup > & GetBlendDistanceSrg () const
 
const Data::Instance< RPI::ShaderResourceGroup > & GetBorderUpdateRowIrradianceSrg () const
 
const Data::Instance< RPI::ShaderResourceGroup > & GetBorderUpdateColumnIrradianceSrg () const
 
const Data::Instance< RPI::ShaderResourceGroup > & GetBorderUpdateRowDistanceSrg () const
 
const Data::Instance< RPI::ShaderResourceGroup > & GetBorderUpdateColumnDistanceSrg () const
 
const Data::Instance< RPI::ShaderResourceGroup > & GetRelocationSrg () const
 
const Data::Instance< RPI::ShaderResourceGroup > & GetClassificationSrg () const
 
const Data::Instance< RPI::ShaderResourceGroup > & GetRenderObjectSrg () const
 
const Data::Instance< RPI::ShaderResourceGroup > & GetVisualizationPrepareSrg () const
 
const Data::Instance< RPI::ShaderResourceGroup > & GetVisualizationRayTraceSrg () const
 
const Data::Instance< RPI::ShaderResourceGroup > & GetQuerySrg () const
 
void UpdatePrepareSrg (const Data::Instance< RPI::Shader > &shader, const RHI::Ptr< RHI::ShaderResourceGroupLayout > &srgLayout)
 
void UpdateRayTraceSrg (const Data::Instance< RPI::Shader > &shader, const RHI::Ptr< RHI::ShaderResourceGroupLayout > &srgLayout)
 
void UpdateBlendIrradianceSrg (const Data::Instance< RPI::Shader > &shader, const RHI::Ptr< RHI::ShaderResourceGroupLayout > &srgLayout)
 
void UpdateBlendDistanceSrg (const Data::Instance< RPI::Shader > &shader, const RHI::Ptr< RHI::ShaderResourceGroupLayout > &srgLayout)
 
void UpdateBorderUpdateSrgs (const Data::Instance< RPI::Shader > &rowShader, const RHI::Ptr< RHI::ShaderResourceGroupLayout > &rowSrgLayout, const Data::Instance< RPI::Shader > &columnShader, const RHI::Ptr< RHI::ShaderResourceGroupLayout > &columnSrgLayout)
 
void UpdateRelocationSrg (const Data::Instance< RPI::Shader > &shader, const RHI::Ptr< RHI::ShaderResourceGroupLayout > &srgLayout)
 
void UpdateClassificationSrg (const Data::Instance< RPI::Shader > &shader, const RHI::Ptr< RHI::ShaderResourceGroupLayout > &srgLayout)
 
void UpdateRenderObjectSrg ()
 
void UpdateVisualizationPrepareSrg (const Data::Instance< RPI::Shader > &shader, const RHI::Ptr< RHI::ShaderResourceGroupLayout > &srgLayout)
 
void UpdateVisualizationRayTraceSrg (const Data::Instance< RPI::Shader > &shader, const RHI::Ptr< RHI::ShaderResourceGroupLayout > &srgLayout, const RHI::ImageView *outputImageView)
 
void UpdateQuerySrg (const Data::Instance< RPI::Shader > &shader, const RHI::Ptr< RHI::ShaderResourceGroupLayout > &srgLayout)
 
const RHI::Ptr< RHI::Image > GetRayTraceImage ()
 
const RHI::Ptr< RHI::Image > GetIrradianceImage ()
 
const RHI::Ptr< RHI::Image > GetDistanceImage ()
 
const RHI::Ptr< RHI::Image > GetProbeDataImage ()
 
const RHI::Ptr< RHI::Buffer > GetGridDataBuffer ()
 
const AZStd::string & GetBakedIrradianceRelativePath () const
 
const AZStd::string & GetBakedDistanceRelativePath () const
 
const AZStd::string & GetBakedProbeDataRelativePath () const
 
const RHI::AttachmentId GetRayTraceImageAttachmentId () const
 
const RHI::AttachmentId GetIrradianceImageAttachmentId () const
 
const RHI::AttachmentId GetDistanceImageAttachmentId () const
 
const RHI::AttachmentId GetProbeDataImageAttachmentId () const
 
const RHI::AttachmentId GetGridDataBufferAttachmentId () const
 
const RHI::AttachmentId GetProbeVisualizationTlasAttachmentId () const
 
const RHI::AttachmentId GetProbeVisualizationTlasInstancesAttachmentId () const
 
const DiffuseProbeGridRenderDataGetRenderData () const
 
bool GetTextureClearRequired () const
 
void ResetTextureClearRequired ()
 
DiffuseProbeGridTextureReadbackGetTextureReadback ()
 
void SetBakedTextures (const DiffuseProbeGridBakedTextures &bakedTextures)
 
bool HasValidBakedTextures () const
 
const RHI::Ptr< RHI::RayTracingTlas > & GetVisualizationTlas () const
 
RHI::Ptr< RHI::RayTracingTlas > & GetVisualizationTlas ()
 
bool GetVisualizationTlasUpdateRequired () const
 
void ResetVisualizationTlasUpdateRequired ()
 
bool ContainsPosition (const AZ::Vector3 &position) const
 

Static Public Attributes

static constexpr uint32_t DefaultNumIrradianceTexels = 6
 
static constexpr uint32_t DefaultNumDistanceTexels = 14
 
static constexpr int32_t DefaultNumRelocationIterations = 100
 

Detailed Description

This class manages contains the functionality necessary to update diffuse probes and generate diffuse global illumination.


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