UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IScreenSpaceDenoiser Class Referenceabstract

#include <ScreenSpaceDenoise.h>

+ Inheritance diagram for IScreenSpaceDenoiser:

Classes

struct  FAmbientOcclusionRayTracingConfig
 
struct  FReflectionsRayTracingConfig
 
struct  FShadowRayTracingConfig
 
struct  FShadowVisibilityParameters
 

Public Types

enum class  EMode { Disabled , DefaultDenoiser , ThirdPartyDenoiser }
 
enum class  EShadowRequirements { Bailout , PenumbraAndAvgOccluder , PenumbraAndClosestOccluder }
 

Public Member Functions

virtual ~IScreenSpaceDenoiser ()
 
virtual const TCHARGetDebugName () const =0
 
virtual EShadowRequirements GetShadowRequirements (const FViewInfo &View, const FLightSceneInfo &LightSceneInfo, const FShadowRayTracingConfig &RayTracingConfig) const =0
 
virtual void DenoiseShadowVisibilityMasks (FRDGBuilder &GraphBuilder, const FViewInfo &View, FPreviousViewInfo *PreviousViewInfos, const FSceneTextureParameters &SceneTextures, const TStaticArray< FShadowVisibilityParameters, IScreenSpaceDenoiser::kMaxBatchSize > &InputParameters, const int32 InputParameterCount, TStaticArray< FShadowVisibilityOutputs, IScreenSpaceDenoiser::kMaxBatchSize > &Outputs) const =0
 
virtual FPolychromaticPenumbraOutputs DenoisePolychromaticPenumbraHarmonics (FRDGBuilder &GraphBuilder, const FViewInfo &View, FPreviousViewInfo *PreviousViewInfos, const FSceneTextureParameters &SceneTextures, const FPolychromaticPenumbraHarmonics &Inputs) const =0
 
virtual FReflectionsOutputs DenoiseReflections (FRDGBuilder &GraphBuilder, const FViewInfo &View, FPreviousViewInfo *PreviousViewInfos, const FSceneTextureParameters &SceneTextures, const FReflectionsInputs &ReflectionInputs, const FReflectionsRayTracingConfig RayTracingConfig) const =0
 
virtual FReflectionsOutputs DenoiseWaterReflections (FRDGBuilder &GraphBuilder, const FViewInfo &View, FPreviousViewInfo *PreviousViewInfos, const FSceneTextureParameters &SceneTextures, const FReflectionsInputs &ReflectionInputs, const FReflectionsRayTracingConfig RayTracingConfig) const =0
 
virtual FAmbientOcclusionOutputs DenoiseAmbientOcclusion (FRDGBuilder &GraphBuilder, const FViewInfo &View, FPreviousViewInfo *PreviousViewInfos, const FSceneTextureParameters &SceneTextures, const FAmbientOcclusionInputs &ReflectionInputs, const FAmbientOcclusionRayTracingConfig RayTracingConfig) const =0
 
virtual FSSDSignalTextures DenoiseDiffuseIndirect (FRDGBuilder &GraphBuilder, const FViewInfo &View, FPreviousViewInfo *PreviousViewInfos, const FSceneTextureParameters &SceneTextures, const FDiffuseIndirectInputs &Inputs, const FAmbientOcclusionRayTracingConfig Config) const =0
 
virtual FDiffuseIndirectOutputs DenoiseSkyLight (FRDGBuilder &GraphBuilder, const FViewInfo &View, FPreviousViewInfo *PreviousViewInfos, const FSceneTextureParameters &SceneTextures, const FDiffuseIndirectInputs &Inputs, const FAmbientOcclusionRayTracingConfig Config) const =0
 
virtual FSSDSignalTextures DenoiseDiffuseIndirectHarmonic (FRDGBuilder &GraphBuilder, const FViewInfo &View, FPreviousViewInfo *PreviousViewInfos, const FSceneTextureParameters &SceneTextures, const FDiffuseIndirectHarmonic &Inputs, const HybridIndirectLighting::FCommonParameters &CommonDiffuseParameters) const =0
 
virtual bool SupportsScreenSpaceDiffuseIndirectDenoiser (EShaderPlatform Platform) const =0
 
virtual FSSDSignalTextures DenoiseScreenSpaceDiffuseIndirect (FRDGBuilder &GraphBuilder, const FViewInfo &View, FPreviousViewInfo *PreviousViewInfos, const FSceneTextureParameters &SceneTextures, const FDiffuseIndirectInputs &Inputs, const FAmbientOcclusionRayTracingConfig Config) const =0
 

Static Public Member Functions

static RENDERER_API FHarmonicTextures CreateHarmonicTextures (FRDGBuilder &GraphBuilder, FIntPoint Extent, const TCHAR *DebugName)
 
static RENDERER_API FHarmonicUAVs CreateUAVs (FRDGBuilder &GraphBuilder, const FHarmonicTextures &Textures)
 
static RENDERER_API FDiffuseIndirectHarmonicUAVs CreateUAVs (FRDGBuilder &GraphBuilder, const FDiffuseIndirectHarmonic &Textures)
 
static RENDERER_API FSSDSignalTextures DenoiseIndirectProbeHierarchy (FRDGBuilder &GraphBuilder, const FViewInfo &View, FPreviousViewInfo *PreviousViewInfos, const FSceneTextureParameters &SceneTextures, const FSSDSignalTextures &InputSignal, FRDGTextureRef CompressedDepthTexture, FRDGTextureRef CompressedShadingModelTexture)
 
static RENDERER_API const IScreenSpaceDenoiserGetDefaultDenoiser ()
 
static RENDERER_API EMode GetDenoiserMode (const TAutoConsoleVariable< int32 > &CVar)
 
static RENDERER_API FDiffuseIndirectOutputs DenoiseSkyLight (FRDGBuilder &GraphBuilder, TConstArrayView< FViewInfo > Views, FPreviousViewInfo *PreviousViewInfos, const FSceneTextureParameters &SceneTextures, const FDiffuseIndirectInputs &Inputs, const FAmbientOcclusionRayTracingConfig Config)
 

Static Public Attributes

static const int32 kMaxBatchSize = 4
 
static constexpr int32 kMultiPolychromaticPenumbraHarmonics = 4
 
static constexpr int32 kHarmonicBordersCount = kMultiPolychromaticPenumbraHarmonics + 1
 
static constexpr int32 kSphericalHarmonicTextureCount = 2
 

Detailed Description

Shader parameter structure use to bind all signal generically. Interface for denoiser to have all hook in the renderer.

Member Enumeration Documentation

◆ EMode

Mode to run denoiser.

Enumerator
Disabled 
DefaultDenoiser 
ThirdPartyDenoiser 

◆ EShadowRequirements

All the inputs of the shadow denoiser. All the outputs of the shadow denoiser may generate. Screen space harmonic decomposition a signal to denoise. All the inputs to denoise polychromatic penumbra of multiple lights. All the outputs when denoising polychromatic penumbra. All the inputs of the reflection denoiser. All the outputs of the reflection denoiser may generate. All the inputs of the AO denoisers. All the outputs of the AO denoiser may generate. All the inputs of the GI denoisers. All the outputs of the GI denoiser may generate. All the inputs and outputs for spherical harmonic denoising. What the shadow ray tracing needs to output

Enumerator
Bailout 
PenumbraAndAvgOccluder 
PenumbraAndClosestOccluder 

Constructor & Destructor Documentation

◆ ~IScreenSpaceDenoiser()

virtual IScreenSpaceDenoiser::~IScreenSpaceDenoiser ( )
inlinevirtual

Member Function Documentation

◆ CreateHarmonicTextures()

IScreenSpaceDenoiser::FHarmonicTextures IScreenSpaceDenoiser::CreateHarmonicTextures ( FRDGBuilder GraphBuilder,
FIntPoint  Extent,
const TCHAR DebugName 
)
static

◆ CreateUAVs() [1/2]

IScreenSpaceDenoiser::FDiffuseIndirectHarmonicUAVs IScreenSpaceDenoiser::CreateUAVs ( FRDGBuilder GraphBuilder,
const FDiffuseIndirectHarmonic Textures 
)
static

◆ CreateUAVs() [2/2]

IScreenSpaceDenoiser::FHarmonicUAVs IScreenSpaceDenoiser::CreateUAVs ( FRDGBuilder GraphBuilder,
const FHarmonicTextures Textures 
)
static

◆ DenoiseAmbientOcclusion()

virtual FAmbientOcclusionOutputs IScreenSpaceDenoiser::DenoiseAmbientOcclusion ( FRDGBuilder GraphBuilder,
const FViewInfo View,
FPreviousViewInfo PreviousViewInfos,
const FSceneTextureParameters SceneTextures,
const FAmbientOcclusionInputs ReflectionInputs,
const FAmbientOcclusionRayTracingConfig  RayTracingConfig 
) const
pure virtual

Entry point to denoise reflections.

Implemented in FDefaultScreenSpaceDenoiser.

◆ DenoiseDiffuseIndirect()

virtual FSSDSignalTextures IScreenSpaceDenoiser::DenoiseDiffuseIndirect ( FRDGBuilder GraphBuilder,
const FViewInfo View,
FPreviousViewInfo PreviousViewInfos,
const FSceneTextureParameters SceneTextures,
const FDiffuseIndirectInputs Inputs,
const FAmbientOcclusionRayTracingConfig  Config 
) const
pure virtual

Entry point to denoise diffuse indirect and AO.

Implemented in FDefaultScreenSpaceDenoiser.

◆ DenoiseDiffuseIndirectHarmonic()

virtual FSSDSignalTextures IScreenSpaceDenoiser::DenoiseDiffuseIndirectHarmonic ( FRDGBuilder GraphBuilder,
const FViewInfo View,
FPreviousViewInfo PreviousViewInfos,
const FSceneTextureParameters SceneTextures,
const FDiffuseIndirectHarmonic Inputs,
const HybridIndirectLighting::FCommonParameters &  CommonDiffuseParameters 
) const
pure virtual

Entry point to denoise spherical harmonic for diffuse indirect.

Implemented in FDefaultScreenSpaceDenoiser.

◆ DenoiseIndirectProbeHierarchy()

FSSDSignalTextures IScreenSpaceDenoiser::DenoiseIndirectProbeHierarchy ( FRDGBuilder GraphBuilder,
const FViewInfo View,
FPreviousViewInfo PreviousViewInfos,
const FSceneTextureParameters SceneTextures,
const FSSDSignalTextures InputSignal,
FRDGTextureRef  CompressedDepthTexture,
FRDGTextureRef  CompressedShadingModelTexture 
)
static

Entry point to denoise diffuse indirect probe hierarchy.

◆ DenoisePolychromaticPenumbraHarmonics()

virtual FPolychromaticPenumbraOutputs IScreenSpaceDenoiser::DenoisePolychromaticPenumbraHarmonics ( FRDGBuilder GraphBuilder,
const FViewInfo View,
FPreviousViewInfo PreviousViewInfos,
const FSceneTextureParameters SceneTextures,
const FPolychromaticPenumbraHarmonics Inputs 
) const
pure virtual

Entry point to denoise polychromatic penumbra of multiple light.

Implemented in FDefaultScreenSpaceDenoiser.

◆ DenoiseReflections()

virtual FReflectionsOutputs IScreenSpaceDenoiser::DenoiseReflections ( FRDGBuilder GraphBuilder,
const FViewInfo View,
FPreviousViewInfo PreviousViewInfos,
const FSceneTextureParameters SceneTextures,
const FReflectionsInputs ReflectionInputs,
const FReflectionsRayTracingConfig  RayTracingConfig 
) const
pure virtual

Entry point to denoise reflections.

Implemented in FDefaultScreenSpaceDenoiser.

◆ DenoiseScreenSpaceDiffuseIndirect()

virtual FSSDSignalTextures IScreenSpaceDenoiser::DenoiseScreenSpaceDiffuseIndirect ( FRDGBuilder GraphBuilder,
const FViewInfo View,
FPreviousViewInfo PreviousViewInfos,
const FSceneTextureParameters SceneTextures,
const FDiffuseIndirectInputs Inputs,
const FAmbientOcclusionRayTracingConfig  Config 
) const
pure virtual

Implemented in FDefaultScreenSpaceDenoiser.

◆ DenoiseShadowVisibilityMasks()

virtual void IScreenSpaceDenoiser::DenoiseShadowVisibilityMasks ( FRDGBuilder GraphBuilder,
const FViewInfo View,
FPreviousViewInfo PreviousViewInfos,
const FSceneTextureParameters SceneTextures,
const TStaticArray< FShadowVisibilityParameters, IScreenSpaceDenoiser::kMaxBatchSize > &  InputParameters,
const int32  InputParameterCount,
TStaticArray< FShadowVisibilityOutputs, IScreenSpaceDenoiser::kMaxBatchSize > &  Outputs 
) const
pure virtual

Entry point to denoise the visibility mask of multiple shadows at the same time.

Implemented in FDefaultScreenSpaceDenoiser.

◆ DenoiseSkyLight() [1/2]

virtual FDiffuseIndirectOutputs IScreenSpaceDenoiser::DenoiseSkyLight ( FRDGBuilder GraphBuilder,
const FViewInfo View,
FPreviousViewInfo PreviousViewInfos,
const FSceneTextureParameters SceneTextures,
const FDiffuseIndirectInputs Inputs,
const FAmbientOcclusionRayTracingConfig  Config 
) const
pure virtual

Entry point to denoise SkyLight diffuse indirect.

Implemented in FDefaultScreenSpaceDenoiser.

◆ DenoiseSkyLight() [2/2]

IScreenSpaceDenoiser::FDiffuseIndirectOutputs IScreenSpaceDenoiser::DenoiseSkyLight ( FRDGBuilder GraphBuilder,
TConstArrayView< FViewInfo Views,
FPreviousViewInfo PreviousViewInfos,
const FSceneTextureParameters SceneTextures,
const FDiffuseIndirectInputs Inputs,
const FAmbientOcclusionRayTracingConfig  Config 
)
static

Variations of API that more efficiently support multiple split screen views.

◆ DenoiseWaterReflections()

virtual FReflectionsOutputs IScreenSpaceDenoiser::DenoiseWaterReflections ( FRDGBuilder GraphBuilder,
const FViewInfo View,
FPreviousViewInfo PreviousViewInfos,
const FSceneTextureParameters SceneTextures,
const FReflectionsInputs ReflectionInputs,
const FReflectionsRayTracingConfig  RayTracingConfig 
) const
pure virtual

Entry point to denoise water reflections.

Implemented in FDefaultScreenSpaceDenoiser.

◆ GetDebugName()

virtual const TCHAR * IScreenSpaceDenoiser::GetDebugName ( ) const
pure virtual

Debug name of the denoiser for draw event.

Implemented in FDefaultScreenSpaceDenoiser.

◆ GetDefaultDenoiser()

const IScreenSpaceDenoiser * IScreenSpaceDenoiser::GetDefaultDenoiser ( )
static

Returns the interface of the default denoiser of the renderer.

◆ GetDenoiserMode()

IScreenSpaceDenoiser::EMode IScreenSpaceDenoiser::GetDenoiserMode ( const TAutoConsoleVariable< int32 > &  CVar)
static

Returns the denoising mode.

◆ GetShadowRequirements()

virtual EShadowRequirements IScreenSpaceDenoiser::GetShadowRequirements ( const FViewInfo View,
const FLightSceneInfo LightSceneInfo,
const FShadowRayTracingConfig RayTracingConfig 
) const
pure virtual

Returns the ray tracing configuration that should be done for denoiser.

Implemented in FDefaultScreenSpaceDenoiser.

◆ SupportsScreenSpaceDiffuseIndirectDenoiser()

virtual bool IScreenSpaceDenoiser::SupportsScreenSpaceDiffuseIndirectDenoiser ( EShaderPlatform  Platform) const
pure virtual

Entry point to denoise SSGI.

Implemented in FDefaultScreenSpaceDenoiser.

Member Data Documentation

◆ kHarmonicBordersCount

constexpr int32 IScreenSpaceDenoiser::kHarmonicBordersCount = kMultiPolychromaticPenumbraHarmonics + 1
staticconstexpr

◆ kMaxBatchSize

const int32 IScreenSpaceDenoiser::kMaxBatchSize = 4
static

Maximum number a denoiser might be able to denoise at the same time.

◆ kMultiPolychromaticPenumbraHarmonics

constexpr int32 IScreenSpaceDenoiser::kMultiPolychromaticPenumbraHarmonics = 4
staticconstexpr

◆ kSphericalHarmonicTextureCount

constexpr int32 IScreenSpaceDenoiser::kSphericalHarmonicTextureCount = 2
staticconstexpr

The documentation for this class was generated from the following files: