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

Classes

class  FQuadMeshVertexBuffer
 
class  FQuadMeshVertexFactory
 
class  FVoxelizeVolumeShaderElementData
 
class  FVoxelizeVolumeVS
 
class  TVoxelizeVolumeVS< Mode >
 
class  FVoxelizeVolumeGS
 
class  TVoxelizeVolumeGS< Mode >
 
class  FVoxelizeVolumePS
 
class  TVoxelizeVolumePS< Mode >
 
class  FVoxelizeVolumeMeshProcessor
 

Enumerations

enum  EVoxelizeShapeMode { VMode_Primitive_Sphere , VMode_Object_Box }
 

Functions

 IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT (FVoxelizeVolumePassUniformParameters, "VoxelizeVolumePass", SceneTextures)
 
TRDGUniformBufferRef< FVoxelizeVolumePassUniformParametersCreateVoxelizeVolumePassUniformBuffer (FRDGBuilder &GraphBuilder, const FViewInfo &View, const FVolumetricFogIntegrationParameterData &IntegrationData, FVector2D Jitter, const FVolumetricCloudRenderSceneInfo *CloudInfo)
 
 IMPLEMENT_MATERIAL_SHADER_TYPE (template<>, TVoxelizeVolumeVS< VMode_Primitive_Sphere >, TEXT("/Engine/Private/VolumetricFogVoxelization.usf"), TEXT("VoxelizeVS"), SF_Vertex)
 
 IMPLEMENT_MATERIAL_SHADER_TYPE (template<>, TVoxelizeVolumeVS< VMode_Object_Box >, TEXT("/Engine/Private/VolumetricFogVoxelization.usf"), TEXT("VoxelizeVS"), SF_Vertex)
 
 IMPLEMENT_MATERIAL_SHADER_TYPE (template<>, TVoxelizeVolumeGS< VMode_Primitive_Sphere >, TEXT("/Engine/Private/VolumetricFogVoxelization.usf"), TEXT("VoxelizeGS"), SF_Geometry)
 
 IMPLEMENT_MATERIAL_SHADER_TYPE (template<>, TVoxelizeVolumeGS< VMode_Object_Box >, TEXT("/Engine/Private/VolumetricFogVoxelization.usf"), TEXT("VoxelizeGS"), SF_Geometry)
 
 IMPLEMENT_MATERIAL_SHADER_TYPE (template<>, TVoxelizeVolumePS< VMode_Primitive_Sphere >, TEXT("/Engine/Private/VolumetricFogVoxelization.usf"), TEXT("VoxelizePS"), SF_Pixel)
 
 IMPLEMENT_MATERIAL_SHADER_TYPE (template<>, TVoxelizeVolumePS< VMode_Object_Box >, TEXT("/Engine/Private/VolumetricFogVoxelization.usf"), TEXT("VoxelizePS"), SF_Pixel)
 
IPSOCollectorCreatePSOCollectorVoxelizeVolume (ERHIFeatureLevel::Type FeatureLevel)
 
void VoxelizeVolumePrimitive (FVoxelizeVolumeMeshProcessor &PassMeshProcessor, const FViewInfo &View, FIntVector VolumetricFogViewGridSize, FVector GridZParams, const FPrimitiveSceneProxy *PrimitiveSceneProxy, const FMeshBatch &OriginalMesh)
 

Variables

int32 GVolumetricFogVoxelizationSlicesPerGSPass = 8
 
FAutoConsoleVariableRef CVarVolumetricFogVoxelizationSlicesPerPass (TEXT("r.VolumetricFog.VoxelizationSlicesPerGSPass"), GVolumetricFogVoxelizationSlicesPerGSPass, TEXT("How many depth slices to render in a single voxelization pass (max geometry shader expansion). Must recompile voxelization shaders to propagate changes."), ECVF_ReadOnly)
 
int32 GVolumetricFogVoxelizationShowOnlyPassIndex = -1
 
FAutoConsoleVariableRef CVarVolumetricFogVoxelizationShowOnlyPassIndex (TEXT("r.VolumetricFog.VoxelizationShowOnlyPassIndex"), GVolumetricFogVoxelizationShowOnlyPassIndex, TEXT("When >= 0, indicates a single voxelization pass to render for debugging."), ECVF_RenderThreadSafe)
 
TGlobalResource< FQuadMeshVertexBufferGQuadMeshVertexBuffer
 
TGlobalResource< FSpriteIndexBuffer< 1 > > GQuadMeshIndexBuffer
 
FQuadMeshVertexFactoryGQuadMeshVertexFactory = NULL
 
FRegisterPSOCollectorCreateFunction RegisterPSOCollectorVoxelizeVolumeCreatePSOCollectorVoxelizeVolume
 

Enumeration Type Documentation

◆ EVoxelizeShapeMode

Enumerator
VMode_Primitive_Sphere 
VMode_Object_Box 

Function Documentation

◆ CreatePSOCollectorVoxelizeVolume()

IPSOCollector * CreatePSOCollectorVoxelizeVolume ( ERHIFeatureLevel::Type  FeatureLevel)

◆ CreateVoxelizeVolumePassUniformBuffer()

TRDGUniformBufferRef< FVoxelizeVolumePassUniformParameters > CreateVoxelizeVolumePassUniformBuffer ( FRDGBuilder GraphBuilder,
const FViewInfo View,
const FVolumetricFogIntegrationParameterData IntegrationData,
FVector2D  Jitter,
const FVolumetricCloudRenderSceneInfo CloudInfo 
)

◆ IMPLEMENT_MATERIAL_SHADER_TYPE() [1/6]

IMPLEMENT_MATERIAL_SHADER_TYPE ( template<>  ,
TVoxelizeVolumeGS< VMode_Object_Box ,
TEXT("/Engine/Private/VolumetricFogVoxelization.usf" ,
TEXT("VoxelizeGS")  ,
SF_Geometry   
)

◆ IMPLEMENT_MATERIAL_SHADER_TYPE() [2/6]

IMPLEMENT_MATERIAL_SHADER_TYPE ( template<>  ,
TVoxelizeVolumeGS< VMode_Primitive_Sphere ,
TEXT("/Engine/Private/VolumetricFogVoxelization.usf" ,
TEXT("VoxelizeGS")  ,
SF_Geometry   
)

◆ IMPLEMENT_MATERIAL_SHADER_TYPE() [3/6]

IMPLEMENT_MATERIAL_SHADER_TYPE ( template<>  ,
TVoxelizeVolumePS< VMode_Object_Box ,
TEXT("/Engine/Private/VolumetricFogVoxelization.usf" ,
TEXT("VoxelizePS")  ,
SF_Pixel   
)

◆ IMPLEMENT_MATERIAL_SHADER_TYPE() [4/6]

IMPLEMENT_MATERIAL_SHADER_TYPE ( template<>  ,
TVoxelizeVolumePS< VMode_Primitive_Sphere ,
TEXT("/Engine/Private/VolumetricFogVoxelization.usf" ,
TEXT("VoxelizePS")  ,
SF_Pixel   
)

◆ IMPLEMENT_MATERIAL_SHADER_TYPE() [5/6]

IMPLEMENT_MATERIAL_SHADER_TYPE ( template<>  ,
TVoxelizeVolumeVS< VMode_Object_Box ,
TEXT("/Engine/Private/VolumetricFogVoxelization.usf" ,
TEXT("VoxelizeVS")  ,
SF_Vertex   
)

◆ IMPLEMENT_MATERIAL_SHADER_TYPE() [6/6]

IMPLEMENT_MATERIAL_SHADER_TYPE ( template<>  ,
TVoxelizeVolumeVS< VMode_Primitive_Sphere ,
TEXT("/Engine/Private/VolumetricFogVoxelization.usf" ,
TEXT("VoxelizeVS")  ,
SF_Vertex   
)

◆ IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT()

IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT ( FVoxelizeVolumePassUniformParameters  ,
"VoxelizeVolumePass"  ,
SceneTextures   
)

◆ VoxelizeVolumePrimitive()

void VoxelizeVolumePrimitive ( FVoxelizeVolumeMeshProcessor PassMeshProcessor,
const FViewInfo View,
FIntVector  VolumetricFogViewGridSize,
FVector  GridZParams,
const FPrimitiveSceneProxy PrimitiveSceneProxy,
const FMeshBatch OriginalMesh 
)

Variable Documentation

◆ CreatePSOCollectorVoxelizeVolume

◆ CVarVolumetricFogVoxelizationShowOnlyPassIndex

FAutoConsoleVariableRef CVarVolumetricFogVoxelizationShowOnlyPassIndex(TEXT("r.VolumetricFog.VoxelizationShowOnlyPassIndex"), GVolumetricFogVoxelizationShowOnlyPassIndex, TEXT("When >= 0, indicates a single voxelization pass to render for debugging."), ECVF_RenderThreadSafe) ( TEXT("r.VolumetricFog.VoxelizationShowOnlyPassIndex")  ,
GVolumetricFogVoxelizationShowOnlyPassIndex  ,
TEXT("When >= 0, indicates a single voxelization pass to render for debugging." ,
ECVF_RenderThreadSafe   
)

◆ CVarVolumetricFogVoxelizationSlicesPerPass

FAutoConsoleVariableRef CVarVolumetricFogVoxelizationSlicesPerPass(TEXT("r.VolumetricFog.VoxelizationSlicesPerGSPass"), GVolumetricFogVoxelizationSlicesPerGSPass, TEXT("How many depth slices to render in a single voxelization pass (max geometry shader expansion). Must recompile voxelization shaders to propagate changes."), ECVF_ReadOnly) ( TEXT("r.VolumetricFog.VoxelizationSlicesPerGSPass")  ,
GVolumetricFogVoxelizationSlicesPerGSPass  ,
TEXT("How many depth slices to render in a single voxelization pass (max geometry shader expansion). Must recompile voxelization shaders to propagate changes." ,
ECVF_ReadOnly   
)

◆ GQuadMeshIndexBuffer

TGlobalResource<FSpriteIndexBuffer<1> > GQuadMeshIndexBuffer

◆ GQuadMeshVertexBuffer

TGlobalResource<FQuadMeshVertexBuffer> GQuadMeshVertexBuffer

◆ GQuadMeshVertexFactory

FQuadMeshVertexFactory* GQuadMeshVertexFactory = NULL

◆ GVolumetricFogVoxelizationShowOnlyPassIndex

int32 GVolumetricFogVoxelizationShowOnlyPassIndex = -1

◆ GVolumetricFogVoxelizationSlicesPerGSPass

int32 GVolumetricFogVoxelizationSlicesPerGSPass = 8