Files
UnrealEngine/Engine/Source/Runtime/Renderer/Private/Lumen/LumenRadianceCacheInternal.h
2025-05-18 13:04:45 +08:00

61 lines
2.2 KiB
C++

// 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<FRadianceCacheClipmap> 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<FUpdateInputs>& InputArray,
TInlineArray<FUpdateOutputs>& OutputArray,
const TInlineArray<FRadianceCacheSetup>& SetupOutputArray,
const TInlineArray<FRDGBufferRef>& ProbeTraceTileAllocatorArray,
const TInlineArray<FRDGBufferRef>& ProbeTraceTileDataArray,
const TInlineArray<FRDGBufferRef>& ProbeTraceDataArray,
const TInlineArray<FRDGBufferRef>& HardwareRayTracingRayAllocatorBufferArray,
const TInlineArray<FRDGBufferRef>& 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);
};