|
| FAutoConsoleVariableRef | CVarLumenReSTIRDownsampleFactor (TEXT("r.Lumen.ReSTIRGather.DownsampleFactor"), GLumenReSTIRDownsampleFactor, TEXT("Downsample factor from the main viewport to trace rays, create and resample reservoirs at. This is the main performance control for the tracing / resampling part of the algorithm."), ECVF_Scalability|ECVF_RenderThreadSafe) |
| |
| FAutoConsoleVariableRef | CVarLumenReSTIRTemporalResampling (TEXT("r.Lumen.ReSTIRGather.TemporalResampling"), GLumenReSTIRTemporalResampling, TEXT("Whether to do a temporal resampling pass on the reservoirs"), ECVF_Scalability|ECVF_RenderThreadSafe) |
| |
| FAutoConsoleVariableRef | CVarLumenReSTIRTemporalResamplingValidate (TEXT("r.Lumen.ReSTIRGather.TemporalResampling.ValidateEveryNFrames"), GLumenReSTIRValidateTemporalReservoirsEveryNFrames, TEXT("Validate temporal reservoirs by re-tracing their rays and comparing hit positions and radiance every N frames. Used to reduce lag in lighting changes, but introduces noise."), ECVF_Scalability|ECVF_RenderThreadSafe) |
| |
| FAutoConsoleVariableRef | CVarReSTIRTemporalResamplingHistoryDistanceThreshold (TEXT("r.Lumen.ReSTIRGather.TemporalResampling.DistanceThreshold"), GLumenReSTIRTemporalResamplingHistoryDistanceThreshold, TEXT(""), ECVF_Scalability|ECVF_RenderThreadSafe) |
| |
| FAutoConsoleVariableRef | CVarLumenReSTIRTemporalResamplingResetHistory (TEXT("r.Lumen.ReSTIRGather.TemporalResampling.ResetHistory"), GLumenReSTIRTemporalResamplingResetHistory, TEXT(""), ECVF_Scalability|ECVF_RenderThreadSafe) |
| |
| FAutoConsoleVariableRef | CVarLumenReSTIRSpatialResampling (TEXT("r.Lumen.ReSTIRGather.SpatialResampling"), GLumenReSTIRSpatialResampling, TEXT("Whether to use spatial resampling passes on the reservoirs"), ECVF_Scalability|ECVF_RenderThreadSafe) |
| |
| FAutoConsoleVariableRef | CVarLumenNumSpatialResamplingPasses (TEXT("r.Lumen.ReSTIRGather.SpatialResampling.NumPasses"), GLumenReSTIRNumSpatialResamplingPasses, TEXT("The number of spatial resampling passes to do"), ECVF_Scalability|ECVF_RenderThreadSafe) |
| |
| FAutoConsoleVariableRef | CVarLumenReSTIRNumSpatialSamples (TEXT("r.Lumen.ReSTIRGather.SpatialResampling.NumSamples"), GLumenReSTIRNumSpatialSamples, TEXT("The number of spatial samples for each resampling pass."), ECVF_Scalability|ECVF_RenderThreadSafe) |
| |
| FAutoConsoleVariableRef | CVarLumenReSTIRSpatialResamplingKernelRadius (TEXT("r.Lumen.ReSTIRGather.SpatialResampling.KernelRadius"), GLumenReSTIRSpatialResamplingKernelRadius, TEXT("Radius of the spatial resampling kernel as a fraction of the screen."), ECVF_Scalability|ECVF_RenderThreadSafe) |
| |
| FAutoConsoleVariableRef | CVarLumenReSTIRResamplingAngleThreshold (TEXT("r.Lumen.ReSTIRGather.ResamplingAngleThreshold"), GLumenReSTIRResamplingAngleThreshold, TEXT("Largest angle between two reservoirs that will be allowed during reservoir resampling, in degrees"), ECVF_Scalability|ECVF_RenderThreadSafe) |
| |
| FAutoConsoleVariableRef | CVarLumenReSTIRSpatialResamplingDepthErrorThreshold (TEXT("r.Lumen.ReSTIRGather.ResamplingDepthErrorThreshold"), GLumenReSTIRResamplingDepthErrorThreshold, TEXT("Largest depth error between two reservoirs that will be allowed during reservoir resampling"), ECVF_Scalability|ECVF_RenderThreadSafe) |
| |
| FAutoConsoleVariableRef | CVarLumenReSTIRSpatialResamplingOcclusionScreenTraceDistance (TEXT("r.Lumen.ReSTIRGather.SpatialResampling.OcclusionScreenTraceDistance"), GLumenReSTIRSpatialResamplingOcclusionScreenTraceDistance, TEXT("Length of occlusion screen traces used to validate the neighbor's reservoir hit position before reuse, to reduce leaking. As a fraction of the screen size."), ECVF_Scalability|ECVF_RenderThreadSafe) |
| |
| FAutoConsoleVariableRef | CVarLumenReSTIRMaxRayIntensity (TEXT("r.Lumen.ReSTIRGather.MaxRayIntensity"), GLumenReSTIRMaxRayIntensity, TEXT("Clamps the maximum ray lighting intensity (with PreExposure) to reduce fireflies."), ECVF_Scalability|ECVF_RenderThreadSafe) |
| |
| FAutoConsoleVariableRef | CVarLumenReSTIRUpsampleMethod (TEXT("r.Lumen.ReSTIRGather.Upsample.Method"), GLumenReSTIRUpsampleMethod, TEXT("2 - Passthrough for debugging. Also effectively disables the bilateral filter as variance is not computed."), ECVF_Scalability|ECVF_RenderThreadSafe) |
| |
| FAutoConsoleVariableRef | CVarLumenReSTIRUpsampleKernelSize (TEXT("r.Lumen.ReSTIRGather.Upsample.KernelSize"), GLumenReSTIRUpsampleKernelSize, TEXT("Upsample kernel size, in reservoir texels"), ECVF_Scalability|ECVF_RenderThreadSafe) |
| |
| FAutoConsoleVariableRef | CVarLumenReSTIRNumSamples (TEXT("r.Lumen.ReSTIRGather.Upsample.NumSamples"), GLumenReSTIRUpsampleNumSamples, TEXT("Number of reservoir samples to take while upsampling. Only used when r.Lumen.ReSTIRGather.Upsample.Method is set to Spiral Pattern."), ECVF_Scalability|ECVF_RenderThreadSafe) |
| |
| FAutoConsoleVariableRef | CVarLumenReSTIRGatherTemporalFilter (TEXT("r.Lumen.ReSTIRGather.Temporal"), GLumenReSTIRGatherTemporalFilter, TEXT("Whether to use a temporal filter"), ECVF_Scalability|ECVF_RenderThreadSafe) |
| |
| FAutoConsoleVariableRef | CVarLumenReSTIRGatherHistoryDistanceThreshold (TEXT("r.Lumen.ReSTIRGather.Temporal.DistanceThreshold"), GLumenReSTIRGatherHistoryDistanceThreshold, TEXT("Relative distance threshold needed to discard last frame's lighting results. Lower values reduce ghosting from characters when near a wall but increase flickering artifacts."), ECVF_Scalability|ECVF_RenderThreadSafe) |
| |
| FAutoConsoleVariableRef | CVarLumenReSTIRGatherTemporalMaxFramesAccumulated (TEXT("r.Lumen.ReSTIRGather.Temporal.MaxFramesAccumulated"), GLumenReSTIRGatherTemporalMaxFramesAccumulated, TEXT("Lower values cause the temporal filter to propagate lighting changes faster, but also increase flickering from noise."), ECVF_Scalability|ECVF_RenderThreadSafe) |
| |
| FAutoConsoleVariableRef | CVarLumenReSTIRGatherBilateralFilter (TEXT("r.Lumen.ReSTIRGather.BilateralFilter"), GLumenReSTIRGatherBilateralFilter, TEXT("Whether to do a bilateral filter as a last step in denoising Lumen ReSTIRGathers."), ECVF_Scalability|ECVF_RenderThreadSafe) |
| |
| FAutoConsoleVariableRef | CVarLumenReSTIRGatherBilateralFilterSpatialKernelRadius (TEXT("r.Lumen.ReSTIRGather.BilateralFilter.SpatialKernelRadius"), GLumenReSTIRGatherBilateralFilterSpatialKernelRadius, TEXT("Spatial kernel radius, as a fraction of the viewport size"), ECVF_Scalability|ECVF_RenderThreadSafe) |
| |
| FAutoConsoleVariableRef | CVarLumenReSTIRGatherBilateralFilterNumSamples (TEXT("r.Lumen.ReSTIRGather.BilateralFilter.NumSamples"), GLumenReSTIRGatherBilateralFilterNumSamples, TEXT("Number of bilateral filter samples."), ECVF_Scalability|ECVF_RenderThreadSafe) |
| |
| FAutoConsoleVariableRef | CVarLumenReSTIRGatherBilateralFilterDepthWeightScale (TEXT("r.Lumen.ReSTIRGather.BilateralFilter.DepthWeightScale"), GLumenReSTIRGatherBilateralFilterDepthWeightScale, TEXT("Scales the depth weight of the bilateral filter"), ECVF_Scalability|ECVF_RenderThreadSafe) |
| |
| FAutoConsoleVariableRef | CVarLumenReSTIRGatherBilateralFilterNormalAngleThresholdScale (TEXT("r.Lumen.ReSTIRGather.BilateralFilter.NormalAngleThresholdScale"), GLumenReSTIRGatherBilateralFilterNormalAngleThresholdScale, TEXT("Scales the Normal angle threshold of the bilateral filter"), ECVF_Scalability|ECVF_RenderThreadSafe) |
| |
| FAutoConsoleVariableRef | CVarLumenReSTIRGatherBilateralFilterStrongBlurVarianceThreshold (TEXT("r.Lumen.ReSTIRGather.BilateralFilter.StrongBlurVarianceThreshold"), GLumenReSTIRGatherBilateralFilterStrongBlurVarianceThreshold, TEXT("Pixels whose variance from the spatial resolve filter are higher than this value get a stronger bilateral blur."), ECVF_Scalability|ECVF_RenderThreadSafe) |
| |
| FAutoConsoleVariableRef | GVarLumenReSTIRGatherShortRangeAO (TEXT("r.Lumen.ReSTIRGather.ShortRangeAO"), GLumenReSTIRGatherShortRangeAmbientOcclusion, TEXT("Whether to compute a short range, full resolution AO to add high frequency occlusion (contact shadows) which ReSTIR GI lacks due to spatial filtering."), ECVF_Scalability|ECVF_RenderThreadSafe) |
| |
| FAutoConsoleVariableRef | CVarLumenReSTIRGatherShortRangeAOMaxScreenTraceFraction (TEXT("r.Lumen.ReSTIRGather.ShortRangeAO.MaxScreenTraceFraction"), GLumenReSTIRGatherShortRangeAOMaxScreenTraceFraction, TEXT("Short range AO tracing distance, as a fraction of the screen size."), ECVF_Scalability|ECVF_RenderThreadSafe) |
| |
| int32 | LumenReSTIRGather::GetScreenDownsampleFactor (const FViewInfo &View) |
| |
| bool | DoesPlatformSupportLumenReSTIRGather (EShaderPlatform Platform) |
| |
| bool | Lumen::UseReSTIRGather (const FSceneViewFamily &ViewFamily, EShaderPlatform ShaderPlatform) |
| |
| | IMPLEMENT_GLOBAL_SHADER (FTemporalResamplingCS, "/Engine/Private/Lumen/LumenReSTIRGather.usf", "TemporalResamplingCS", SF_Compute) |
| |
| | IMPLEMENT_GLOBAL_SHADER (FClearTemporalHistoryCS, "/Engine/Private/Lumen/LumenReSTIRGather.usf", "ClearTemporalHistoryCS", SF_Compute) |
| |
| | IMPLEMENT_GLOBAL_SHADER (FSpatialResamplingCS, "/Engine/Private/Lumen/LumenReSTIRGather.usf", "SpatialResamplingCS", SF_Compute) |
| |
| | IMPLEMENT_GLOBAL_SHADER (FUpsampleAndIntegrateCS, "/Engine/Private/Lumen/LumenReSTIRGather.usf", "UpsampleAndIntegrateCS", SF_Compute) |
| |
| | IMPLEMENT_GLOBAL_SHADER (FTemporalAccumulationCS, "/Engine/Private/Lumen/LumenReSTIRGather.usf", "TemporalAccumulationCS", SF_Compute) |
| |
| | IMPLEMENT_GLOBAL_SHADER (FBilateralFilterCS, "/Engine/Private/Lumen/LumenReSTIRGather.usf", "BilateralFilterCS", SF_Compute) |
| |
| void | DispatchTemporalAccumulation (FRDGBuilder &GraphBuilder, const FViewInfo &View, const FSceneTextures &SceneTextures, FLumenSceneFrameTemporaries &FrameTemporaries, bool bPropagateGlobalLightingChange, bool bUseBilaterialFilter, FRDGTextureRef &DiffuseIndirect, FRDGTextureRef &RoughSpecularIndirect, FRDGTextureRef &ResolveVariance, ERDGPassFlags ComputePassFlags) |
| |
| FReservoirTextures | AllocateReservoirTextures (FRDGBuilder &GraphBuilder, FLumenSceneFrameTemporaries &FrameTemporaries, FIntPoint ReservoirBufferSize, FIntPoint ReservoirViewExtent) |
| |
| FReservoirUAVs | CreateReservoirUAVs (FRDGBuilder &GraphBuilder, const FReservoirTextures &Textures) |
| |