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::DiffuseProbeGridFeatureProcessor Class Referencefinal

This class manages DiffuseProbeGrids which generate diffuse global illumination. More...

#include <DiffuseProbeGridFeatureProcessor.h>

Inherits AZ::Render::DiffuseProbeGridFeatureProcessorInterface, and Data::AssetBus::MultiHandler.

Public Types

using DiffuseProbeGridVector = AZStd::vector< AZStd::shared_ptr< DiffuseProbeGrid > >
 

Public Member Functions

 AZ_RTTI (AZ::Render::DiffuseProbeGridFeatureProcessor, "{BCD232F9-1EBF-4D0D-A5F4-84AEC933A93C}", AZ::Render::DiffuseProbeGridFeatureProcessorInterface)
 
DiffuseProbeGridHandle AddProbeGrid (const AZ::Transform &transform, const AZ::Vector3 &extents, const AZ::Vector3 &probeSpacing) override
 
void RemoveProbeGrid (DiffuseProbeGridHandle &probeGrid) override
 
bool IsValidProbeGridHandle (const DiffuseProbeGridHandle &probeGrid) const override
 
bool ValidateExtents (const DiffuseProbeGridHandle &probeGrid, const AZ::Vector3 &newExtents) override
 
void SetExtents (const DiffuseProbeGridHandle &probeGrid, const AZ::Vector3 &extents) override
 
void SetTransform (const DiffuseProbeGridHandle &probeGrid, const AZ::Transform &transform) override
 
bool ValidateProbeSpacing (const DiffuseProbeGridHandle &probeGrid, const AZ::Vector3 &newSpacing) override
 
void SetProbeSpacing (const DiffuseProbeGridHandle &probeGrid, const AZ::Vector3 &probeSpacing) override
 
void SetViewBias (const DiffuseProbeGridHandle &probeGrid, float viewBias) override
 
void SetNormalBias (const DiffuseProbeGridHandle &probeGrid, float normalBias) override
 
void SetNumRaysPerProbe (const DiffuseProbeGridHandle &probeGrid, DiffuseProbeGridNumRaysPerProbe numRaysPerProbe) override
 
void SetAmbientMultiplier (const DiffuseProbeGridHandle &probeGrid, float ambientMultiplier) override
 
void Enable (const DiffuseProbeGridHandle &probeGrid, bool enable) override
 
void SetGIShadows (const DiffuseProbeGridHandle &probeGrid, bool giShadows) override
 
void SetUseDiffuseIbl (const DiffuseProbeGridHandle &probeGrid, bool useDiffuseIbl) override
 
void SetMode (const DiffuseProbeGridHandle &probeGrid, DiffuseProbeGridMode mode) override
 
void SetScrolling (const DiffuseProbeGridHandle &probeGrid, bool scrolling) override
 
void SetEdgeBlendIbl (const DiffuseProbeGridHandle &probeGrid, bool edgeBlendIbl) override
 
void SetFrameUpdateCount (const DiffuseProbeGridHandle &probeGrid, uint32_t frameUpdateCount) override
 
void SetTransparencyMode (const DiffuseProbeGridHandle &probeGrid, DiffuseProbeGridTransparencyMode transparencyMode) override
 
void SetEmissiveMultiplier (const DiffuseProbeGridHandle &probeGrid, float emissiveMultiplier) override
 
void SetBakedTextures (const DiffuseProbeGridHandle &probeGrid, const DiffuseProbeGridBakedTextures &bakedTextures) override
 
void SetVisualizationEnabled (const DiffuseProbeGridHandle &probeGrid, bool visualizationEnabled) override
 
void SetVisualizationShowInactiveProbes (const DiffuseProbeGridHandle &probeGrid, bool visualizationShowInactiveProbes) override
 
void SetVisualizationSphereRadius (const DiffuseProbeGridHandle &probeGrid, float visualizationSphereRadius) override
 
bool CanBakeTextures () override
 
void BakeTextures (const DiffuseProbeGridHandle &probeGrid, DiffuseProbeGridBakeTexturesCallback callback, const AZStd::string &irradianceTextureRelativePath, const AZStd::string &distanceTextureRelativePath, const AZStd::string &probeDataTextureRelativePath) override
 
bool CheckTextureAssetNotification (const AZStd::string &relativePath, Data::Asset< RPI::StreamingImageAsset > &outTextureAsset, DiffuseProbeGridTextureNotificationType &outNotificationType) override
 
bool AreBakedTexturesReferenced (const AZStd::string &irradianceTextureRelativePath, const AZStd::string &distanceTextureRelativePath, const AZStd::string &probeDataTextureRelativePath) override
 
void Activate () override
 
void Deactivate () override
 
void Simulate (const FeatureProcessor::SimulatePacket &packet) override
 
DiffuseProbeGridVector & GetProbeGrids ()
 
DiffuseProbeGridVector & GetRealTimeProbeGrids ()
 
DiffuseProbeGridVector & GetVisibleProbeGrids ()
 
DiffuseProbeGridVector & GetVisibleRealTimeProbeGrids ()
 
RHI::RayTracingBufferPools & GetVisualizationBufferPools ()
 
const RHI::Ptr< RHI::RayTracingBlas > & GetVisualizationBlas () const
 
RHI::Ptr< RHI::RayTracingBlas > & GetVisualizationBlas ()
 
uint32_t AddIrradianceQuery (const AZ::Vector3 &position, const AZ::Vector3 &direction)
 
void ClearIrradianceQueries ()
 
uint32_t GetIrradianceQueryCount () const
 
const Data::Instance< RPI::Buffer > & GetQueryBuffer () const
 
const RHI::AttachmentId GetQueryBufferAttachmentId () const
 
const RHI::BufferViewDescriptor & GetQueryBufferViewDescriptor () const
 
- Public Member Functions inherited from AZ::Render::DiffuseProbeGridFeatureProcessorInterface
 AZ_RTTI (AZ::Render::DiffuseProbeGridFeatureProcessorInterface, "{6EF4F226-D473-4D50-8884-D407E4D145F4}", AZ::RPI::FeatureProcessor)
 
virtual DiffuseProbeGridHandle AddProbeGrid (const AZ::Transform &transform, const AZ::Vector3 &extents, const AZ::Vector3 &probeSpacing)=0
 
virtual void RemoveProbeGrid (DiffuseProbeGridHandle &handle)=0
 
virtual bool IsValidProbeGridHandle (const DiffuseProbeGridHandle &probeGrid) const =0
 
virtual bool ValidateExtents (const DiffuseProbeGridHandle &probeGrid, const AZ::Vector3 &newExtents)=0
 
virtual void SetExtents (const DiffuseProbeGridHandle &probeGrid, const AZ::Vector3 &extents)=0
 
virtual void SetTransform (const DiffuseProbeGridHandle &probeGrid, const AZ::Transform &transform)=0
 
virtual bool ValidateProbeSpacing (const DiffuseProbeGridHandle &probeGrid, const AZ::Vector3 &newSpacing)=0
 
virtual void SetProbeSpacing (const DiffuseProbeGridHandle &probeGrid, const AZ::Vector3 &probeSpacing)=0
 
virtual void SetViewBias (const DiffuseProbeGridHandle &probeGrid, float viewBias)=0
 
virtual void SetNormalBias (const DiffuseProbeGridHandle &probeGrid, float normalBias)=0
 
virtual void SetNumRaysPerProbe (const DiffuseProbeGridHandle &probeGrid, DiffuseProbeGridNumRaysPerProbe numRaysPerProbe)=0
 
virtual void SetAmbientMultiplier (const DiffuseProbeGridHandle &probeGrid, float ambientMultiplier)=0
 
virtual void Enable (const DiffuseProbeGridHandle &probeGrid, bool enable)=0
 
virtual void SetGIShadows (const DiffuseProbeGridHandle &probeGrid, bool giShadows)=0
 
virtual void SetUseDiffuseIbl (const DiffuseProbeGridHandle &probeGrid, bool useDiffuseIbl)=0
 
virtual void SetMode (const DiffuseProbeGridHandle &probeGrid, DiffuseProbeGridMode mode)=0
 
virtual void SetScrolling (const DiffuseProbeGridHandle &probeGrid, bool scrolling)=0
 
virtual void SetEdgeBlendIbl (const DiffuseProbeGridHandle &probeGrid, bool edgeBlendIbl)=0
 
virtual void SetFrameUpdateCount (const DiffuseProbeGridHandle &probeGrid, uint32_t frameUpdateCount)=0
 
virtual void SetTransparencyMode (const DiffuseProbeGridHandle &probeGrid, DiffuseProbeGridTransparencyMode transparencyMode)=0
 
virtual void SetEmissiveMultiplier (const DiffuseProbeGridHandle &probeGrid, float emissiveMultiplier)=0
 
virtual void SetBakedTextures (const DiffuseProbeGridHandle &probeGrid, const DiffuseProbeGridBakedTextures &bakedTextures)=0
 
virtual void SetVisualizationEnabled (const DiffuseProbeGridHandle &probeGrid, bool visualizationEnabled)=0
 
virtual void SetVisualizationShowInactiveProbes (const DiffuseProbeGridHandle &probeGrid, bool visualizationShowInactiveProbes)=0
 
virtual void SetVisualizationSphereRadius (const DiffuseProbeGridHandle &probeGrid, float visualizationSphereRadius)=0
 
virtual bool CanBakeTextures ()=0
 
virtual void BakeTextures (const DiffuseProbeGridHandle &probeGrid, DiffuseProbeGridBakeTexturesCallback callback, const AZStd::string &irradianceTextureRelativePath, const AZStd::string &distanceTextureRelativePath, const AZStd::string &probeDataTextureRelativePath)=0
 
virtual bool CheckTextureAssetNotification (const AZStd::string &relativePath, Data::Asset< RPI::StreamingImageAsset > &outTextureAsset, DiffuseProbeGridTextureNotificationType &outNotificationType)=0
 
virtual bool AreBakedTexturesReferenced (const AZStd::string &irradianceTextureRelativePath, const AZStd::string &distanceTextureRelativePath, const AZStd::string &probeDataTextureRelativePath)=0
 

Static Public Member Functions

static void Reflect (AZ::ReflectContext *context)
 

Detailed Description

This class manages DiffuseProbeGrids which generate diffuse global illumination.

Member Function Documentation

◆ AddProbeGrid()

DiffuseProbeGridHandle AZ::Render::DiffuseProbeGridFeatureProcessor::AddProbeGrid ( const AZ::Transform &  transform,
const AZ::Vector3 &  extents,
const AZ::Vector3 &  probeSpacing 
)
overridevirtual

◆ AreBakedTexturesReferenced()

bool AZ::Render::DiffuseProbeGridFeatureProcessor::AreBakedTexturesReferenced ( const AZStd::string &  irradianceTextureRelativePath,
const AZStd::string &  distanceTextureRelativePath,
const AZStd::string &  probeDataTextureRelativePath 
)
overridevirtual

◆ BakeTextures()

void AZ::Render::DiffuseProbeGridFeatureProcessor::BakeTextures ( const DiffuseProbeGridHandle &  probeGrid,
DiffuseProbeGridBakeTexturesCallback  callback,
const AZStd::string &  irradianceTextureRelativePath,
const AZStd::string &  distanceTextureRelativePath,
const AZStd::string &  probeDataTextureRelativePath 
)
overridevirtual

◆ CanBakeTextures()

bool AZ::Render::DiffuseProbeGridFeatureProcessor::CanBakeTextures ( )
overridevirtual

◆ CheckTextureAssetNotification()

bool AZ::Render::DiffuseProbeGridFeatureProcessor::CheckTextureAssetNotification ( const AZStd::string &  relativePath,
Data::Asset< RPI::StreamingImageAsset > &  outTextureAsset,
DiffuseProbeGridTextureNotificationType &  outNotificationType 
)
overridevirtual

◆ Enable()

void AZ::Render::DiffuseProbeGridFeatureProcessor::Enable ( const DiffuseProbeGridHandle &  probeGrid,
bool  enable 
)
overridevirtual

◆ IsValidProbeGridHandle()

bool AZ::Render::DiffuseProbeGridFeatureProcessor::IsValidProbeGridHandle ( const DiffuseProbeGridHandle &  probeGrid) const
inlineoverridevirtual

◆ RemoveProbeGrid()

void AZ::Render::DiffuseProbeGridFeatureProcessor::RemoveProbeGrid ( DiffuseProbeGridHandle &  probeGrid)
overridevirtual

◆ SetAmbientMultiplier()

void AZ::Render::DiffuseProbeGridFeatureProcessor::SetAmbientMultiplier ( const DiffuseProbeGridHandle &  probeGrid,
float  ambientMultiplier 
)
overridevirtual

◆ SetBakedTextures()

void AZ::Render::DiffuseProbeGridFeatureProcessor::SetBakedTextures ( const DiffuseProbeGridHandle &  probeGrid,
const DiffuseProbeGridBakedTextures bakedTextures 
)
overridevirtual

◆ SetEdgeBlendIbl()

void AZ::Render::DiffuseProbeGridFeatureProcessor::SetEdgeBlendIbl ( const DiffuseProbeGridHandle &  probeGrid,
bool  edgeBlendIbl 
)
overridevirtual

◆ SetEmissiveMultiplier()

void AZ::Render::DiffuseProbeGridFeatureProcessor::SetEmissiveMultiplier ( const DiffuseProbeGridHandle &  probeGrid,
float  emissiveMultiplier 
)
overridevirtual

◆ SetExtents()

void AZ::Render::DiffuseProbeGridFeatureProcessor::SetExtents ( const DiffuseProbeGridHandle &  probeGrid,
const AZ::Vector3 &  extents 
)
overridevirtual

◆ SetFrameUpdateCount()

void AZ::Render::DiffuseProbeGridFeatureProcessor::SetFrameUpdateCount ( const DiffuseProbeGridHandle &  probeGrid,
uint32_t  frameUpdateCount 
)
overridevirtual

◆ SetGIShadows()

void AZ::Render::DiffuseProbeGridFeatureProcessor::SetGIShadows ( const DiffuseProbeGridHandle &  probeGrid,
bool  giShadows 
)
overridevirtual

◆ SetMode()

void AZ::Render::DiffuseProbeGridFeatureProcessor::SetMode ( const DiffuseProbeGridHandle &  probeGrid,
DiffuseProbeGridMode  mode 
)
overridevirtual

◆ SetNormalBias()

void AZ::Render::DiffuseProbeGridFeatureProcessor::SetNormalBias ( const DiffuseProbeGridHandle &  probeGrid,
float  normalBias 
)
overridevirtual

◆ SetNumRaysPerProbe()

void AZ::Render::DiffuseProbeGridFeatureProcessor::SetNumRaysPerProbe ( const DiffuseProbeGridHandle &  probeGrid,
DiffuseProbeGridNumRaysPerProbe  numRaysPerProbe 
)
overridevirtual

◆ SetProbeSpacing()

void AZ::Render::DiffuseProbeGridFeatureProcessor::SetProbeSpacing ( const DiffuseProbeGridHandle &  probeGrid,
const AZ::Vector3 &  probeSpacing 
)
overridevirtual

◆ SetScrolling()

void AZ::Render::DiffuseProbeGridFeatureProcessor::SetScrolling ( const DiffuseProbeGridHandle &  probeGrid,
bool  scrolling 
)
overridevirtual

◆ SetTransform()

void AZ::Render::DiffuseProbeGridFeatureProcessor::SetTransform ( const DiffuseProbeGridHandle &  probeGrid,
const AZ::Transform &  transform 
)
overridevirtual

◆ SetTransparencyMode()

void AZ::Render::DiffuseProbeGridFeatureProcessor::SetTransparencyMode ( const DiffuseProbeGridHandle &  probeGrid,
DiffuseProbeGridTransparencyMode  transparencyMode 
)
overridevirtual

◆ SetUseDiffuseIbl()

void AZ::Render::DiffuseProbeGridFeatureProcessor::SetUseDiffuseIbl ( const DiffuseProbeGridHandle &  probeGrid,
bool  useDiffuseIbl 
)
overridevirtual

◆ SetViewBias()

void AZ::Render::DiffuseProbeGridFeatureProcessor::SetViewBias ( const DiffuseProbeGridHandle &  probeGrid,
float  viewBias 
)
overridevirtual

◆ SetVisualizationEnabled()

void AZ::Render::DiffuseProbeGridFeatureProcessor::SetVisualizationEnabled ( const DiffuseProbeGridHandle &  probeGrid,
bool  visualizationEnabled 
)
overridevirtual

◆ SetVisualizationShowInactiveProbes()

void AZ::Render::DiffuseProbeGridFeatureProcessor::SetVisualizationShowInactiveProbes ( const DiffuseProbeGridHandle &  probeGrid,
bool  visualizationShowInactiveProbes 
)
overridevirtual

◆ SetVisualizationSphereRadius()

void AZ::Render::DiffuseProbeGridFeatureProcessor::SetVisualizationSphereRadius ( const DiffuseProbeGridHandle &  probeGrid,
float  visualizationSphereRadius 
)
overridevirtual

◆ ValidateExtents()

bool AZ::Render::DiffuseProbeGridFeatureProcessor::ValidateExtents ( const DiffuseProbeGridHandle &  probeGrid,
const AZ::Vector3 &  newExtents 
)
overridevirtual

◆ ValidateProbeSpacing()

bool AZ::Render::DiffuseProbeGridFeatureProcessor::ValidateProbeSpacing ( const DiffuseProbeGridHandle &  probeGrid,
const AZ::Vector3 &  newSpacing 
)
overridevirtual

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