UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
LumenTracingUtils.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "RHIDefinitions.h"
7#include "LumenSceneData.h"
10#include "FogRendering.h"
11#include "SceneView.h"
12#include "HZB.h"
13
14DECLARE_UNIFORM_BUFFER_STRUCT(FSceneUniformParameters, RENDERER_API)
15
18
37
40 SHADER_PARAMETER_RDG_UNIFORM_BUFFER(FSceneUniformParameters, Scene)
48 SHADER_PARAMETER(float, CachedLightingPreExposure)
50
53
62 SHADER_PARAMETER(uint32, SurfaceCacheUpdateFrameIndex)
63 SHADER_PARAMETER_RDG_TEXTURE(Texture2D, DirectLightingAtlas)
64 SHADER_PARAMETER_RDG_TEXTURE(Texture2D, IndirectLightingAtlas)
65 SHADER_PARAMETER_RDG_TEXTURE(Texture2D, FinalLightingAtlas)
73 SHADER_PARAMETER(uint32, NumGlobalSDFClipmaps)
75
77 FRDGBuilder& GraphBuilder,
78 const FViewInfo& View,
79 const FLumenSceneData& LumenSceneData,
83
91
94 SHADER_PARAMETER_RDG_BUFFER_SRV(Buffer<uint>, NumGridCulledMeshSDFObjects)
95 SHADER_PARAMETER_RDG_BUFFER_SRV(Buffer<uint>, GridCulledMeshSDFObjectStartOffsetArray)
96 SHADER_PARAMETER_RDG_BUFFER_SRV(Buffer<uint>, GridCulledMeshSDFObjectIndicesArray)
99 SHADER_PARAMETER(FIntVector, CullGridSize)
100 // Heightfield data
103 SHADER_PARAMETER_RDG_BUFFER_SRV(Buffer<uint>, NumGridCulledHeightfieldObjects)
104 SHADER_PARAMETER_RDG_BUFFER_SRV(Buffer<uint>, GridCulledHeightfieldObjectStartOffsetArray)
105 SHADER_PARAMETER_RDG_BUFFER_SRV(Buffer<uint>, GridCulledHeightfieldObjectIndicesArray)
107
109 SHADER_PARAMETER(float, StepFactor)
115 SHADER_PARAMETER(float, MaxTraceDistance)
117 SHADER_PARAMETER(float, SurfaceBias)
123
127 SHADER_PARAMETER(float, SampleWeight)
131
142
150
152 FRDGBuilder& GraphBuilder,
153 const FScene* Scene,
154 const FViewInfo& View,
160
162 const FViewInfo& View,
163 const FScene* Scene,
170 FRDGBuilder& GraphBuilder,
172 ERDGPassFlags ComputePassFlags = ERDGPassFlags::Compute);
173
175 FRDGBuilder& GraphBuilder,
176 const FScene* Scene,
177 const FViewInfo& View,
180 FLumenMeshSDFGridParameters& MeshSDFGridParameters,
181 ERDGPassFlags ComputePassFlags = ERDGPassFlags::Compute);
182
183extern void SetupLumenDiffuseTracingParameters(float MaxTraceDistance, float OrthoMaxDimension, FLumenIndirectTracingParameters& OutParameters);
185
188
190
192 FRDGBuilder& GraphBuilder,
193 const FViewInfo& View,
194 const FSceneTextures& SceneTextures);
195
197
199{
200 LumenRadianceCache::FRadianceCacheInputs SetupRadianceCacheInputs();
201}
202
204{
205 bool IsAllowed();
206 bool UseAsyncCompute(const FViewFamilyInfo& ViewFamily, EDiffuseIndirectMethod DiffuseIndirectMethod);
207}
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EDiffuseIndirectMethod
Definition DeferredShadingRenderer.h:291
void CullMeshObjectsToViewGrid(const FViewInfo &View, const FScene *Scene, const FLumenSceneFrameTemporaries &FrameTemporaries, float MaxMeshSDFInfluenceRadius, float CardTraceEndDistanceFromCamera, int32 GridPixelsPerCellXY, int32 GridSizeZ, FVector ZParams, FRDGBuilder &GraphBuilder, FLumenMeshSDFGridParameters &OutGridParameters, ERDGPassFlags ComputePassFlags=ERDGPassFlags::Compute)
Definition LumenMeshSDFCulling.cpp:835
FLumenHZBScreenTraceParameters SetupHZBScreenTraceParameters(FRDGBuilder &GraphBuilder, const FViewInfo &View, const FSceneTextures &SceneTextures)
Definition LumenReflectionTracing.cpp:1023
void SetupLumenDiffuseTracingParametersForProbe(float MaxTraceDistance, float OrthoMaxDimension, FLumenIndirectTracingParameters &OutParameters, float DiffuseConeHalfAngle)
Definition LumenDiffuseIndirect.cpp:350
void GetLumenCardTracingParameters(FRDGBuilder &GraphBuilder, const FViewInfo &View, const FLumenSceneData &LumenSceneData, const FLumenSceneFrameTemporaries &FrameTemporaries, bool bSurfaceCacheFeedback, FLumenCardTracingParameters &TracingParameters)
Definition LumenTracingUtils.cpp:29
int32 GLumenIrradianceFieldGather
Definition LumenIrradianceFieldGather.cpp:16
void SetupLumenMeshSDFTracingParameters(FRDGBuilder &GraphBuilder, const FScene *Scene, const FViewInfo &View, FLumenMeshSDFTracingParameters &OutParameters)
Definition LumenMeshSDFCulling.cpp:72
void SetupLumenDiffuseTracingParameters(float MaxTraceDistance, float OrthoMaxDimension, FLumenIndirectTracingParameters &OutParameters)
Definition LumenDiffuseIndirect.cpp:321
void CullForCardTracing(FRDGBuilder &GraphBuilder, const FScene *Scene, const FViewInfo &View, const FLumenSceneFrameTemporaries &FrameTemporaries, const FLumenIndirectTracingParameters &IndirectTracingParameters, FLumenMeshSDFGridParameters &MeshSDFGridParameters, ERDGPassFlags ComputePassFlags=ERDGPassFlags::Compute)
Definition LumenDiffuseIndirect.cpp:383
void CullHeightfieldObjectsForView(FRDGBuilder &GraphBuilder, const FScene *Scene, const FViewInfo &View, const FLumenSceneFrameTemporaries &FrameTemporaries, float MaxMeshSDFInfluenceRadius, float CardTraceEndDistanceFromCamera, FRDGBufferRef &NumCulledObjects, FRDGBufferRef &CulledObjectIndexBuffer)
@ Compute
Definition MetalRHIPrivate.h:232
ERDGPassFlags
Definition RenderGraphDefinitions.h:128
#define SHADER_PARAMETER_RDG_BUFFER_SRV(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1800
#define SHADER_PARAMETER_RDG_TEXTURE(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1752
#define SHADER_PARAMETER_RDG_BUFFER_UAV(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1812
#define BEGIN_SHADER_PARAMETER_STRUCT(StructTypeName, DllStorage)
Definition ShaderParameterMacros.h:1482
#define SHADER_PARAMETER_STRUCT_REF(StructType, MemberName)
Definition ShaderParameterMacros.h:1909
#define SHADER_PARAMETER_STRUCT_INCLUDE(StructType, MemberName)
Definition ShaderParameterMacros.h:1895
#define SHADER_PARAMETER_RDG_UNIFORM_BUFFER(StructType, MemberName)
Definition ShaderParameterMacros.h:1823
#define END_SHADER_PARAMETER_STRUCT()
Definition ShaderParameterMacros.h:1485
#define SHADER_PARAMETER_RDG_TEXTURE_SRV(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1764
#define SHADER_PARAMETER(MemberType, MemberName)
Definition ShaderParameterMacros.h:1684
#define DECLARE_UNIFORM_BUFFER_STRUCT(StructTypeName, PrefixKeywords)
Definition ShaderParameterStructDeclaration.h:10
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition LumenTracingUtils.h:20
bool bCosineDistribution
Definition LumenTracingUtils.h:27
float ConeHalfAngle
Definition LumenTracingUtils.h:23
void GenerateSamples(int32 TargetNumSamples, int32 InPowerOfTwoDivisor, int32 InSeed, bool bInFullSphere=false, bool bInCosineDistribution=false)
Definition LumenDiffuseIndirect.cpp:239
bool bFullSphere
Definition LumenTracingUtils.h:26
int32 Seed
Definition LumenTracingUtils.h:24
int32 PowerOfTwoDivisor
Definition LumenTracingUtils.h:25
void GetSampleDirections(const FVector4f *&OutDirections, int32 &OutNumDirections) const
Definition LumenTracingUtils.h:31
TArray< FVector4f > SampleDirections
Definition LumenTracingUtils.h:22
Definition LumenSceneLighting.h:26
Definition LumenSceneData.h:1002
Definition RenderGraphResources.h:1321
Definition RenderGraphBuilder.h:49
Definition ScenePrivate.h:2875
Definition SceneRendering.h:1970
Definition SceneRendering.h:1132
Definition Array.h:670
Definition IndirectLightRendering.h:13
Definition LumenTracingUtils.h:204
bool IsAllowed()
Definition LumenDiffuseIndirect.cpp:184
bool UseAsyncCompute(const FViewFamilyInfo &ViewFamily, EDiffuseIndirectMethod DiffuseIndirectMethod)
Definition LumenDiffuseIndirect.cpp:189
Definition LumenIrradianceFieldGather.cpp:128
Definition DeferredShadingRenderer.h:40
Definition LumenSceneData.h:895
Definition SceneTextures.h:110
Definition IntPoint.h:25