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

Classes

class  FRenderVolumetricCloudVS
 
class  FRenderVolumetricCloudRenderViewPs< Permutation >
 
class  FRenderVolumetricCloudRenderViewCS
 
class  FRenderVolumetricCloudEmptySpaceSkippingCS
 
class  FSingleTriangleMeshVertexBuffer
 
class  FSingleTriangleMeshVertexFactory
 
class  FVolumetricCloudRenderViewMeshProcessor
 
class  FVolumetricCloudShadowPS
 
class  FVolumetricCloudRenderShadowMeshProcessor
 
class  FDrawDebugCloudShadowCS
 
class  FCloudShadowFilterCS
 
class  FCloudShadowTemporalProcessCS
 

Macros

#define CLOUD_DEBUG_SAMPLES   0 /*!Never check in enabled!*/
 
#define IMPLEMENT_CLOUD_RENDERVIEW_PS(A, B, C)
 

Enumerations

enum  EVolumetricCloudRenderViewPsPermutations {
  CloudPs_AtmoTrans0_SampleShad0_2ndLight0 , CloudPs_AtmoTrans1_SampleShad0_2ndLight0 , CloudPs_AtmoTrans0_SampleShad1_2ndLight0 , CloudPs_AtmoTrans1_SampleShad1_2ndLight0 ,
  CloudPs_AtmoTrans0_SampleShad0_2ndLight1 , CloudPs_AtmoTrans1_SampleShad0_2ndLight1 , CloudPs_AtmoTrans0_SampleShad1_2ndLight1 , CloudPs_AtmoTrans1_SampleShad1_2ndLight1 ,
  CloudPsCount
}
 

Functions

bool ShouldRenderVolumetricCloud (const FScene *Scene, const FEngineShowFlags &EngineShowFlags)
 
bool ShouldRenderVolumetricCloudWithBlueNoise_GameThread (const FScene *Scene, const FSceneView &View)
 
bool ShouldViewVisualizeVolumetricCloudConservativeDensity (const FViewInfo &ViewInfo, const FEngineShowFlags &EngineShowFlags)
 
bool VolumetricCloudWantsToSampleLocalLights (const FScene *Scene, const FEngineShowFlags &EngineShowFlags)
 
bool ShouldVolumetricCloudTraceWithMinMaxDepth (const FViewInfo &ViewInfo)
 
bool ShouldVolumetricCloudTraceWithMinMaxDepth (const TArray< FViewInfo > &Views)
 
bool VolumetricCloudWantsSeparatedAtmosphereMieRayLeigh (const FScene *Scene)
 
bool ShouldVolumetricCloudsApplyFogDuringReconstruction (const FViewInfo &ViewInfo)
 
FRDGTextureDesc GetVolumetricCloudSkyAORDGTextureDesc (const FIntPoint &Size)
 
FVolumetricCloudShadowAOParameters GetCloudShadowAOParameters (FRDGBuilder &GraphBuilder, const FViewInfo &View, const FVolumetricCloudRenderSceneInfo *CloudInfo)
 
void GetCloudShadowAOData (const FVolumetricCloudRenderSceneInfo *CloudInfo, const FViewInfo &View, FRDGBuilder &GraphBuilder, FCloudShadowAOData &OutData)
 
 DECLARE_GPU_STAT (VolumetricCloud)
 
 DECLARE_GPU_STAT (VolumetricCloudShadow)
 
FORCEINLINE bool IsVolumetricCloudMaterialSupported (const EShaderPlatform ShaderPlatform)
 
FORCEINLINE bool IsMaterialCompatibleWithVolumetricCloud (const FMaterialShaderParameters &Material, const EShaderPlatform Platform)
 
 IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT (FRenderVolumetricCloudGlobalParameters, "RenderVolumetricCloudParameters", SceneTextures)
 
 IMPLEMENT_GLOBAL_SHADER_PARAMETER_STRUCT (FVolumetricCloudCommonGlobalShaderParameters, "VolumetricCloudCommonParameters")
 
uint32 GetVolumetricCloudDebugViewMode (const FEngineShowFlags &ShowFlags)
 
void SetupDefaultRenderVolumetricCloudGlobalParameters (FRDGBuilder &GraphBuilder, FRenderVolumetricCloudGlobalParameters &VolumetricCloudParams, FVolumetricCloudRenderSceneInfo &CloudInfo, FViewInfo &ViewInfo, bool bForceNonLateFogOnCloud=false)
 
 IMPLEMENT_MATERIAL_SHADER_TYPE (, FRenderVolumetricCloudVS, TEXT("/Engine/Private/VolumetricCloud.usf"), TEXT("MainVS"), SF_Vertex)
 
 IMPLEMENT_CLOUD_RENDERVIEW_PS (0, 0, 0)
 
 IMPLEMENT_CLOUD_RENDERVIEW_PS (1, 0, 0)
 
 IMPLEMENT_CLOUD_RENDERVIEW_PS (0, 1, 0)
 
 IMPLEMENT_CLOUD_RENDERVIEW_PS (1, 1, 0)
 
 IMPLEMENT_CLOUD_RENDERVIEW_PS (0, 0, 1)
 
 IMPLEMENT_CLOUD_RENDERVIEW_PS (1, 0, 1)
 
 IMPLEMENT_CLOUD_RENDERVIEW_PS (0, 1, 1)
 
 IMPLEMENT_CLOUD_RENDERVIEW_PS (1, 1, 1)
 
 IMPLEMENT_MATERIAL_SHADER_TYPE (, FRenderVolumetricCloudRenderViewCS, TEXT("/Engine/Private/VolumetricCloud.usf"), TEXT("MainCS"), SF_Compute)
 
 IMPLEMENT_MATERIAL_SHADER_TYPE (, FRenderVolumetricCloudEmptySpaceSkippingCS, TEXT("/Engine/Private/VolumetricCloud.usf"), TEXT("MainCS"), SF_Compute)
 
 IMPLEMENT_MATERIAL_SHADER_TYPE (, FVolumetricCloudShadowPS, TEXT("/Engine/Private/VolumetricCloud.usf"), TEXT("MainPS"), SF_Pixel)
 
IPSOCollectorCreatePSOCollectorVolumetricCloudRenderShadow (ERHIFeatureLevel::Type FeatureLevel)
 
 IMPLEMENT_GLOBAL_SHADER (FDrawDebugCloudShadowCS, "/Engine/Private/VolumetricCloud.usf", "MainDrawDebugShadowCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FCloudShadowFilterCS, "/Engine/Private/VolumetricCloud.usf", "MainShadowFilterCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FCloudShadowTemporalProcessCS, "/Engine/Private/VolumetricCloud.usf", "MainShadowTemporalProcessCS", SF_Compute)
 
void CleanUpCloudDataFunction (TArray< FViewInfo > &Views)
 
bool SetupLightCloudTransmittanceParameters (FRDGBuilder &GraphBuilder, const FScene *Scene, const FViewInfo &View, const FLightSceneInfo *LightSceneInfo, FLightCloudTransmittanceParameters &OutParameters)
 
bool LightMayCastCloudShadow (const FScene *Scene, const FViewInfo &View, const FLightSceneInfo *LightSceneInfo)
 

Variables

FRegisterPSOCollectorCreateFunction RegisterPSOCollectorVolumetricCloudRenderShadowCreatePSOCollectorVolumetricCloudRenderShadow
 

Macro Definition Documentation

◆ CLOUD_DEBUG_SAMPLES

#define CLOUD_DEBUG_SAMPLES   0 /*!Never check in enabled!*/

◆ IMPLEMENT_CLOUD_RENDERVIEW_PS

#define IMPLEMENT_CLOUD_RENDERVIEW_PS (   A,
  B,
  C 
)
Value:
IMPLEMENT_MATERIAL_SHADER_TYPE(template<>, FCloudRenderViewPS##A##B##C, TEXT("/Engine/Private/VolumetricCloud.usf"), TEXT("MainPS"), SF_Pixel)
#define TEXT(x)
Definition Platform.h:1272
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
@ SF_Pixel
Definition RHIDefinitions.h:206
Definition VolumetricCloudRendering.cpp:812

Enumeration Type Documentation

◆ EVolumetricCloudRenderViewPsPermutations

Enumerator
CloudPs_AtmoTrans0_SampleShad0_2ndLight0 
CloudPs_AtmoTrans1_SampleShad0_2ndLight0 
CloudPs_AtmoTrans0_SampleShad1_2ndLight0 
CloudPs_AtmoTrans1_SampleShad1_2ndLight0 
CloudPs_AtmoTrans0_SampleShad0_2ndLight1 
CloudPs_AtmoTrans1_SampleShad0_2ndLight1 
CloudPs_AtmoTrans0_SampleShad1_2ndLight1 
CloudPs_AtmoTrans1_SampleShad1_2ndLight1 
CloudPsCount 

Function Documentation

◆ CleanUpCloudDataFunction()

void CleanUpCloudDataFunction ( TArray< FViewInfo > &  Views)

◆ CreatePSOCollectorVolumetricCloudRenderShadow()

IPSOCollector * CreatePSOCollectorVolumetricCloudRenderShadow ( ERHIFeatureLevel::Type  FeatureLevel)

◆ DECLARE_GPU_STAT() [1/2]

DECLARE_GPU_STAT ( VolumetricCloud  )

◆ DECLARE_GPU_STAT() [2/2]

DECLARE_GPU_STAT ( VolumetricCloudShadow  )

◆ GetCloudShadowAOData()

void GetCloudShadowAOData ( const FVolumetricCloudRenderSceneInfo CloudInfo,
const FViewInfo View,
FRDGBuilder GraphBuilder,
FCloudShadowAOData OutData 
)

◆ GetCloudShadowAOParameters()

FVolumetricCloudShadowAOParameters GetCloudShadowAOParameters ( FRDGBuilder GraphBuilder,
const FViewInfo View,
const FVolumetricCloudRenderSceneInfo CloudInfo 
)

◆ GetVolumetricCloudDebugViewMode()

uint32 GetVolumetricCloudDebugViewMode ( const FEngineShowFlags ShowFlags)

◆ GetVolumetricCloudSkyAORDGTextureDesc()

FRDGTextureDesc GetVolumetricCloudSkyAORDGTextureDesc ( const FIntPoint Size)

◆ IMPLEMENT_CLOUD_RENDERVIEW_PS() [1/8]

IMPLEMENT_CLOUD_RENDERVIEW_PS ( ,
,
 
)

◆ IMPLEMENT_CLOUD_RENDERVIEW_PS() [2/8]

IMPLEMENT_CLOUD_RENDERVIEW_PS ( ,
,
 
)

◆ IMPLEMENT_CLOUD_RENDERVIEW_PS() [3/8]

IMPLEMENT_CLOUD_RENDERVIEW_PS ( ,
,
 
)

◆ IMPLEMENT_CLOUD_RENDERVIEW_PS() [4/8]

IMPLEMENT_CLOUD_RENDERVIEW_PS ( ,
,
 
)

◆ IMPLEMENT_CLOUD_RENDERVIEW_PS() [5/8]

IMPLEMENT_CLOUD_RENDERVIEW_PS ( ,
,
 
)

◆ IMPLEMENT_CLOUD_RENDERVIEW_PS() [6/8]

IMPLEMENT_CLOUD_RENDERVIEW_PS ( ,
,
 
)

◆ IMPLEMENT_CLOUD_RENDERVIEW_PS() [7/8]

IMPLEMENT_CLOUD_RENDERVIEW_PS ( ,
,
 
)

◆ IMPLEMENT_CLOUD_RENDERVIEW_PS() [8/8]

IMPLEMENT_CLOUD_RENDERVIEW_PS ( ,
,
 
)

◆ IMPLEMENT_GLOBAL_SHADER() [1/3]

IMPLEMENT_GLOBAL_SHADER ( FCloudShadowFilterCS  ,
"/Engine/Private/VolumetricCloud.usf"  ,
"MainShadowFilterCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [2/3]

IMPLEMENT_GLOBAL_SHADER ( FCloudShadowTemporalProcessCS  ,
"/Engine/Private/VolumetricCloud.usf"  ,
"MainShadowTemporalProcessCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [3/3]

IMPLEMENT_GLOBAL_SHADER ( FDrawDebugCloudShadowCS  ,
"/Engine/Private/VolumetricCloud.usf"  ,
"MainDrawDebugShadowCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER_PARAMETER_STRUCT()

IMPLEMENT_GLOBAL_SHADER_PARAMETER_STRUCT ( FVolumetricCloudCommonGlobalShaderParameters  ,
"VolumetricCloudCommonParameters"   
)

◆ IMPLEMENT_MATERIAL_SHADER_TYPE() [1/4]

IMPLEMENT_MATERIAL_SHADER_TYPE ( FRenderVolumetricCloudEmptySpaceSkippingCS  ,
TEXT("/Engine/Private/VolumetricCloud.usf" ,
TEXT("MainCS")  ,
SF_Compute   
)

◆ IMPLEMENT_MATERIAL_SHADER_TYPE() [2/4]

IMPLEMENT_MATERIAL_SHADER_TYPE ( FRenderVolumetricCloudRenderViewCS  ,
TEXT("/Engine/Private/VolumetricCloud.usf" ,
TEXT("MainCS")  ,
SF_Compute   
)

◆ IMPLEMENT_MATERIAL_SHADER_TYPE() [3/4]

IMPLEMENT_MATERIAL_SHADER_TYPE ( FRenderVolumetricCloudVS  ,
TEXT("/Engine/Private/VolumetricCloud.usf" ,
TEXT("MainVS")  ,
SF_Vertex   
)

◆ IMPLEMENT_MATERIAL_SHADER_TYPE() [4/4]

IMPLEMENT_MATERIAL_SHADER_TYPE ( FVolumetricCloudShadowPS  ,
TEXT("/Engine/Private/VolumetricCloud.usf" ,
TEXT("MainPS")  ,
SF_Pixel   
)

◆ IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT()

IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT ( FRenderVolumetricCloudGlobalParameters  ,
"RenderVolumetricCloudParameters"  ,
SceneTextures   
)

◆ IsMaterialCompatibleWithVolumetricCloud()

FORCEINLINE bool IsMaterialCompatibleWithVolumetricCloud ( const FMaterialShaderParameters Material,
const EShaderPlatform  Platform 
)

◆ IsVolumetricCloudMaterialSupported()

FORCEINLINE bool IsVolumetricCloudMaterialSupported ( const EShaderPlatform  ShaderPlatform)

◆ LightMayCastCloudShadow()

bool LightMayCastCloudShadow ( const FScene Scene,
const FViewInfo View,
const FLightSceneInfo LightSceneInfo 
)

◆ SetupDefaultRenderVolumetricCloudGlobalParameters()

void SetupDefaultRenderVolumetricCloudGlobalParameters ( FRDGBuilder GraphBuilder,
FRenderVolumetricCloudGlobalParameters VolumetricCloudParams,
FVolumetricCloudRenderSceneInfo CloudInfo,
FViewInfo ViewInfo,
bool  bForceNonLateFogOnCloud = false 
)

◆ SetupLightCloudTransmittanceParameters()

bool SetupLightCloudTransmittanceParameters ( FRDGBuilder GraphBuilder,
const FScene Scene,
const FViewInfo View,
const FLightSceneInfo LightSceneInfo,
FLightCloudTransmittanceParameters OutParameters 
)

◆ ShouldRenderVolumetricCloud()

bool ShouldRenderVolumetricCloud ( const FScene Scene,
const FEngineShowFlags EngineShowFlags 
)

◆ ShouldRenderVolumetricCloudWithBlueNoise_GameThread()

bool ShouldRenderVolumetricCloudWithBlueNoise_GameThread ( const FScene Scene,
const FSceneView View 
)

◆ ShouldViewVisualizeVolumetricCloudConservativeDensity()

bool ShouldViewVisualizeVolumetricCloudConservativeDensity ( const FViewInfo ViewInfo,
const FEngineShowFlags EngineShowFlags 
)

◆ ShouldVolumetricCloudsApplyFogDuringReconstruction()

bool ShouldVolumetricCloudsApplyFogDuringReconstruction ( const FViewInfo ViewInfo)

◆ ShouldVolumetricCloudTraceWithMinMaxDepth() [1/2]

bool ShouldVolumetricCloudTraceWithMinMaxDepth ( const FViewInfo ViewInfo)

◆ ShouldVolumetricCloudTraceWithMinMaxDepth() [2/2]

bool ShouldVolumetricCloudTraceWithMinMaxDepth ( const TArray< FViewInfo > &  Views)

◆ VolumetricCloudWantsSeparatedAtmosphereMieRayLeigh()

bool VolumetricCloudWantsSeparatedAtmosphereMieRayLeigh ( const FScene Scene)

◆ VolumetricCloudWantsToSampleLocalLights()

bool VolumetricCloudWantsToSampleLocalLights ( const FScene Scene,
const FEngineShowFlags EngineShowFlags 
)

Variable Documentation

◆ CreatePSOCollectorVolumetricCloudRenderShadow