UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
HeterogeneousVolumes.h File Reference

Go to the source code of this file.

Classes

struct  HeterogeneousVolumes::FLODInfo
 
struct  HeterogeneousVolumes::FLODValue
 
struct  FVoxelDataPacked
 
struct  FTopLevelGridBitmaskData
 
struct  FTopLevelGridData
 
struct  FScalarGridData
 
struct  FVectorGridData
 
struct  FVoxelGridBuildOptions
 
struct  FAdaptiveFrustumGridParameterCache
 
struct  FAdaptiveOrthoGridParameterCache
 
struct  FAVSMLinkedListPackedData
 
struct  FAVSMIndirectionPackedData
 
struct  FAVSMSamplePackedData
 

Namespaces

namespace  HeterogeneousVolumes
 

Enumerations

enum class  EHeterogeneousVolumesCompositionType : uint8 { BeforeTranslucent , AfterTranslucent }
 
enum class  HeterogeneousVolumes::EScalabilityMode { HeterogeneousVolumes::Low , HeterogeneousVolumes::High , HeterogeneousVolumes::Epic , HeterogeneousVolumes::Cinematic }
 
enum class  HeterogeneousVolumes::EShadowType : uint8 { HeterogeneousVolumes::AdaptiveVolumetricShadowMap , HeterogeneousVolumes::BeerShadowMap }
 
enum class  HeterogeneousVolumes::EShadowPipeline { HeterogeneousVolumes::LiveShading , HeterogeneousVolumes::VoxelGrid }
 
enum class  HeterogeneousVolumes::EIndirectLightingMode { HeterogeneousVolumes::Disabled , HeterogeneousVolumes::LightingCachePass , HeterogeneousVolumes::SingleScatteringPass }
 
enum class  HeterogeneousVolumes::EStochasticFilteringMode { HeterogeneousVolumes::Disabled , HeterogeneousVolumes::Constant , HeterogeneousVolumes::Linear , HeterogeneousVolumes::Cubic }
 
enum class  HeterogeneousVolumes::ECascadeShadowMode { HeterogeneousVolumes::Disabled , HeterogeneousVolumes::Frustums , HeterogeneousVolumes::Clipmaps , HeterogeneousVolumes::Autofit }
 
enum class  HeterogeneousVolumes::EFogMode { HeterogeneousVolumes::Disabled , HeterogeneousVolumes::Reference , HeterogeneousVolumes::LinearApprox }
 
enum class  EHeterogeneousVolumesShadowMode { LiveShading , VoxelGrid }
 
enum class  EVoxelGridBuildMode { PathTracing , Shadows }
 

Functions

bool ShouldRenderHeterogeneousVolumes (const FScene *Scene)
 
bool ShouldRenderHeterogeneousVolumesForAnyView (const TArrayView< FViewInfo > &Views)
 
bool ShouldRenderHeterogeneousVolumesForView (const FViewInfo &View)
 
bool ShouldRenderHeterogeneousVolumesAsHoldoutForView (const FViewInfo &View)
 
bool ShouldRenderHeterogeneousVolumesForView (const TArrayView< FViewInfo > &Views, int32 ViewIndex)
 
bool DoesMaterialShaderSupportHeterogeneousVolumes (const FMaterialShaderParameters &Parameters)
 
bool DoesMaterialShaderSupportHeterogeneousVolumes (const FMaterial &Material)
 
bool ShouldRenderMeshBatchWithHeterogeneousVolumes (const FMeshBatch *Mesh, const FPrimitiveSceneProxy *Proxy, ERHIFeatureLevel::Type FeatureLevel)
 
bool ShouldCompositeHeterogeneousVolumesWithTranslucency ()
 
bool ShouldHeterogeneousVolumesCastShadows ()
 
EHeterogeneousVolumesCompositionType GetHeterogeneousVolumesComposition ()
 
FIntVector HeterogeneousVolumes::GetVolumeResolution (const IHeterogeneousVolumeInterface *Interface)
 
int32 HeterogeneousVolumes::GetDownsampleFactor ()
 
FIntPoint HeterogeneousVolumes::GetDownsampledResolution (FIntPoint Resolution, int32 DownsampleFactor)
 
FIntPoint HeterogeneousVolumes::GetScaledViewRect (FIntRect ViewRect)
 
float HeterogeneousVolumes::GetShadowStepSize ()
 
float HeterogeneousVolumes::GetMaxTraceDistance ()
 
float HeterogeneousVolumes::GetMaxShadowTraceDistance ()
 
float HeterogeneousVolumes::GetStepSize ()
 
float HeterogeneousVolumes::GetMaxStepCount ()
 
float HeterogeneousVolumes::GetMinimumVoxelSizeInFrustum ()
 
float HeterogeneousVolumes::GetMinimumVoxelSizeOutsideFrustum ()
 
float HeterogeneousVolumes::GetShadingRateForFrustumGrid ()
 
float HeterogeneousVolumes::GetShadingRateForOrthoGrid ()
 
EScalabilityMode HeterogeneousVolumes::GetScalabilityMode ()
 
EShadowType HeterogeneousVolumes::GetShadowType ()
 
EShadowPipeline HeterogeneousVolumes::GetShadowPipeline ()
 
FIntPoint HeterogeneousVolumes::GetShadowMapResolution ()
 
float HeterogeneousVolumes::GetShadingRateForShadows ()
 
float HeterogeneousVolumes::GetOutOfFrustumShadingRateForShadows ()
 
bool HeterogeneousVolumes::EnableJitterForShadows ()
 
float HeterogeneousVolumes::GetStepSizeForShadows ()
 
uint32 HeterogeneousVolumes::GetShadowMaxSampleCount ()
 
float HeterogeneousVolumes::GetShadowAbsoluteErrorThreshold ()
 
float HeterogeneousVolumes::GetShadowRelativeErrorThreshold ()
 
bool HeterogeneousVolumes::UseAVSMCompression ()
 
float HeterogeneousVolumes::GetCameraDownsampleFactor ()
 
float HeterogeneousVolumes::GetIndirectLightingFactor ()
 
EIndirectLightingMode HeterogeneousVolumes::GetIndirectLightingMode ()
 
EShadowType HeterogeneousVolumes::GetTranslucencyCompositingMode ()
 
int32 HeterogeneousVolumes::GetMipLevel ()
 
int32 HeterogeneousVolumes::GetDebugMode ()
 
int32 HeterogeneousVolumes::GetLightingCacheMode ()
 
uint32 HeterogeneousVolumes::GetSparseVoxelMipBias ()
 
int32 HeterogeneousVolumes::GetBottomLevelGridResolution ()
 
int32 HeterogeneousVolumes::GetIndirectionGridResolution ()
 
EStochasticFilteringMode HeterogeneousVolumes::GetStochasticFilteringMode ()
 
bool HeterogeneousVolumes::ShouldJitter ()
 
bool HeterogeneousVolumes::ShouldRefineSparseVoxels ()
 
bool HeterogeneousVolumes::UseHardwareRayTracing ()
 
bool HeterogeneousVolumes::UseIndirectLighting ()
 
bool HeterogeneousVolumes::UseSparseVoxelPipeline ()
 
bool HeterogeneousVolumes::UseSparseVoxelPerTileCulling ()
 
bool HeterogeneousVolumes::UseLightingCacheForInscattering ()
 
bool HeterogeneousVolumes::UseLightingCacheForTransmittance ()
 
bool HeterogeneousVolumes::UseAdaptiveVolumetricShadowMapForSelfShadowing (const FPrimitiveSceneProxy *PrimitiveSceneProxy)
 
bool HeterogeneousVolumes::ShouldDepthSort ()
 
bool HeterogeneousVolumes::ShouldApplyHeightFog ()
 
bool HeterogeneousVolumes::ShouldApplyVolumetricFog ()
 
bool HeterogeneousVolumes::SupportsOverlappingVolumes ()
 
bool HeterogeneousVolumes::EnableAmbientOcclusion ()
 
bool HeterogeneousVolumes::UseExistenceMask ()
 
bool HeterogeneousVolumes::UseAnalyticDerivatives ()
 
bool HeterogeneousVolumes::SupportsLightType (uint32 LightType)
 
bool HeterogeneousVolumes::SupportsShadowForLightType (uint32 LightType)
 
bool HeterogeneousVolumes::SupportsCascadeShadowsForDirectionalLight ()
 
ECascadeShadowMode HeterogeneousVolumes::GetCascadeShadowMode ()
 
int32 HeterogeneousVolumes::GetCascadeShadowsQuantizationUnit ()
 
EFogMode HeterogeneousVolumes::GetFogInscatteringMode ()
 
bool HeterogeneousVolumes::ShouldWriteVelocity ()
 
bool HeterogeneousVolumes::EnableIndirectionGrid ()
 
bool HeterogeneousVolumes::EnableLinearInterpolation ()
 
int HeterogeneousVolumes::GetVoxelCount (FIntVector VolumeResolution)
 
int HeterogeneousVolumes::GetVoxelCount (const FRDGTextureDesc &TextureDesc)
 
FIntVector HeterogeneousVolumes::GetMipVolumeResolution (FIntVector VolumeResolution, uint32 MipLevel)
 
FLODValue HeterogeneousVolumes::CalcLOD (const HeterogeneousVolumes::FLODInfo &LODInfo, const IHeterogeneousVolumeInterface *HeterogeneousVolume)
 
FLODValue HeterogeneousVolumes::CalcLOD (const FSceneView &View, const IHeterogeneousVolumeInterface *HeterogeneousVolume)
 
FIntVector HeterogeneousVolumes::GetLightingCacheResolution (const IHeterogeneousVolumeInterface *RenderInterface, FLODValue LODValue)
 
FIntVector HeterogeneousVolumes::GetAmbientOcclusionResolution (const IHeterogeneousVolumeInterface *, FLODValue LODValue)
 
float HeterogeneousVolumes::CalcLODBias (const IHeterogeneousVolumeInterface *HeterogeneousVolume)
 
float HeterogeneousVolumes::CalcLODFactor (float LODValue, float LODBias)
 
float HeterogeneousVolumes::CalcLODFactor (const HeterogeneousVolumes::FLODInfo &LODInfo, const IHeterogeneousVolumeInterface *HeterogeneousVolume)
 
float HeterogeneousVolumes::CalcLODFactor (const FSceneView &View, const IHeterogeneousVolumeInterface *HeterogeneousVolume)
 
bool HeterogeneousVolumes::IsHoldout (const IHeterogeneousVolumeInterface *HeterogeneousVolumeInterface)
 
const FProjectedShadowInfoHeterogeneousVolumes::GetProjectedShadowInfo (const FVisibleLightInfo *VisibleLightInfo, int32 ShadowIndex)
 
bool HeterogeneousVolumes::IsDynamicShadow (const FVisibleLightInfo *VisibleLightInfo)
 
uint32 GetTypeHash (const FVolumetricMeshBatch &MeshBatch)
 
void BuildOrthoVoxelGrid (FRDGBuilder &GraphBuilder, const FScene *Scene, TArray< FViewInfo > &Views, const TArray< FVisibleLightInfo, SceneRenderingAllocator > &VisibleLightInfos, const FVoxelGridBuildOptions &BuildOptions, TRDGUniformBufferRef< FOrthoVoxelGridUniformBufferParameters > &OrthoVoxelGridUniformBuffer)
 
void BuildFrustumVoxelGrid (FRDGBuilder &GraphBuilder, const FScene *Scene, const FViewInfo &View, const FVoxelGridBuildOptions &BuildOptions, TRDGUniformBufferRef< FFrustumVoxelGridUniformBufferParameters > &FrustumVoxelGridUniformBuffer)
 
void ExtractFrustumVoxelGridUniformBuffer (FRDGBuilder &GraphBuilder, const TRDGUniformBufferRef< FFrustumVoxelGridUniformBufferParameters > &FrustumGridUniformBuffer, FAdaptiveFrustumGridParameterCache &AdaptiveFrustumGridParameterCache)
 
void RegisterExternalFrustumVoxelGridUniformBuffer (FRDGBuilder &GraphBuilder, const FAdaptiveFrustumGridParameterCache &AdaptiveFrustumGridParameterCache, TRDGUniformBufferRef< FFrustumVoxelGridUniformBufferParameters > &FrustumGridUniformBuffer)
 
void ExtractOrthoVoxelGridUniformBuffer (FRDGBuilder &GraphBuilder, const TRDGUniformBufferRef< FOrthoVoxelGridUniformBufferParameters > &OrthoGridUniformBuffer, FAdaptiveOrthoGridParameterCache &AdaptiveOrthoGridParameterCache)
 
void RegisterExternalOrthoVoxelGridUniformBuffer (FRDGBuilder &GraphBuilder, const FAdaptiveOrthoGridParameterCache &AdaptiveOrthoGridParameterCache, TRDGUniformBufferRef< FOrthoVoxelGridUniformBufferParameters > &OrthoGridUniformBuffer)
 
TRDGUniformBufferRef< FAdaptiveVolumetricShadowMapUniformBufferParametersHeterogeneousVolumes::GetAdaptiveVolumetricShadowMapUniformBuffer (FRDGBuilder &GraphBuilder, FSceneViewState *ViewState, const FLightSceneInfo *LightSceneInfo)
 
void HeterogeneousVolumes::DestroyAdaptiveVolumetricShadowMapUniformBuffer (TRDGUniformBufferRef< FAdaptiveVolumetricShadowMapUniformBufferParameters > &AdaptiveVolumetricShadowMapUniformBuffer)
 
TRDGUniformBufferRef< FAdaptiveVolumetricShadowMapUniformBufferParametersHeterogeneousVolumes::GetAdaptiveVolumetricCameraMapUniformBuffer (FRDGBuilder &GraphBuilder, FSceneViewState *ViewState)
 
FAdaptiveVolumetricShadowMapUniformBufferParameters HeterogeneousVolumes::GetAdaptiveVolumetricCameraMapParameters (FRDGBuilder &GraphBuilder, FSceneViewState *ViewState)
 
TRDGUniformBufferRef< FAdaptiveVolumetricShadowMapUniformBufferParametersHeterogeneousVolumes::CreateEmptyAdaptiveVolumetricShadowMapUniformBuffer (FRDGBuilder &GraphBuilder)
 
TRDGUniformBufferRef< FBeerShadowMapUniformBufferParametersHeterogeneousVolumes::GetBeerShadowMapUniformBuffer (FRDGBuilder &GraphBuilder, FSceneViewState *ViewState, const FLightSceneInfo *LightSceneInfo)
 
void HeterogeneousVolumes::DestroyBeerShadowMapUniformBuffer (TRDGUniformBufferRef< FBeerShadowMapUniformBufferParameters > &BeerShadowMapUniformBuffer)
 
TRDGUniformBufferRef< FBeerShadowMapUniformBufferParametersHeterogeneousVolumes::CreateEmptyBeerShadowMapUniformBuffer (FRDGBuilder &GraphBuilder)
 
TRDGUniformBufferRef< FFrustumVoxelGridUniformBufferParametersHeterogeneousVolumes::GetFrustumVoxelGridUniformBuffer (FRDGBuilder &GraphBuilder, FSceneViewState *ViewState)
 
TRDGUniformBufferRef< FOrthoVoxelGridUniformBufferParametersHeterogeneousVolumes::GetOrthoVoxelGridUniformBuffer (FRDGBuilder &GraphBuilder, FSceneViewState *ViewState)
 
void HeterogeneousVolumes::PostRender (FScene &Scene, TArray< FViewInfo > &Views)
 
TRDGUniformBufferRef< FAdaptiveVolumetricShadowMapsCreateAdaptiveVolumetricShadowMapUniformBuffers (FRDGBuilder &GraphBuilder, FSceneViewState *ViewState, const FLightSceneInfo *LightSceneInfo)
 
void RenderWithLiveShading (FRDGBuilder &GraphBuilder, const FSceneTextures &SceneTextures, const FScene *Scene, const FViewInfo &View, int32 ViewIndex, TArray< FVisibleLightInfo, SceneRenderingAllocator > &VisibleLightInfos, const FVirtualShadowMapArray &VirtualShadowMapArray, const IHeterogeneousVolumeInterface *HeterogeneousVolumeInterface, const FMaterialRenderProxy *MaterialRenderProxy, const FPersistentPrimitiveIndex &PersistentPrimitiveIndex, const FBoxSphereBounds LocalBoxSphereBounds, FRDGTextureRef LightingCacheTexture, FRDGTextureRef &HeterogeneousVolumeRadiance, FRDGTextureRef &HeterogeneousVolumeVelocity, FRDGTextureRef &HeterogeneousVolumeHoldout, FRDGTextureRef &HeterogeneousVolumeBeerShadowMap)
 
void RenderWithPreshading (FRDGBuilder &GraphBuilder, const FSceneTextures &SceneTextures, FScene *Scene, FViewInfo &View, int32 ViewIndex, TArray< FVisibleLightInfo, SceneRenderingAllocator > &VisibleLightInfos, const FVirtualShadowMapArray &VirtualShadowMapArray, const IHeterogeneousVolumeInterface *HeterogeneousVolumeInterface, const FMaterialRenderProxy *MaterialRenderProxy, const FPersistentPrimitiveIndex &PersistentPrimitiveIndex, const FBoxSphereBounds LocalBoxSphereBounds, FRDGTextureRef LightingCacheTexture, FRDGTextureRef &HeterogeneousVolumeRadiance)
 
void RenderTransmittanceWithVoxelGrid (FRDGBuilder &GraphBuilder, const FSceneTextures &SceneTextures, FScene *Scene, FViewInfo &View, const TRDGUniformBufferRef< FOrthoVoxelGridUniformBufferParameters > &OrthoGridUniformBuffer, const TRDGUniformBufferRef< FFrustumVoxelGridUniformBufferParameters > &FrustumGridUniformBuffer, FRDGTextureRef &HeterogeneousVolumeRadiance)
 
void RenderAdaptiveVolumetricShadowMapWithVoxelGrid (FRDGBuilder &GraphBuilder, const FSceneTextures &SceneTextures, FScene *Scene, FViewInfo &View, TArray< FVisibleLightInfo, SceneRenderingAllocator > &VisibleLightInfos, const FVirtualShadowMapArray &VirtualShadowMapArray, const TRDGUniformBufferRef< FOrthoVoxelGridUniformBufferParameters > &OrthoGridUniformBuffer, const TRDGUniformBufferRef< FFrustumVoxelGridUniformBufferParameters > &FrustumGridUniformBuffer)
 
void RenderAdaptiveVolumetricShadowMapWithLiveShading (FRDGBuilder &GraphBuilder, const FSceneTextures &SceneTextures, FScene *Scene, FViewInfo &View, TArray< FVisibleLightInfo, SceneRenderingAllocator > &VisibleLightInfos)
 
bool ShouldRenderVolumetricShadowMaskForLight (FRDGBuilder &GraphBuilder, const TConstArrayView< FViewInfo > &Views, const FLightSceneInfo *LightSceneInfo)
 
void RenderVolumetricShadowMaskForLight (FRDGBuilder &GraphBuilder, const FSceneTexturesConfig &Config, const TConstArrayView< FViewInfo > &Views, uint32 LightType, const FLightSceneInfo *LightSceneInfo, FRDGTextureRef &ScreenShadowMaskTexture)
 
void RenderAdaptiveVolumetricCameraMapWithVoxelGrid (FRDGBuilder &GraphBuilder, const FSceneTextures &SceneTextures, FScene *Scene, FViewInfo &View, const TRDGUniformBufferRef< FOrthoVoxelGridUniformBufferParameters > &OrthoGridUniformBuffer, const TRDGUniformBufferRef< FFrustumVoxelGridUniformBufferParameters > &FrustumGridUniformBuffer)
 
void RenderAdaptiveVolumetricCameraMapWithLiveShading (FRDGBuilder &GraphBuilder, const FSceneTextures &SceneTextures, FScene *Scene, FViewInfo &View)
 
void CompressVolumetricShadowMap (FRDGBuilder &GraphBuilder, FViewInfo &View, FIntVector GroupCount, FIntPoint ShadowMapResolution, uint32 MaxSampleCount, FRDGBufferRef VolumetricShadowLinkedListBuffer, FRDGBufferRef &VolumetricShadowIndirectionBuffer, FRDGBufferRef &VolumetricShadowTransmittanceBuffer)
 
void CombineVolumetricShadowMap (FRDGBuilder &GraphBuilder, FViewInfo &View, FIntVector GroupCount, uint32 LightType, FIntPoint ShadowMapResolution, uint32 MaxSampleCount, FRDGBufferRef VolumetricShadowLinkedListBuffer0, FRDGBufferRef VolumetricShadowLinkedListBuffer1, FRDGBufferRef &VolumetricShadowLinkedListBuffer)
 
void ConvertBeerLawShadowMapToVolumetricShadowMap (FRDGBuilder &GraphBuilder, FViewInfo &View, FIntPoint ShadowMapResolution, FRDGTextureRef BeerShadowMapTexture, FRDGBufferRef &VolumetricShadowIndirectionBuffer, FRDGBufferRef &VolumetricShadowTransmittanceBuffer)
 
void ConvertVolumetricShadowMapToBeerLawShadowMap (FRDGBuilder &GraphBuilder, const FSceneTextures &SceneTextures, FViewInfo &View, const FString &ShadowMapName, FIntPoint ShadowMapResolution, FIntVector GroupCount, FRDGBufferRef VolumetricShadowLinkedListBuffer, FRDGTextureRef &BeerShadowMapTexture)
 
void CreateAdaptiveVolumetricShadowMapUniformBufferParameters (FRDGBuilder &GraphBuilder, const FVector3f *TranslatedWorldOrigin, const FVector4f *TranslatedWorldPlane, const FMatrix44f *TranslatedWorldToShadow, const FVector4f *SplitDepths, FIntPoint VolumetricShadowMapResolution, float VolumetricShadowMapDownsampleFactor, int32 NumShadowMatrices, uint32 VolumetricShadowMapMaxSampleCount, bool bIsDirectionalLight, FRDGBufferRef VolumetricShadowMapLinkedListBuffer, FRDGBufferRef VolumetricShadowMapIndirectionBuffer, FRDGBufferRef VolumetricShadowMapSampleBuffer, FAdaptiveVolumetricShadowMapUniformBufferParameters *&AdaptiveVolumetricShadowMapUniformBufferParameters)
 
void CreateAdaptiveVolumetricShadowMapUniformBuffer (FRDGBuilder &GraphBuilder, const FVector3f *TranslatedWorldOrigin, const FVector4f *TranslatedWorldPlane, const FMatrix44f *TranslatedWorldToShadow, const FVector4f *SplitDepths, FIntPoint VolumetricShadowMapResolution, float VolumetricShadowMapDownsampleFactor, int32 NumShadowMatrices, uint32 VolumetricShadowMapMaxSampleCount, bool bIsDirectionalLight, FRDGBufferRef VolumetricShadowMapLinkedListBuffer, FRDGBufferRef VolumetricShadowMapIndirectionBuffer, FRDGBufferRef VolumetricShadowMapSampleBuffer, TRDGUniformBufferRef< FAdaptiveVolumetricShadowMapUniformBufferParameters > &AdaptiveVolumetricShadowMapUniformBuffer)
 
void CreateBeerShadowMapUniformBufferParameters (FRDGBuilder &GraphBuilder, const FVector3f *TranslatedWorldOrigin, const FVector4f *TranslatedWorldPlane, const FMatrix44f *TranslatedWorldToShadow, const FVector4f *SplitDepths, FIntPoint VolumetricShadowMapResolution, float VolumetricShadowMapDownsampleFactor, int32 NumShadowMatrices, uint32 VolumetricShadowMapMaxSampleCount, bool bIsDirectionalLight, FRDGBufferRef VolumetricShadowMapLinkedListBuffer, FRDGBufferRef VolumetricShadowMapIndirectionBuffer, FRDGBufferRef VolumetricShadowMapSampleBuffer, FBeerShadowMapUniformBufferParameters *&BeerShadowMapUniformBufferParameters)
 
void CreateBeerShadowMapUniformBuffer (FRDGBuilder &GraphBuilder, const FVector3f *TranslatedWorldOrigin, const FVector4f *TranslatedWorldPlane, const FMatrix44f *TranslatedWorldToShadow, const FVector4f *SplitDepths, FIntPoint VolumetricShadowMapResolution, float VolumetricShadowMapDownsampleFactor, int32 NumShadowMatrices, uint32 VolumetricShadowMapMaxSampleCount, bool bIsDirectionalLight, FRDGTextureRef BeerShadowMapTexture, TRDGUniformBufferRef< FBeerShadowMapUniformBufferParameters > &BeerShadowMapUniformBuffer)
 
void RenderSingleScatteringWithVoxelGrid (FRDGBuilder &GraphBuilder, const FSceneTextures &SceneTextures, FScene *Scene, FViewInfo &View, TArray< FVisibleLightInfo, SceneRenderingAllocator > &VisibleLightInfos, const FVirtualShadowMapArray &VirtualShadowMapArray, const TRDGUniformBufferRef< FOrthoVoxelGridUniformBufferParameters > &OrthoGridUniformBuffer, const TRDGUniformBufferRef< FFrustumVoxelGridUniformBufferParameters > &FrustumGridUniformBuffer, FRDGTextureRef &HeterogeneousVolumeRadiance)
 
void ComputeHeterogeneousVolumeBakeMaterial (FRDGBuilder &GraphBuilder, const FScene *Scene, const FViewInfo &View, const IHeterogeneousVolumeInterface *HeterogeneousVolumeInterface, const FMaterialRenderProxy *MaterialRenderProxy, const FPersistentPrimitiveIndex &PersistentPrimitiveIndex, const FBoxSphereBounds LocalBoxSphereBounds, FIntVector VolumeResolution, FRDGTextureRef &HeterogeneousVolumeExtinctionTexture, FRDGTextureRef &HeterogeneousVolumeEmissionTexture, FRDGTextureRef &HeterogeneousVolumeAlbedoTexture)
 
void CopyTexture3D (FRDGBuilder &GraphBuilder, const FViewInfo &View, FRDGTextureRef Texture, uint32 InputMipLevel, FRDGTextureRef &OutputTexture)
 
void GenerateSparseVoxels (FRDGBuilder &GraphBuilder, const FViewInfo &View, FRDGTextureRef VoxelMinTexture, FIntVector VolumeResolution, uint32 MipLevel, FRDGBufferRef &NumVoxelsBuffer, FRDGBufferRef &VoxelBuffer)
 
void RenderExistenceMaskWithLiveShading (FRDGBuilder &GraphBuilder, const FScene *Scene, const FViewInfo &View, const FSceneTextures &SceneTextures, const IHeterogeneousVolumeInterface *HeterogeneousVolumeInterface, const FMaterialRenderProxy *DefaultMaterialRenderProxy, FPersistentPrimitiveIndex PersistentPrimitiveIndex, const FBoxSphereBounds LocalBoxSphereBounds, FIntVector ExistenceMaskTextureResolution, FRDGTextureRef &ExistenceMaskTexture)
 
void DilateExistenceMask (FRDGBuilder &GraphBuilder, const FScene *Scene, const FViewInfo &View, FRDGTextureRef ExistenceMaskTexture, FIntVector ExistenceMaskTextureResolution, FRDGTextureRef &DilatedExistenceTexture)
 
void VisualizeCascades (FRDGBuilder &GraphBuilder, const FSceneTextures &SceneTextures, const FScene *Scene, const FViewInfo &View, const FLightSceneInfo *LightSceneInfo, FRDGTextureRef &VisualizationTexture)
 
void RenderAmbientOcclusionWithLiveShading (FRDGBuilder &GraphBuilder, const FScene *Scene, const FViewInfo &View, const FSceneTextures &SceneTextures, const IHeterogeneousVolumeInterface *HeterogeneousVolumeInterface, const FMaterialRenderProxy *DefaultMaterialRenderProxy, FPersistentPrimitiveIndex PersistentPrimitiveIndex, const FBoxSphereBounds LocalBoxSphereBounds, FRDGTextureRef &AmbientOcclusionTexture)
 
 DECLARE_CYCLE_STAT (TEXT("Ambient Occlusion"), STATGROUP_HeterogeneousVolumesAmbientOcclusion, STATGROUP_HeterogeneousVolumesRT)
 
 DECLARE_CYCLE_STAT (TEXT("Light Cache"), STATGROUP_HeterogeneousVolumesLightCache, STATGROUP_HeterogeneousVolumesRT)
 
 DECLARE_CYCLE_STAT (TEXT("Material Baking"), STATGROUP_HeterogeneousVolumesMaterialBaking, STATGROUP_HeterogeneousVolumesRT)
 
 DECLARE_CYCLE_STAT (TEXT("Shadows"), STATGROUP_HeterogeneousVolumesShadows, STATGROUP_HeterogeneousVolumesRT)
 
 DECLARE_CYCLE_STAT (TEXT("Single Scattering"), STATGROUP_HeterogeneousVolumesSingleScattering, STATGROUP_HeterogeneousVolumesRT)
 

Enumeration Type Documentation

◆ EHeterogeneousVolumesCompositionType

Enumerator
BeforeTranslucent 
AfterTranslucent 

◆ EHeterogeneousVolumesShadowMode

Enumerator
LiveShading 
VoxelGrid 

◆ EVoxelGridBuildMode

enum class EVoxelGridBuildMode
strong
Enumerator
PathTracing 
Shadows 

Function Documentation

◆ BuildFrustumVoxelGrid()

void BuildFrustumVoxelGrid ( FRDGBuilder GraphBuilder,
const FScene Scene,
const FViewInfo View,
const FVoxelGridBuildOptions BuildOptions,
TRDGUniformBufferRef< FFrustumVoxelGridUniformBufferParameters > &  FrustumVoxelGridUniformBuffer 
)

◆ BuildOrthoVoxelGrid()

void BuildOrthoVoxelGrid ( FRDGBuilder GraphBuilder,
const FScene Scene,
TArray< FViewInfo > &  Views,
const TArray< FVisibleLightInfo, SceneRenderingAllocator > &  VisibleLightInfos,
const FVoxelGridBuildOptions BuildOptions,
TRDGUniformBufferRef< FOrthoVoxelGridUniformBufferParameters > &  OrthoVoxelGridUniformBuffer 
)

◆ CombineVolumetricShadowMap()

void CombineVolumetricShadowMap ( FRDGBuilder GraphBuilder,
FViewInfo View,
FIntVector  GroupCount,
uint32  LightType,
FIntPoint  ShadowMapResolution,
uint32  MaxSampleCount,
FRDGBufferRef  VolumetricShadowLinkedListBuffer0,
FRDGBufferRef  VolumetricShadowLinkedListBuffer1,
FRDGBufferRef VolumetricShadowLinkedListBuffer 
)

◆ CompressVolumetricShadowMap()

void CompressVolumetricShadowMap ( FRDGBuilder GraphBuilder,
FViewInfo View,
FIntVector  GroupCount,
FIntPoint  ShadowMapResolution,
uint32  MaxSampleCount,
FRDGBufferRef  VolumetricShadowLinkedListBuffer,
FRDGBufferRef VolumetricShadowIndirectionBuffer,
FRDGBufferRef VolumetricShadowTransmittanceBuffer 
)

◆ ComputeHeterogeneousVolumeBakeMaterial()

void ComputeHeterogeneousVolumeBakeMaterial ( FRDGBuilder GraphBuilder,
const FScene Scene,
const FViewInfo View,
const IHeterogeneousVolumeInterface HeterogeneousVolumeInterface,
const FMaterialRenderProxy MaterialRenderProxy,
const FPersistentPrimitiveIndex PersistentPrimitiveIndex,
const FBoxSphereBounds  LocalBoxSphereBounds,
FIntVector  VolumeResolution,
FRDGTextureRef HeterogeneousVolumeExtinctionTexture,
FRDGTextureRef HeterogeneousVolumeEmissionTexture,
FRDGTextureRef HeterogeneousVolumeAlbedoTexture 
)

◆ ConvertBeerLawShadowMapToVolumetricShadowMap()

void ConvertBeerLawShadowMapToVolumetricShadowMap ( FRDGBuilder GraphBuilder,
FViewInfo View,
FIntPoint  ShadowMapResolution,
FRDGTextureRef  BeerShadowMapTexture,
FRDGBufferRef VolumetricShadowIndirectionBuffer,
FRDGBufferRef VolumetricShadowTransmittanceBuffer 
)

◆ ConvertVolumetricShadowMapToBeerLawShadowMap()

void ConvertVolumetricShadowMapToBeerLawShadowMap ( FRDGBuilder GraphBuilder,
const FSceneTextures SceneTextures,
FViewInfo View,
const FString &  ShadowMapName,
FIntPoint  ShadowMapResolution,
FIntVector  GroupCount,
FRDGBufferRef  VolumetricShadowLinkedListBuffer,
FRDGTextureRef BeerShadowMapTexture 
)

◆ CopyTexture3D()

void CopyTexture3D ( FRDGBuilder GraphBuilder,
const FViewInfo View,
FRDGTextureRef  Texture,
uint32  InputMipLevel,
FRDGTextureRef OutputTexture 
)

◆ CreateAdaptiveVolumetricShadowMapUniformBuffer()

void CreateAdaptiveVolumetricShadowMapUniformBuffer ( FRDGBuilder GraphBuilder,
const FVector3f TranslatedWorldOrigin,
const FVector4f TranslatedWorldPlane,
const FMatrix44f TranslatedWorldToShadow,
const FVector4f SplitDepths,
FIntPoint  VolumetricShadowMapResolution,
float  VolumetricShadowMapDownsampleFactor,
int32  NumShadowMatrices,
uint32  VolumetricShadowMapMaxSampleCount,
bool  bIsDirectionalLight,
FRDGBufferRef  VolumetricShadowMapLinkedListBuffer,
FRDGBufferRef  VolumetricShadowMapIndirectionBuffer,
FRDGBufferRef  VolumetricShadowMapSampleBuffer,
TRDGUniformBufferRef< FAdaptiveVolumetricShadowMapUniformBufferParameters > &  AdaptiveVolumetricShadowMapUniformBuffer 
)

◆ CreateAdaptiveVolumetricShadowMapUniformBufferParameters()

void CreateAdaptiveVolumetricShadowMapUniformBufferParameters ( FRDGBuilder GraphBuilder,
const FVector3f TranslatedWorldOrigin,
const FVector4f TranslatedWorldPlane,
const FMatrix44f TranslatedWorldToShadow,
const FVector4f SplitDepths,
FIntPoint  VolumetricShadowMapResolution,
float  VolumetricShadowMapDownsampleFactor,
int32  NumShadowMatrices,
uint32  VolumetricShadowMapMaxSampleCount,
bool  bIsDirectionalLight,
FRDGBufferRef  VolumetricShadowMapLinkedListBuffer,
FRDGBufferRef  VolumetricShadowMapIndirectionBuffer,
FRDGBufferRef  VolumetricShadowMapSampleBuffer,
FAdaptiveVolumetricShadowMapUniformBufferParameters *&  AdaptiveVolumetricShadowMapUniformBufferParameters 
)

◆ CreateAdaptiveVolumetricShadowMapUniformBuffers()

TRDGUniformBufferRef< FAdaptiveVolumetricShadowMaps > CreateAdaptiveVolumetricShadowMapUniformBuffers ( FRDGBuilder GraphBuilder,
FSceneViewState ViewState,
const FLightSceneInfo LightSceneInfo 
)

◆ CreateBeerShadowMapUniformBuffer()

void CreateBeerShadowMapUniformBuffer ( FRDGBuilder GraphBuilder,
const FVector3f TranslatedWorldOrigin,
const FVector4f TranslatedWorldPlane,
const FMatrix44f TranslatedWorldToShadow,
const FVector4f SplitDepths,
FIntPoint  VolumetricShadowMapResolution,
float  VolumetricShadowMapDownsampleFactor,
int32  NumShadowMatrices,
uint32  VolumetricShadowMapMaxSampleCount,
bool  bIsDirectionalLight,
FRDGTextureRef  BeerShadowMapTexture,
TRDGUniformBufferRef< FBeerShadowMapUniformBufferParameters > &  BeerShadowMapUniformBuffer 
)

◆ CreateBeerShadowMapUniformBufferParameters()

void CreateBeerShadowMapUniformBufferParameters ( FRDGBuilder GraphBuilder,
const FVector3f TranslatedWorldOrigin,
const FVector4f TranslatedWorldPlane,
const FMatrix44f TranslatedWorldToShadow,
const FVector4f SplitDepths,
FIntPoint  VolumetricShadowMapResolution,
float  VolumetricShadowMapDownsampleFactor,
int32  NumShadowMatrices,
uint32  VolumetricShadowMapMaxSampleCount,
bool  bIsDirectionalLight,
FRDGBufferRef  VolumetricShadowMapLinkedListBuffer,
FRDGBufferRef  VolumetricShadowMapIndirectionBuffer,
FRDGBufferRef  VolumetricShadowMapSampleBuffer,
FBeerShadowMapUniformBufferParameters *&  BeerShadowMapUniformBufferParameters 
)

◆ DECLARE_CYCLE_STAT() [1/5]

◆ DECLARE_CYCLE_STAT() [2/5]

◆ DECLARE_CYCLE_STAT() [3/5]

◆ DECLARE_CYCLE_STAT() [4/5]

DECLARE_CYCLE_STAT ( TEXT("Shadows")  ,
STATGROUP_HeterogeneousVolumesShadows  ,
STATGROUP_HeterogeneousVolumesRT   
)

◆ DECLARE_CYCLE_STAT() [5/5]

◆ DilateExistenceMask()

void DilateExistenceMask ( FRDGBuilder GraphBuilder,
const FScene Scene,
const FViewInfo View,
FRDGTextureRef  ExistenceMaskTexture,
FIntVector  ExistenceMaskTextureResolution,
FRDGTextureRef DilatedExistenceTexture 
)

◆ DoesMaterialShaderSupportHeterogeneousVolumes() [1/2]

bool DoesMaterialShaderSupportHeterogeneousVolumes ( const FMaterial Material)

◆ DoesMaterialShaderSupportHeterogeneousVolumes() [2/2]

bool DoesMaterialShaderSupportHeterogeneousVolumes ( const FMaterialShaderParameters Parameters)

◆ ExtractFrustumVoxelGridUniformBuffer()

void ExtractFrustumVoxelGridUniformBuffer ( FRDGBuilder GraphBuilder,
const TRDGUniformBufferRef< FFrustumVoxelGridUniformBufferParameters > &  FrustumGridUniformBuffer,
FAdaptiveFrustumGridParameterCache AdaptiveFrustumGridParameterCache 
)

◆ ExtractOrthoVoxelGridUniformBuffer()

void ExtractOrthoVoxelGridUniformBuffer ( FRDGBuilder GraphBuilder,
const TRDGUniformBufferRef< FOrthoVoxelGridUniformBufferParameters > &  OrthoGridUniformBuffer,
FAdaptiveOrthoGridParameterCache AdaptiveOrthoGridParameterCache 
)

◆ GenerateSparseVoxels()

void GenerateSparseVoxels ( FRDGBuilder GraphBuilder,
const FViewInfo View,
FRDGTextureRef  VoxelMinTexture,
FIntVector  VolumeResolution,
uint32  MipLevel,
FRDGBufferRef NumVoxelsBuffer,
FRDGBufferRef VoxelBuffer 
)

◆ GetHeterogeneousVolumesComposition()

EHeterogeneousVolumesCompositionType GetHeterogeneousVolumesComposition ( )

◆ GetTypeHash()

uint32 GetTypeHash ( const FVolumetricMeshBatch MeshBatch)

◆ RegisterExternalFrustumVoxelGridUniformBuffer()

void RegisterExternalFrustumVoxelGridUniformBuffer ( FRDGBuilder GraphBuilder,
const FAdaptiveFrustumGridParameterCache AdaptiveFrustumGridParameterCache,
TRDGUniformBufferRef< FFrustumVoxelGridUniformBufferParameters > &  FrustumGridUniformBuffer 
)

◆ RegisterExternalOrthoVoxelGridUniformBuffer()

void RegisterExternalOrthoVoxelGridUniformBuffer ( FRDGBuilder GraphBuilder,
const FAdaptiveOrthoGridParameterCache AdaptiveOrthoGridParameterCache,
TRDGUniformBufferRef< FOrthoVoxelGridUniformBufferParameters > &  OrthoGridUniformBuffer 
)

◆ RenderAdaptiveVolumetricCameraMapWithLiveShading()

void RenderAdaptiveVolumetricCameraMapWithLiveShading ( FRDGBuilder GraphBuilder,
const FSceneTextures SceneTextures,
FScene Scene,
FViewInfo View 
)

◆ RenderAdaptiveVolumetricCameraMapWithVoxelGrid()

void RenderAdaptiveVolumetricCameraMapWithVoxelGrid ( FRDGBuilder GraphBuilder,
const FSceneTextures SceneTextures,
FScene Scene,
FViewInfo View,
const TRDGUniformBufferRef< FOrthoVoxelGridUniformBufferParameters > &  OrthoGridUniformBuffer,
const TRDGUniformBufferRef< FFrustumVoxelGridUniformBufferParameters > &  FrustumGridUniformBuffer 
)

◆ RenderAdaptiveVolumetricShadowMapWithLiveShading()

void RenderAdaptiveVolumetricShadowMapWithLiveShading ( FRDGBuilder GraphBuilder,
const FSceneTextures SceneTextures,
FScene Scene,
FViewInfo View,
TArray< FVisibleLightInfo, SceneRenderingAllocator > &  VisibleLightInfos 
)

◆ RenderAdaptiveVolumetricShadowMapWithVoxelGrid()

void RenderAdaptiveVolumetricShadowMapWithVoxelGrid ( FRDGBuilder GraphBuilder,
const FSceneTextures SceneTextures,
FScene Scene,
FViewInfo View,
TArray< FVisibleLightInfo, SceneRenderingAllocator > &  VisibleLightInfos,
const FVirtualShadowMapArray VirtualShadowMapArray,
const TRDGUniformBufferRef< FOrthoVoxelGridUniformBufferParameters > &  OrthoGridUniformBuffer,
const TRDGUniformBufferRef< FFrustumVoxelGridUniformBufferParameters > &  FrustumGridUniformBuffer 
)

◆ RenderAmbientOcclusionWithLiveShading()

void RenderAmbientOcclusionWithLiveShading ( FRDGBuilder GraphBuilder,
const FScene Scene,
const FViewInfo View,
const FSceneTextures SceneTextures,
const IHeterogeneousVolumeInterface HeterogeneousVolumeInterface,
const FMaterialRenderProxy DefaultMaterialRenderProxy,
FPersistentPrimitiveIndex  PersistentPrimitiveIndex,
const FBoxSphereBounds  LocalBoxSphereBounds,
FRDGTextureRef AmbientOcclusionTexture 
)

◆ RenderExistenceMaskWithLiveShading()

void RenderExistenceMaskWithLiveShading ( FRDGBuilder GraphBuilder,
const FScene Scene,
const FViewInfo View,
const FSceneTextures SceneTextures,
const IHeterogeneousVolumeInterface HeterogeneousVolumeInterface,
const FMaterialRenderProxy DefaultMaterialRenderProxy,
FPersistentPrimitiveIndex  PersistentPrimitiveIndex,
const FBoxSphereBounds  LocalBoxSphereBounds,
FIntVector  ExistenceMaskTextureResolution,
FRDGTextureRef ExistenceMaskTexture 
)

◆ RenderSingleScatteringWithVoxelGrid()

void RenderSingleScatteringWithVoxelGrid ( FRDGBuilder GraphBuilder,
const FSceneTextures SceneTextures,
FScene Scene,
FViewInfo View,
TArray< FVisibleLightInfo, SceneRenderingAllocator > &  VisibleLightInfos,
const FVirtualShadowMapArray VirtualShadowMapArray,
const TRDGUniformBufferRef< FOrthoVoxelGridUniformBufferParameters > &  OrthoGridUniformBuffer,
const TRDGUniformBufferRef< FFrustumVoxelGridUniformBufferParameters > &  FrustumGridUniformBuffer,
FRDGTextureRef HeterogeneousVolumeRadiance 
)

◆ RenderTransmittanceWithVoxelGrid()

void RenderTransmittanceWithVoxelGrid ( FRDGBuilder GraphBuilder,
const FSceneTextures SceneTextures,
FScene Scene,
FViewInfo View,
const TRDGUniformBufferRef< FOrthoVoxelGridUniformBufferParameters > &  OrthoGridUniformBuffer,
const TRDGUniformBufferRef< FFrustumVoxelGridUniformBufferParameters > &  FrustumGridUniformBuffer,
FRDGTextureRef HeterogeneousVolumeRadiance 
)

◆ RenderVolumetricShadowMaskForLight()

void RenderVolumetricShadowMaskForLight ( FRDGBuilder GraphBuilder,
const FSceneTexturesConfig Config,
const TConstArrayView< FViewInfo > &  Views,
uint32  LightType,
const FLightSceneInfo LightSceneInfo,
FRDGTextureRef ScreenShadowMaskTexture 
)

◆ RenderWithLiveShading()

void RenderWithLiveShading ( FRDGBuilder GraphBuilder,
const FSceneTextures SceneTextures,
const FScene Scene,
const FViewInfo View,
int32  ViewIndex,
TArray< FVisibleLightInfo, SceneRenderingAllocator > &  VisibleLightInfos,
const FVirtualShadowMapArray VirtualShadowMapArray,
const IHeterogeneousVolumeInterface HeterogeneousVolumeInterface,
const FMaterialRenderProxy MaterialRenderProxy,
const FPersistentPrimitiveIndex PersistentPrimitiveIndex,
const FBoxSphereBounds  LocalBoxSphereBounds,
FRDGTextureRef  LightingCacheTexture,
FRDGTextureRef HeterogeneousVolumeRadiance,
FRDGTextureRef HeterogeneousVolumeVelocity,
FRDGTextureRef HeterogeneousVolumeHoldout,
FRDGTextureRef HeterogeneousVolumeBeerShadowMap 
)

◆ RenderWithPreshading()

void RenderWithPreshading ( FRDGBuilder GraphBuilder,
const FSceneTextures SceneTextures,
FScene Scene,
FViewInfo View,
int32  ViewIndex,
TArray< FVisibleLightInfo, SceneRenderingAllocator > &  VisibleLightInfos,
const FVirtualShadowMapArray VirtualShadowMapArray,
const IHeterogeneousVolumeInterface HeterogeneousVolumeInterface,
const FMaterialRenderProxy MaterialRenderProxy,
const FPersistentPrimitiveIndex PersistentPrimitiveIndex,
const FBoxSphereBounds  LocalBoxSphereBounds,
FRDGTextureRef  LightingCacheTexture,
FRDGTextureRef HeterogeneousVolumeRadiance 
)

◆ ShouldCompositeHeterogeneousVolumesWithTranslucency()

bool ShouldCompositeHeterogeneousVolumesWithTranslucency ( )

◆ ShouldHeterogeneousVolumesCastShadows()

bool ShouldHeterogeneousVolumesCastShadows ( )

◆ ShouldRenderHeterogeneousVolumes()

bool ShouldRenderHeterogeneousVolumes ( const FScene Scene)

◆ ShouldRenderHeterogeneousVolumesAsHoldoutForView()

bool ShouldRenderHeterogeneousVolumesAsHoldoutForView ( const FViewInfo View)

◆ ShouldRenderHeterogeneousVolumesForAnyView()

bool ShouldRenderHeterogeneousVolumesForAnyView ( const TArrayView< FViewInfo > &  Views)

◆ ShouldRenderHeterogeneousVolumesForView() [1/2]

bool ShouldRenderHeterogeneousVolumesForView ( const FViewInfo View)

◆ ShouldRenderHeterogeneousVolumesForView() [2/2]

bool ShouldRenderHeterogeneousVolumesForView ( const TArrayView< FViewInfo > &  Views,
int32  ViewIndex 
)

◆ ShouldRenderMeshBatchWithHeterogeneousVolumes()

bool ShouldRenderMeshBatchWithHeterogeneousVolumes ( const FMeshBatch Mesh,
const FPrimitiveSceneProxy Proxy,
ERHIFeatureLevel::Type  FeatureLevel 
)

◆ ShouldRenderVolumetricShadowMaskForLight()

bool ShouldRenderVolumetricShadowMaskForLight ( FRDGBuilder GraphBuilder,
const TConstArrayView< FViewInfo > &  Views,
const FLightSceneInfo LightSceneInfo 
)

◆ VisualizeCascades()

void VisualizeCascades ( FRDGBuilder GraphBuilder,
const FSceneTextures SceneTextures,
const FScene Scene,
const FViewInfo View,
const FLightSceneInfo LightSceneInfo,
FRDGTextureRef VisualizationTexture 
)