// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "Lumen/LumenRadianceCache.h" #include "Lumen/LumenViewState.h" namespace LumenRadianceCache { // Must match *.usf const int32 TRACE_TILE_SIZE_2D = 8; const int32 TRACE_TILE_ATLAS_STRITE_IN_TILES = 512; class FRadianceCacheSetup { public: TArray LastFrameClipmaps; FRDGTextureRef DepthProbeAtlasTexture; FRDGTextureRef FinalIrradianceAtlas; FRDGTextureRef ProbeOcclusionAtlas; FRDGTextureRef FinalRadianceAtlas; FRDGTextureRef FinalSkyVisibilityAtlas; FRDGTextureRef RadianceProbeAtlasTextureSource; FRDGTextureRef SkyVisibilityProbeAtlasTextureSource; bool bPersistentCache; }; void RenderLumenHardwareRayTracingRadianceCache( FRDGBuilder& GraphBuilder, const FScene* Scene, const FLumenSceneFrameTemporaries& FrameTemporaries, const TInlineArray& InputArray, TInlineArray& OutputArray, const TInlineArray& SetupOutputArray, const TInlineArray& ProbeTraceTileAllocatorArray, const TInlineArray& ProbeTraceTileDataArray, const TInlineArray& ProbeTraceDataArray, const TInlineArray& HardwareRayTracingRayAllocatorBufferArray, const TInlineArray& TraceProbesIndirectArgsArray, ERDGPassFlags ComputePassFlags); void RenderLumenHardwareRayTracingRadianceCache_REMOVE( FRDGBuilder& GraphBuilder, const FScene* Scene, const FSceneTextureParameters& SceneTextures, const FViewInfo& View, const FLumenCardTracingParameters& TracingParameters, const LumenRadianceCache::FRadianceCacheInterpolationParameters& RadianceCacheParameters, FRadianceCacheConfiguration Configuration, int32 MaxNumProbes, int32 MaxProbeTraceTileResolution, FRDGBufferRef ProbeTraceData, FRDGBufferRef ProbeTraceTileData, FRDGBufferRef ProbeTraceTileAllocator, FRDGBufferRef TraceProbesIndirectArgs, FRDGBufferRef HardwareRayTracingRayAllocatorBuffer, FRDGBufferRef RadianceCacheHardwareRayTracingIndirectArgs, FRDGTextureUAVRef RadianceProbeAtlasTextureUAV, FRDGTextureUAVRef DepthProbeTextureUAV, ERDGPassFlags ComputePassFlags); };