UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
HeterogeneousVolumesPreshadingPipeline.cpp File Reference
#include "HeterogeneousVolumes.h"
#include "HeterogeneousVolumeInterface.h"
#include "LightRendering.h"
#include "PixelShaderUtils.h"
#include "RayTracingDefinitions.h"
#include "RayTracingInstance.h"
#include "RayTracingInstanceBufferUtil.h"
#include "RendererPrivate.h"
#include "ScenePrivate.h"
#include "PrimitiveDrawingUtils.h"
#include "VolumeLighting.h"
#include "VolumetricFog.h"

Classes

class  FGenerateRayMarchingTiles
 
class  FRenderLightingCacheWithPreshadingCS
 
class  FRenderSingleScatteringWithPreshadingCS
 
class  FGenerateMips3D
 
class  FGenerateMin3D
 

Namespaces

namespace  HeterogeneousVolumes
 

Functions

 IMPLEMENT_GLOBAL_SHADER (FGenerateRayMarchingTiles, "/Engine/Private/HeterogeneousVolumes/HeterogeneousVolumesPreshadingPipeline.usf", "GenerateRayMarchingTiles", SF_Compute)
 
void GenerateRayMarchingTiles (FRDGBuilder &GraphBuilder, const FScene *Scene, const FViewInfo &View, const FSceneTextures &SceneTextures, const IHeterogeneousVolumeInterface *HeterogeneousVolumeInterface, FRDGBufferRef NumVoxelsBuffer, const TRDGUniformBufferRef< FSparseVoxelUniformBufferParameters > &SparseVoxelUniformBuffer, FRDGBufferRef &NumRayMarchingTilesBuffer, FRDGBufferRef &RayMarchingTilesBuffer, FRDGBufferRef &VoxelsPerTileBuffer)
 
 IMPLEMENT_GLOBAL_SHADER (FRenderLightingCacheWithPreshadingCS, "/Engine/Private/HeterogeneousVolumes/HeterogeneousVolumesPreshadingPipeline.usf", "RenderLightingCacheWithPreshadingCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FRenderSingleScatteringWithPreshadingCS, "/Engine/Private/HeterogeneousVolumes/HeterogeneousVolumesPreshadingPipeline.usf", "RenderSingleScatteringWithPreshadingCS", SF_Compute)
 
void RenderLightingCacheWithPreshadingCompute (FRDGBuilder &GraphBuilder, const FScene *Scene, const FViewInfo &View, int32 ViewIndex, const FSceneTextures &SceneTextures, bool bApplyEmissionAndTransmittance, bool bApplyDirectLighting, bool bApplyShadowTransmittance, uint32 LightType, const FLightSceneInfo *LightSceneInfo, const FVisibleLightInfo *VisibleLightInfo, const FVirtualShadowMapArray &VirtualShadowMapArray, const IHeterogeneousVolumeInterface *HeterogeneousVolumeInterface, FRDGBufferRef NumVoxelsBuffer, const TRDGUniformBufferRef< FSparseVoxelUniformBufferParameters > &SparseVoxelUniformBuffer, FRDGBufferRef NumRayMarchingTilesBuffer, FRDGBufferRef RayMarchingTilesBuffer, FRDGBufferRef VoxelsPerTileBuffer, FRDGTextureRef &LightingCacheTexture)
 
void RenderSingleScatteringWithPreshadingCompute (FRDGBuilder &GraphBuilder, const FScene *Scene, const FViewInfo &View, int32 ViewIndex, const FSceneTextures &SceneTextures, bool bApplyEmissionAndTransmittance, bool bApplyDirectLighting, bool bApplyShadowTransmittance, uint32 LightType, const FLightSceneInfo *LightSceneInfo, const FVisibleLightInfo *VisibleLightInfo, const FVirtualShadowMapArray &VirtualShadowMapArray, const IHeterogeneousVolumeInterface *HeterogeneousVolumeInterface, FRDGBufferRef NumVoxelsBuffer, const TRDGUniformBufferRef< FSparseVoxelUniformBufferParameters > &SparseVoxelUniformBuffer, FRDGTextureRef LightingCacheTexture, FRDGBufferRef NumRayMarchingTilesBuffer, FRDGBufferRef RayMarchingTilesBuffer, FRDGBufferRef VoxelsPerTileBuffer, FRDGTextureRef &HeterogeneousVolumeTexture)
 
void RenderWithInscatteringVolumePipelineWithPreshadingCompute (FRDGBuilder &GraphBuilder, const FSceneTextures &SceneTextures, const FScene *Scene, FViewInfo &View, int32 ViewIndex, TArray< FVisibleLightInfo, SceneRenderingAllocator > &VisibleLightInfos, const FVirtualShadowMapArray &VirtualShadowMapArray, const IHeterogeneousVolumeInterface *HeterogeneousVolumeInterface, const FMaterialRenderProxy *MaterialRenderProxy, FRDGBufferRef NumVoxelsBuffer, TRDGUniformBufferRef< FSparseVoxelUniformBufferParameters > &SparseVoxelUniformBuffer, FRDGBufferRef NumRayMarchingTilesBuffer, FRDGBufferRef RayMarchingTilesBuffer, FRDGBufferRef VoxelsPerTileBuffer, FRDGTextureRef &LightingCacheTexture, FRDGTextureRef &HeterogeneousVolumeRadiance)
 
void RenderWithTransmittanceVolumePipelineWithPreshadingCompute (FRDGBuilder &GraphBuilder, const FSceneTextures &SceneTextures, const FScene *Scene, FViewInfo &View, int32 ViewIndex, TArray< FVisibleLightInfo, SceneRenderingAllocator > &VisibleLightInfos, const FVirtualShadowMapArray &VirtualShadowMapArray, const IHeterogeneousVolumeInterface *HeterogeneousVolumeInterface, const FMaterialRenderProxy *MaterialRenderProxy, FRDGBufferRef NumVoxelsBuffer, TRDGUniformBufferRef< FSparseVoxelUniformBufferParameters > &SparseVoxelUniformBuffer, FRDGBufferRef NumRayMarchingTilesBuffer, FRDGBufferRef RayMarchingTilesBuffer, FRDGBufferRef VoxelsPerTileBuffer, FRDGTextureRef &LightingCacheTexture, FRDGTextureRef &HeterogeneousVolumeRadiance)
 
void RenderWithPreshadingCompute (FRDGBuilder &GraphBuilder, const FSceneTextures &SceneTextures, const FScene *Scene, FViewInfo &View, int32 ViewIndex, TArray< FVisibleLightInfo, SceneRenderingAllocator > &VisibleLightInfos, const FVirtualShadowMapArray &VirtualShadowMapArray, const IHeterogeneousVolumeInterface *HeterogeneousVolumeInterface, const FMaterialRenderProxy *MaterialRenderProxy, FRDGBufferRef NumVoxelsBuffer, TRDGUniformBufferRef< FSparseVoxelUniformBufferParameters > &SparseVoxelUniformBuffer, FRDGTextureRef &LightingCacheTexture, FRDGTextureRef &HeterogeneousVolumeRadiance)
 
void RenderWithInscatteringVolumePipelineWithPreshadingHardwareRayTracing (FRDGBuilder &GraphBuilder, const FSceneTextures &SceneTextures, FScene *Scene, FViewInfo &View, int32 ViewIndex, TArray< FVisibleLightInfo, SceneRenderingAllocator > &VisibleLightInfos, const FVirtualShadowMapArray &VirtualShadowMapArray, const IHeterogeneousVolumeInterface *HeterogeneousVolumeInterface, const FMaterialRenderProxy *MaterialRenderProxy, FRDGBufferRef NumVoxelsBuffer, const TRDGUniformBufferRef< FSparseVoxelUniformBufferParameters > &SparseVoxelUniformBuffer, FRDGTextureRef LightingCacheTexture, TConstArrayView< FRayTracingGeometryRHIRef > RayTracingGeometries, FRDGTextureRef &HeterogeneousVolumeRadiance)
 
void RenderWithTransmittanceVolumePipelineWithPreshadingHardwareRayTracing (FRDGBuilder &GraphBuilder, const FSceneTextures &SceneTextures, FScene *Scene, FViewInfo &View, int32 ViewIndex, TArray< FVisibleLightInfo, SceneRenderingAllocator > &VisibleLightInfos, const FVirtualShadowMapArray &VirtualShadowMapArray, const IHeterogeneousVolumeInterface *HeterogeneousVolumeInterface, const FMaterialRenderProxy *MaterialRenderProxy, FRDGBufferRef NumVoxelsBuffer, const TRDGUniformBufferRef< FSparseVoxelUniformBufferParameters > &SparseVoxelUniformBuffer, FRDGTextureRef LightingCacheTexture, TConstArrayView< FRayTracingGeometryRHIRef > RayTracingGeometries, FRDGTextureRef &HeterogeneousVolumeRadiance)
 
void RenderWithPreshadingHardwareRayTracing (FRDGBuilder &GraphBuilder, const FSceneTextures &SceneTextures, FScene *Scene, FViewInfo &View, int32 ViewIndex, TArray< FVisibleLightInfo, SceneRenderingAllocator > &VisibleLightInfos, const FVirtualShadowMapArray &VirtualShadowMapArray, const IHeterogeneousVolumeInterface *HeterogeneousVolumeInterface, const FMaterialRenderProxy *MaterialRenderProxy, FRDGBufferRef NumVoxelsBuffer, const TRDGUniformBufferRef< FSparseVoxelUniformBufferParameters > &SparseVoxelUniformBuffer, FRDGTextureRef LightingCacheTexture, FRDGTextureRef &HeterogeneousVolumeRadiance)
 
 IMPLEMENT_GLOBAL_SHADER (FGenerateMips3D, "/Engine/Private/HeterogeneousVolumes/HeterogeneousVolumesPreshadingPipeline.usf", "GenerateMips3D", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FGenerateMin3D, "/Engine/Private/HeterogeneousVolumes/HeterogeneousVolumesPreshadingPipeline.usf", "GenerateMin3D", SF_Compute)
 
template<typename ShaderType >
void GenerateMips3D (FRDGBuilder &GraphBuilder, const FViewInfo &View, FRDGTextureRef Texture, uint32 MipLevel)
 
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)
 

Function Documentation

◆ GenerateMips3D()

template<typename ShaderType >
void GenerateMips3D ( FRDGBuilder GraphBuilder,
const FViewInfo View,
FRDGTextureRef  Texture,
uint32  MipLevel 
)

◆ GenerateRayMarchingTiles()

void GenerateRayMarchingTiles ( FRDGBuilder GraphBuilder,
const FScene Scene,
const FViewInfo View,
const FSceneTextures SceneTextures,
const IHeterogeneousVolumeInterface HeterogeneousVolumeInterface,
FRDGBufferRef  NumVoxelsBuffer,
const TRDGUniformBufferRef< FSparseVoxelUniformBufferParameters > &  SparseVoxelUniformBuffer,
FRDGBufferRef NumRayMarchingTilesBuffer,
FRDGBufferRef RayMarchingTilesBuffer,
FRDGBufferRef VoxelsPerTileBuffer 
)

◆ IMPLEMENT_GLOBAL_SHADER() [1/5]

IMPLEMENT_GLOBAL_SHADER ( FGenerateMin3D  ,
"/Engine/Private/HeterogeneousVolumes/HeterogeneousVolumesPreshadingPipeline.usf"  ,
"GenerateMin3D"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [2/5]

IMPLEMENT_GLOBAL_SHADER ( FGenerateMips3D  ,
"/Engine/Private/HeterogeneousVolumes/HeterogeneousVolumesPreshadingPipeline.usf"  ,
"GenerateMips3D"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [3/5]

IMPLEMENT_GLOBAL_SHADER ( FGenerateRayMarchingTiles  ,
"/Engine/Private/HeterogeneousVolumes/HeterogeneousVolumesPreshadingPipeline.usf"  ,
"GenerateRayMarchingTiles"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [4/5]

IMPLEMENT_GLOBAL_SHADER ( FRenderLightingCacheWithPreshadingCS  ,
"/Engine/Private/HeterogeneousVolumes/HeterogeneousVolumesPreshadingPipeline.usf"  ,
"RenderLightingCacheWithPreshadingCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [5/5]

IMPLEMENT_GLOBAL_SHADER ( FRenderSingleScatteringWithPreshadingCS  ,
"/Engine/Private/HeterogeneousVolumes/HeterogeneousVolumesPreshadingPipeline.usf"  ,
"RenderSingleScatteringWithPreshadingCS"  ,
SF_Compute   
)

◆ RenderLightingCacheWithPreshadingCompute()

void RenderLightingCacheWithPreshadingCompute ( FRDGBuilder GraphBuilder,
const FScene Scene,
const FViewInfo View,
int32  ViewIndex,
const FSceneTextures SceneTextures,
bool  bApplyEmissionAndTransmittance,
bool  bApplyDirectLighting,
bool  bApplyShadowTransmittance,
uint32  LightType,
const FLightSceneInfo LightSceneInfo,
const FVisibleLightInfo VisibleLightInfo,
const FVirtualShadowMapArray VirtualShadowMapArray,
const IHeterogeneousVolumeInterface HeterogeneousVolumeInterface,
FRDGBufferRef  NumVoxelsBuffer,
const TRDGUniformBufferRef< FSparseVoxelUniformBufferParameters > &  SparseVoxelUniformBuffer,
FRDGBufferRef  NumRayMarchingTilesBuffer,
FRDGBufferRef  RayMarchingTilesBuffer,
FRDGBufferRef  VoxelsPerTileBuffer,
FRDGTextureRef LightingCacheTexture 
)

◆ RenderSingleScatteringWithPreshadingCompute()

void RenderSingleScatteringWithPreshadingCompute ( FRDGBuilder GraphBuilder,
const FScene Scene,
const FViewInfo View,
int32  ViewIndex,
const FSceneTextures SceneTextures,
bool  bApplyEmissionAndTransmittance,
bool  bApplyDirectLighting,
bool  bApplyShadowTransmittance,
uint32  LightType,
const FLightSceneInfo LightSceneInfo,
const FVisibleLightInfo VisibleLightInfo,
const FVirtualShadowMapArray VirtualShadowMapArray,
const IHeterogeneousVolumeInterface HeterogeneousVolumeInterface,
FRDGBufferRef  NumVoxelsBuffer,
const TRDGUniformBufferRef< FSparseVoxelUniformBufferParameters > &  SparseVoxelUniformBuffer,
FRDGTextureRef  LightingCacheTexture,
FRDGBufferRef  NumRayMarchingTilesBuffer,
FRDGBufferRef  RayMarchingTilesBuffer,
FRDGBufferRef  VoxelsPerTileBuffer,
FRDGTextureRef HeterogeneousVolumeTexture 
)

◆ RenderWithInscatteringVolumePipelineWithPreshadingCompute()

void RenderWithInscatteringVolumePipelineWithPreshadingCompute ( FRDGBuilder GraphBuilder,
const FSceneTextures SceneTextures,
const FScene Scene,
FViewInfo View,
int32  ViewIndex,
TArray< FVisibleLightInfo, SceneRenderingAllocator > &  VisibleLightInfos,
const FVirtualShadowMapArray VirtualShadowMapArray,
const IHeterogeneousVolumeInterface HeterogeneousVolumeInterface,
const FMaterialRenderProxy MaterialRenderProxy,
FRDGBufferRef  NumVoxelsBuffer,
TRDGUniformBufferRef< FSparseVoxelUniformBufferParameters > &  SparseVoxelUniformBuffer,
FRDGBufferRef  NumRayMarchingTilesBuffer,
FRDGBufferRef  RayMarchingTilesBuffer,
FRDGBufferRef  VoxelsPerTileBuffer,
FRDGTextureRef LightingCacheTexture,
FRDGTextureRef HeterogeneousVolumeRadiance 
)

◆ RenderWithInscatteringVolumePipelineWithPreshadingHardwareRayTracing()

void RenderWithInscatteringVolumePipelineWithPreshadingHardwareRayTracing ( FRDGBuilder GraphBuilder,
const FSceneTextures SceneTextures,
FScene Scene,
FViewInfo View,
int32  ViewIndex,
TArray< FVisibleLightInfo, SceneRenderingAllocator > &  VisibleLightInfos,
const FVirtualShadowMapArray VirtualShadowMapArray,
const IHeterogeneousVolumeInterface HeterogeneousVolumeInterface,
const FMaterialRenderProxy MaterialRenderProxy,
FRDGBufferRef  NumVoxelsBuffer,
const TRDGUniformBufferRef< FSparseVoxelUniformBufferParameters > &  SparseVoxelUniformBuffer,
FRDGTextureRef  LightingCacheTexture,
TConstArrayView< FRayTracingGeometryRHIRef RayTracingGeometries,
FRDGTextureRef HeterogeneousVolumeRadiance 
)

◆ 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 
)

◆ RenderWithPreshadingCompute()

void RenderWithPreshadingCompute ( FRDGBuilder GraphBuilder,
const FSceneTextures SceneTextures,
const FScene Scene,
FViewInfo View,
int32  ViewIndex,
TArray< FVisibleLightInfo, SceneRenderingAllocator > &  VisibleLightInfos,
const FVirtualShadowMapArray VirtualShadowMapArray,
const IHeterogeneousVolumeInterface HeterogeneousVolumeInterface,
const FMaterialRenderProxy MaterialRenderProxy,
FRDGBufferRef  NumVoxelsBuffer,
TRDGUniformBufferRef< FSparseVoxelUniformBufferParameters > &  SparseVoxelUniformBuffer,
FRDGTextureRef LightingCacheTexture,
FRDGTextureRef HeterogeneousVolumeRadiance 
)

◆ RenderWithPreshadingHardwareRayTracing()

void RenderWithPreshadingHardwareRayTracing ( FRDGBuilder GraphBuilder,
const FSceneTextures SceneTextures,
FScene Scene,
FViewInfo View,
int32  ViewIndex,
TArray< FVisibleLightInfo, SceneRenderingAllocator > &  VisibleLightInfos,
const FVirtualShadowMapArray VirtualShadowMapArray,
const IHeterogeneousVolumeInterface HeterogeneousVolumeInterface,
const FMaterialRenderProxy MaterialRenderProxy,
FRDGBufferRef  NumVoxelsBuffer,
const TRDGUniformBufferRef< FSparseVoxelUniformBufferParameters > &  SparseVoxelUniformBuffer,
FRDGTextureRef  LightingCacheTexture,
FRDGTextureRef HeterogeneousVolumeRadiance 
)

◆ RenderWithTransmittanceVolumePipelineWithPreshadingCompute()

void RenderWithTransmittanceVolumePipelineWithPreshadingCompute ( FRDGBuilder GraphBuilder,
const FSceneTextures SceneTextures,
const FScene Scene,
FViewInfo View,
int32  ViewIndex,
TArray< FVisibleLightInfo, SceneRenderingAllocator > &  VisibleLightInfos,
const FVirtualShadowMapArray VirtualShadowMapArray,
const IHeterogeneousVolumeInterface HeterogeneousVolumeInterface,
const FMaterialRenderProxy MaterialRenderProxy,
FRDGBufferRef  NumVoxelsBuffer,
TRDGUniformBufferRef< FSparseVoxelUniformBufferParameters > &  SparseVoxelUniformBuffer,
FRDGBufferRef  NumRayMarchingTilesBuffer,
FRDGBufferRef  RayMarchingTilesBuffer,
FRDGBufferRef  VoxelsPerTileBuffer,
FRDGTextureRef LightingCacheTexture,
FRDGTextureRef HeterogeneousVolumeRadiance 
)

◆ RenderWithTransmittanceVolumePipelineWithPreshadingHardwareRayTracing()

void RenderWithTransmittanceVolumePipelineWithPreshadingHardwareRayTracing ( FRDGBuilder GraphBuilder,
const FSceneTextures SceneTextures,
FScene Scene,
FViewInfo View,
int32  ViewIndex,
TArray< FVisibleLightInfo, SceneRenderingAllocator > &  VisibleLightInfos,
const FVirtualShadowMapArray VirtualShadowMapArray,
const IHeterogeneousVolumeInterface HeterogeneousVolumeInterface,
const FMaterialRenderProxy MaterialRenderProxy,
FRDGBufferRef  NumVoxelsBuffer,
const TRDGUniformBufferRef< FSparseVoxelUniformBufferParameters > &  SparseVoxelUniformBuffer,
FRDGTextureRef  LightingCacheTexture,
TConstArrayView< FRayTracingGeometryRHIRef RayTracingGeometries,
FRDGTextureRef HeterogeneousVolumeRadiance 
)