#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 DiffuseProbeGridNumRaysPerProbeEntry & | GetNumRaysPerProbe () 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 DiffuseProbeGridRenderData * | GetRenderData () const |
bool | GetTextureClearRequired () const |
void | ResetTextureClearRequired () |
DiffuseProbeGridTextureReadback & | GetTextureReadback () |
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 |
This class manages contains the functionality necessary to update diffuse probes and generate diffuse global illumination.