UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
LumenSceneLighting.h File Reference
#include "RHIDefinitions.h"
#include "CommonRenderResources.h"
#include "SceneView.h"
#include "SceneRendering.h"
#include "RendererPrivateUtils.h"
#include "Lumen.h"
#include "Lumen/LumenSceneData.h"

Go to the source code of this file.

Classes

class  FLumenCardUpdateContext
 
class  FRasterizeToCardsVS
 
class  FClearLumenCardsPS
 
class  FCopyCardCaptureLightingToAtlasPS
 
struct  FLumenDirectLightingStochasticData
 
struct  FLumenCardTileUpdateContext
 

Namespaces

namespace  Lumen
 
namespace  LumenSceneLighting
 
namespace  LumenSceneDirectLighting
 

Enumerations

enum class  ELumenLightType {
  Directional , Point , Spot , Rect ,
  MAX
}
 
enum class  ELumenDispatchCardTilesIndirectArgsOffset { OneThreadPerCardTile = 0 * sizeof(FRHIDispatchIndirectParameters) , OneGroupPerCardTile = 1 * sizeof(FRHIDispatchIndirectParameters) , Num = 2 }
 

Functions

template<typename VertexShaderType , typename PixelShaderType , typename PassParametersType , typename SetParametersLambdaType >
void DrawQuadsToAtlas (FIntPoint ViewportSize, TShaderRefBase< VertexShaderType, FShaderMapPointerTable > VertexShader, TShaderRefBase< PixelShaderType, FShaderMapPointerTable > PixelShader, const PassParametersType *PassParameters, const FGlobalShaderMap *GlobalShaderMap, FRHIBlendState *BlendState, FRHICommandList &RHICmdList, SetParametersLambdaType &&SetParametersLambda, FRDGBufferRef DrawIndirectArgs, uint32 DrawIndirectArgOffset)
 
void Lumen::SetDirectLightingDeferredLightUniformBuffer (const FViewInfo &View, const FLightSceneInfo *LightSceneInfo, TUniformBufferBinding< FDeferredLightUniformStruct > &UniformBuffer)
 
void Lumen::CombineLumenSceneLighting (FScene *Scene, const FViewInfo &View, FRDGBuilder &GraphBuilder, const FLumenSceneFrameTemporaries &FrameTemporaries, const FLumenCardUpdateContext &CardUpdateContext, const FLumenCardTileUpdateContext &CardTileUpdateContext, ERDGPassFlags ComputePassFlags)
 
void Lumen::BuildCardUpdateContext (FRDGBuilder &GraphBuilder, const FLumenSceneData &LumenSceneData, const TArray< FViewInfo > &Views, const FLumenSceneFrameTemporaries &FrameTemporaries, bool bIndirectLightingHistoryValid, FLumenCardUpdateContext &DirectLightingCardUpdateContext, FLumenCardUpdateContext &IndirectLightingCardUpdateContext, ERDGPassFlags ComputePassFlags)
 
void Lumen::SpliceCardPagesIntoTiles (FRDGBuilder &GraphBuilder, const FGlobalShaderMap *GloablShaderMap, const FLumenCardUpdateContext &CardUpdateContext, const TRDGUniformBufferRef< FLumenCardScene > &LumenCardSceneUniformBuffer, FLumenCardTileUpdateContext &OutCardTileUpdateContext, ERDGPassFlags ComputePassFlags)
 
EPixelFormat Lumen::GetDirectLightingAtlasFormat ()
 
EPixelFormat Lumen::GetIndirectLightingAtlasFormat ()
 
EPixelFormat Lumen::GetNumFramesAccumulatedAtlasFormat ()
 
bool LumenSceneLighting::UseAsyncCompute (const FViewFamilyInfo &ViewFamily)
 
float LumenSceneDirectLighting::GetMeshSDFShadowRayBias ()
 
float LumenSceneDirectLighting::GetHeightfieldShadowRayBias ()
 
float LumenSceneDirectLighting::GetGlobalSDFShadowRayBias ()
 
float LumenSceneDirectLighting::GetHardwareRayTracingShadowRayBias ()
 
bool LumenSceneDirectLighting::UseStochasticLighting (const FSceneViewFamily &ViewFamily)
 
bool LumenSceneDirectLighting::UseLightTilesPerLightType ()
 
void TraceLumenHardwareRayTracedDirectLightingShadows (FRDGBuilder &GraphBuilder, const FScene *Scene, const FViewInfo &View, int32 ViewIndex, const FLumenSceneFrameTemporaries &FrameTemporaries, const FLumenDirectLightingStochasticData &StochasticData, const LumenSceneDirectLighting::FLightDataParameters &LumenLightData, FRDGBufferRef ShadowTraceIndirectArgs, FRDGBufferRef ShadowTraceAllocator, FRDGBufferRef ShadowTraces, FRDGBufferRef LightTileAllocator, FRDGBufferRef LightTiles, FRDGBufferUAVRef ShadowMaskTilesUAV, ERDGPassFlags ComputePassFlags)
 
FRDGBufferSRVRef TraceLumenHardwareRayTracedDebug (FRDGBuilder &GraphBuilder, const FScene *Scene, const FViewInfo &View, int32 ViewIndex, const FLumenSceneFrameTemporaries &FrameTemporaries, ERDGPassFlags ComputePassFlags)
 

Variables

constexpr uint32 LumenSceneDirectLighting::NumBatchableLightTypes = 3
 

Enumeration Type Documentation

◆ ELumenDispatchCardTilesIndirectArgsOffset

Enumerator
OneThreadPerCardTile 
OneGroupPerCardTile 
Num 

◆ ELumenLightType

enum class ELumenLightType
strong
Enumerator
Directional 
Point 
Spot 
Rect 
MAX 

Function Documentation

◆ DrawQuadsToAtlas()

void DrawQuadsToAtlas ( FIntPoint  ViewportSize,
TShaderRefBase< VertexShaderType, FShaderMapPointerTable VertexShader,
TShaderRefBase< PixelShaderType, FShaderMapPointerTable PixelShader,
const PassParametersType PassParameters,
const FGlobalShaderMap GlobalShaderMap,
FRHIBlendState BlendState,
FRHICommandList RHICmdList,
SetParametersLambdaType &&  SetParametersLambda,
FRDGBufferRef  DrawIndirectArgs,
uint32  DrawIndirectArgOffset 
)

◆ TraceLumenHardwareRayTracedDebug()

FRDGBufferSRVRef TraceLumenHardwareRayTracedDebug ( FRDGBuilder GraphBuilder,
const FScene Scene,
const FViewInfo View,
int32  ViewIndex,
const FLumenSceneFrameTemporaries FrameTemporaries,
ERDGPassFlags  ComputePassFlags 
)

◆ TraceLumenHardwareRayTracedDirectLightingShadows()

void TraceLumenHardwareRayTracedDirectLightingShadows ( FRDGBuilder GraphBuilder,
const FScene Scene,
const FViewInfo View,
int32  ViewIndex,
const FLumenSceneFrameTemporaries FrameTemporaries,
const FLumenDirectLightingStochasticData StochasticData,
const LumenSceneDirectLighting::FLightDataParameters LumenLightData,
FRDGBufferRef  ShadowTraceIndirectArgs,
FRDGBufferRef  ShadowTraceAllocator,
FRDGBufferRef  ShadowTraces,
FRDGBufferRef  LightTileAllocator,
FRDGBufferRef  LightTiles,
FRDGBufferUAVRef  ShadowMaskTilesUAV,
ERDGPassFlags  ComputePassFlags 
)