UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FDeferredShadingSceneRenderer Class Reference

#include <DeferredShadingRenderer.h>

+ Inheritance diagram for FDeferredShadingSceneRenderer:

Public Member Functions

 FDeferredShadingSceneRenderer (const FSceneViewFamily *InViewFamily, FHitProxyConsumer *HitProxyConsumer)
 
void CommitFinalPipelineState ()
 
void CommitIndirectLightingState ()
 
void ClearView (FRHICommandListImmediate &RHICmdList)
 
void RenderPrePassView (FRHICommandList &RHICmdList, const FViewInfo &View)
 
bool RenderPrePassViewParallel (const FViewInfo &View, FRHICommandListImmediate &ParentCmdList, TFunctionRef< void()> AfterTasksAreStarted, bool bDoPrePre)
 
void DebugLightGrid (FRDGBuilder &GraphBuilder, FSceneTextures &SceneTextures, bool bNeedLightGrid)
 
FSingleLayerWaterPrePassResultRenderSingleLayerWaterDepthPrepass (FRDGBuilder &GraphBuilder, TArrayView< FViewInfo > InViews, const FSceneTextures &SceneTextures, ESingleLayerWaterPrepassLocation Location, TConstArrayView< Nanite::FRasterResults > NaniteRasterResults)
 
void RenderSingleLayerWater (FRDGBuilder &GraphBuilder, TArrayView< FViewInfo > InViews, const FSceneTextures &SceneTextures, const FSingleLayerWaterPrePassResult *SingleLayerWaterPrePassResult, bool bShouldRenderVolumetricCloud, FSceneWithoutWaterTextures &SceneWithoutWaterTextures, FLumenSceneFrameTemporaries &LumenFrameTemporaries, bool bIsCameraUnderWater)
 
void RenderSingleLayerWaterInner (FRDGBuilder &GraphBuilder, TArrayView< FViewInfo > InViews, const FSceneTextures &SceneTextures, const FSceneWithoutWaterTextures &SceneWithoutWaterTextures, const FSingleLayerWaterPrePassResult *SingleLayerWaterPrePassResult)
 
void RenderSingleLayerWaterReflections (FRDGBuilder &GraphBuilder, TArrayView< FViewInfo > InViews, const FSceneTextures &SceneTextures, const FSceneWithoutWaterTextures &SceneWithoutWaterTextures, const FSingleLayerWaterPrePassResult *SingleLayerWaterPrePassResult, FLumenSceneFrameTemporaries &LumenFrameTemporaries)
 
void RenderOcclusion (FRDGBuilder &GraphBuilder, const FSceneTextures &SceneTextures, bool bIsOcclusionTesting, const FBuildHZBAsyncComputeParams *BuildHZBAsyncComputeParams, Froxel::FRenderer &FroxelRenderer)
 
bool RenderHzb (FRDGBuilder &GraphBuilder, FRDGTextureRef SceneDepthTexture, const FBuildHZBAsyncComputeParams *AsyncComputeParams, Froxel::FRenderer &FroxelRenderer)
 
virtual void Render (FRDGBuilder &GraphBuilder, const FSceneRenderUpdateInputs *SceneUpdateInputs) override
 
virtual void RenderHitProxies (FRDGBuilder &GraphBuilder, const FSceneRenderUpdateInputs *SceneUpdateInputs) override
 
virtual bool ShouldRenderVelocities () const override
 
virtual bool ShouldRenderPrePass () const override
 
virtual bool ShouldRenderNanite () const override
 
void RenderVisualizeTexturePool (FRHICommandListImmediate &RHICmdList)
 
- Public Member Functions inherited from FSceneRenderer
bool IsHeadLink () const
 
template<typename LambdaType >
void EnumerateLinkedViews (LambdaType &&Lambda, const FSceneView *ViewToSkip=nullptr)
 
template<typename LambdaType >
void EnumerateLinkedViewFamilies (LambdaType &&Lambda, const FSceneViewFamily *ViewFamilyToSkip=nullptr)
 
 FSceneRenderer (const FSceneViewFamily *InViewFamily, FHitProxyConsumer *HitProxyConsumer)
 
virtual ~FSceneRenderer ()
 
virtual UE::Renderer::Private::IShadowInvalidatingInstancesGetShadowInvalidatingInstancesInterface (const FSceneView *SceneView) override
 
virtual FViewFamilyInfoGetViewFamily () override
 
virtual bool AllowSimpleLights () const
 
void PrepareViewRectsForRendering ()
 
void DoCrossGPUTransfers (FRDGBuilder &GraphBuilder, FRDGTextureRef ViewFamilyTexture, TArrayView< FViewInfo > InViews, bool bCrossGPUTransferFencesDefer, FRHIGPUMask RenderTargetGPUMask, class FCrossGPUTransfersDeferred *TransfersDeferred)
 
void FlushCrossGPUTransfers (FRDGBuilder &GraphBuilder)
 
void FlushCrossGPUFences (FRDGBuilder &GraphBuilder)
 
bool DoOcclusionQueries () const
 
void FenceOcclusionTests (FRDGBuilder &GraphBuilder)
 
void WaitOcclusionTests (FRHICommandListImmediate &RHICmdList)
 
bool ShouldDumpMeshDrawCommandInstancingStats () const
 
void RenderSkyAtmosphereInternal (FRDGBuilder &GraphBuilder, const FSceneTextureShaderParameters &SceneTextures, FSkyAtmosphereRenderContext &SkyRenderContext)
 
void RenderVolumetricCloudsInternal (FRDGBuilder &GraphBuilder, FCloudRenderContext &CloudRC, FInstanceCullingManager &InstanceCullingManager, const FIntPoint &CloudViewportSize)
 
FGPUSceneDynamicContextGetGPUSceneDynamicContext ()
 
void VoxelizeFogVolumePrimitives (FRDGBuilder &GraphBuilder, const FViewInfo &View, const FVolumetricFogIntegrationParameterData &IntegrationData, FIntVector VolumetricFogGridSize, FVector GridZParams, float VolumetricFogDistance, bool bVoxelizeEmissive)
 
void RenderLightFunctionForVolumetricFog (FRDGBuilder &GraphBuilder, FViewInfo &View, const FSceneTextures &SceneTextures, FIntVector VolumetricFogGridSize, float VolumetricFogMaxDistance, FLightSceneInfo *DirectionalLightSceneInfo, FMatrix44f &OutLightFunctionTranslatedWorldToShadow, FRDGTexture *&OutLightFunctionTexture)
 
void RenderLocalLightsForVolumetricFog (FRDGBuilder &GraphBuilder, FViewInfo &View, int32 ViewIndex, bool bUseTemporalReprojection, const struct FVolumetricFogIntegrationParameterData &IntegrationData, const FExponentialHeightFogSceneInfo &FogInfo, FIntVector VolumetricFogGridSize, FVector GridZParams, const FRDGTextureDesc &VolumeDesc, FRDGTextureRef ConservativeDepthTexture, TConstArrayView< const FLightSceneInfo * > LightsToInject, TConstArrayView< const FLightSceneInfo * > RayTracedLightsToInject, FRDGTexture *&OutLocalShadowedLightScattering)
 
void RenderCapsuleShadowsForMovableSkylight (FRDGBuilder &GraphBuilder, const FViewInfo &View, FRDGTextureRef &BentNormalOutput) const
 
void RenderDistanceFieldAOScreenGrid (FRDGBuilder &GraphBuilder, const FSceneTextures &SceneTextures, const FViewInfo &View, const FDistanceFieldCulledObjectBufferParameters &CulledObjectBufferParameters, FRDGBufferRef ObjectTilesIndirectArguments, const FTileIntersectionParameters &TileIntersectionParameters, const FDistanceFieldAOParameters &Parameters, FRDGTextureRef DistanceFieldNormal, FRDGTextureRef &OutDynamicBentNormalAO)
 
void RenderDistanceFieldLighting (FRDGBuilder &GraphBuilder, const FSceneTextures &SceneTextures, const class FDistanceFieldAOParameters &Parameters, TArray< FRDGTextureRef > &OutDynamicBentNormalAOTextures, bool bModulateToSceneColor, bool bVisualizeAmbientOcclusion, bool bModulateToScreenSpaceAO=false)
 
void SetupVolumetricFog ()
 
bool ShouldRenderVolumetricFog () const
 
void ComputeVolumetricFog (FRDGBuilder &GraphBuilder, const FSceneTextures &SceneTextures)
 
FORCEINLINE FSceneTexturesGetActiveSceneTextures ()
 
FORCEINLINE FSceneTexturesConfigGetActiveSceneTexturesConfig ()
 
FORCEINLINE const FSceneTexturesGetActiveSceneTextures () const
 
FORCEINLINE const FSceneTexturesConfigGetActiveSceneTexturesConfig () const
 
 DECLARE_MULTICAST_DELEGATE_OneParam (FSceneOnScreenMessagesDelegate, FScreenMessageWriter &)
 
TConstStridedView< FSceneViewGetSceneViews () const
 
bool IsRenderingStereo () const
 
- Public Member Functions inherited from FSceneRendererBase
 FSceneRendererBase ()
 
 FSceneRendererBase (FScene &InScene)
 
FSceneGetScene () final override
 
const FSceneUniformBufferGetSceneUniforms () const final override
 
FSceneUniformBufferGetSceneUniforms () final override
 
TRDGUniformBufferRef< FSceneUniformParameters > GetSceneUniformBufferRef (FRDGBuilder &GraphBuilder) override final
 
void InitSceneExtensionsRenderers (const FEngineShowFlags &EngineShowFlags, bool bValidateCallbacks=false)
 
FSceneExtensionsRenderersGetSceneExtensionsRenderers ()
 
const FSceneExtensionsRenderersGetSceneExtensionsRenderers () const
 
- Public Member Functions inherited from ISceneRenderer
virtual ~ISceneRenderer ()=default
 

Static Public Member Functions

static void RenderBasePass (FDeferredShadingSceneRenderer &Renderer, FRDGBuilder &GraphBuilder, TArrayView< FViewInfo > InViews, FSceneTextures &SceneTextures, const FDBufferTextures &DBufferTextures, FExclusiveDepthStencil::Type BasePassDepthStencilAccess, FRDGTextureRef ForwardShadowMaskTexture, FInstanceCullingManager &InstanceCullingManager, bool bNaniteEnabled, struct FNaniteShadingCommands &NaniteBasePassShadingCommands, const TArrayView< Nanite::FRasterResults > &NaniteRasterResults)
 
static void RenderBasePassInternal (FDeferredShadingSceneRenderer &Renderer, FRDGBuilder &GraphBuilder, TArrayView< FViewInfo > InViews, const FSceneTextures &SceneTextures, const FRenderTargetBindingSlots &BasePassRenderTargets, FExclusiveDepthStencil::Type BasePassDepthStencilAccess, const FForwardBasePassTextures &ForwardBasePassTextures, const FDBufferTextures &DBufferTextures, bool bParallelBasePass, bool bRenderLightmapDensity, FInstanceCullingManager &InstanceCullingManager, bool bNaniteEnabled, struct FNaniteShadingCommands &NaniteBasePassShadingCommands, const TArrayView< Nanite::FRasterResults > &NaniteRasterResults)
 
static void RenderAnisotropyPass (FRDGBuilder &GraphBuilder, TArrayView< FViewInfo > InViews, FSceneTextures &SceneTextures, const FScene *Scene, bool bDoParallelPass)
 
- Static Public Member Functions inherited from FSceneRenderer
static void PreallocateCrossGPUFences (TConstArrayView< FSceneRenderer * > SceneRenderers)
 
static bool ShouldCompositeEditorPrimitives (const FViewInfo &View)
 
static FIntPoint ApplyResolutionFraction (const FSceneViewFamily &ViewFamily, const FIntPoint &UnscaledViewSize, float ResolutionFraction)
 
static FIntPoint QuantizeViewRectMin (const FIntPoint &ViewRectMin)
 
static FIntPoint GetDesiredInternalBufferSize (const FSceneViewFamily &ViewFamily)
 
static ISceneViewFamilyScreenPercentageForkScreenPercentageInterface (const ISceneViewFamilyScreenPercentage *ScreenPercentageInterface, FSceneViewFamily &ForkedViewFamily)
 
static int32 GetRefractionQuality (const FSceneViewFamily &ViewFamily)
 
static void SetStereoViewport (FRHICommandList &RHICmdList, const FViewInfo &View, float ViewportScale=1.0f)
 
static void GetLightNameForDrawEvent (const FLightSceneProxy *LightProxy, FString &LightNameWithLevel)
 
- Static Public Member Functions inherited from FSceneRendererBase
static void SetActiveInstance (FRDGBuilder &GraphBuilder, FSceneRendererBase *SceneRenderer)
 
static FSceneRendererBaseGetActiveInstance (FRDGBuilder &GraphBuilder)
 

Public Attributes

FLumenCardRenderer LumenCardRenderer
 
- Public Attributes inherited from FSceneRenderer
FDepthPassInfo DepthPass
 
FSceneRenderingBulkObjectAllocator Allocator
 
FViewFamilyInfo ViewFamily
 
TArray< FCustomRenderPassInfoCustomRenderPassInfos
 
TArray< FViewInfo * > AllViews
 
struct { 
 
   FSceneRenderer *   Head = nullptr 
 
   FSceneRenderer *   Next = nullptr 
 
Link 
 
DynamicRenderScaling::TMap< floatDynamicResolutionFractions
 
DynamicRenderScaling::TMap< floatDynamicResolutionUpperBounds
 
TArray< FVisibleLightInfo, SceneRenderingAllocatorVisibleLightInfos
 
UE::FMutex DispatchedShadowDepthPassesMutex
 
TArray< FParallelMeshDrawCommandPass *, SceneRenderingAllocatorDispatchedShadowDepthPasses
 
FSortedShadowMaps SortedShadowsForShadowDepthPass
 
FVirtualShadowMapArray VirtualShadowMapArray
 
LightFunctionAtlas::FLightFunctionAtlas LightFunctionAtlas
 
bool bHasRequestedToggleFreeze
 
bool bUsedPrecomputedVisibility
 
TArray< FString, SceneRenderingAllocatorUsedWholeScenePointLightNames
 
ERHIFeatureLevel::Type FeatureLevel
 
EShaderPlatform ShaderPlatform
 
bool bGPUMasksComputed
 
FRHIGPUMask RenderTargetGPUMask
 
FSceneOnScreenMessagesDelegate OnGetOnScreenMessages
 
- Public Attributes inherited from FSceneRendererBase
FSceneScene = nullptr
 
TArray< FViewInfoViews
 

Additional Inherited Members

- Static Public Attributes inherited from FSceneRenderer
static FOcclusionSubmittedFenceState OcclusionSubmittedFence [FOcclusionQueryHelpers::MaxBufferedOcclusionFrames]
 
static FGlobalBoundShaderState OcclusionTestBoundShaderState
 
static TGlobalResource< FGlobalDynamicReadBufferDynamicReadBufferForInitViews
 
static TGlobalResource< FGlobalDynamicReadBufferDynamicReadBufferForRayTracing
 
static TGlobalResource< FGlobalDynamicReadBufferDynamicReadBufferForShadows
 
- Protected Types inherited from FSceneRenderer
enum class  ERendererOutput { DepthPrepassOnly , FinalSceneColor }
 
- Protected Member Functions inherited from FSceneRenderer
ERendererOutput GetRendererOutput () const
 
FDynamicShadowsTaskDataBeginInitDynamicShadows (FRDGBuilder &GraphBuilder, bool bRunningEarly, IVisibilityTaskData *VisibilityTaskData, FInstanceCullingManager &InstanceCullingManager)
 
void FinishInitDynamicShadows (FRDGBuilder &GraphBuilder, FDynamicShadowsTaskData *TaskData)
 
void FinishDynamicShadowMeshPassSetup (FRDGBuilder &GraphBuilder, FDynamicShadowsTaskData *TaskData)
 
FDynamicShadowsTaskDataInitDynamicShadows (FRDGBuilder &GraphBuilder, FInstanceCullingManager &InstanceCullingManager)
 
void CreateDynamicShadows (FDynamicShadowsTaskData &TaskData)
 
void FilterDynamicShadows (FDynamicShadowsTaskData &TaskData)
 
void SetupMeshPass (FViewInfo &View, FExclusiveDepthStencil::Type BasePassDepthStencilAccess, FViewCommands &ViewCommands, FInstanceCullingManager &InstanceCullingManager)
 
void RenderShadowProjections (FRDGBuilder &GraphBuilder, FRDGTextureRef OutputTexture, const FMinimalSceneTextures &SceneTextures, const FLightSceneProxy *LightSceneProxy, TArrayView< const FProjectedShadowInfo *const > Shadows, bool bSubPixelShadow, bool bProjectingForForwardShading)
 
void RenderShadowProjections (FRDGBuilder &GraphBuilder, const FMinimalSceneTextures &SceneTextures, FRDGTextureRef ScreenShadowMaskTexture, FRDGTextureRef ScreenShadowMaskSubPixelTexture, const FLightSceneInfo *LightSceneInfo, bool bProjectingForForwardShading)
 
void BeginAsyncDistanceFieldShadowProjections (FRDGBuilder &GraphBuilder, const FMinimalSceneTextures &SceneTextures, const FDynamicShadowsTaskData *TaskData) const
 
TRefCountPtr< FProjectedShadowInfoGetCachedPreshadow (const FLightPrimitiveInteraction *InParentInteraction, const FProjectedShadowInitializer &Initializer, const FBoxSphereBounds &Bounds, uint32 InResolutionX)
 
void CreatePerObjectProjectedShadow (FDynamicShadowsTaskData &TaskData, FLightPrimitiveInteraction *Interaction, bool bCreateTranslucentObjectShadow, bool bCreateInsetObjectShadow, const TArray< FProjectedShadowInfo *, SceneRenderingAllocator > &ViewDependentWholeSceneShadows, TArray< FProjectedShadowInfo *, SceneRenderingAllocator > &OutPreShadows)
 
void SetupInteractionShadows (FDynamicShadowsTaskData &TaskData, FLightPrimitiveInteraction *Interaction, FVisibleLightInfo &VisibleLightInfo, bool bStaticSceneOnly, const TArray< FProjectedShadowInfo *, SceneRenderingAllocator > &ViewDependentWholeSceneShadows, TArray< FProjectedShadowInfo *, SceneRenderingAllocator > &PreShadows)
 
void AddViewDependentWholeSceneShadowsForView (TArray< FProjectedShadowInfo *, SceneRenderingAllocator > &ShadowInfos, TArray< FProjectedShadowInfo *, SceneRenderingAllocator > &ShadowInfosThatNeedCulling, FVisibleLightInfo &VisibleLightInfo, FLightSceneInfo &LightSceneInfo, int64 CachedShadowMapsSize, uint32 &NumCSMCachesUpdatedThisFrame)
 
void AllocateShadowDepthTargets (FDynamicShadowsTaskData &TaskData)
 
void AllocateAtlasedShadowDepthTargets (FRHICommandListBase &RHICmdList, TConstArrayView< FProjectedShadowInfo * > Shadows, TArray< FSortedShadowMapAtlas, SceneRenderingAllocator > &OutAtlases)
 
void AllocateCachedShadowDepthTargets (FRHICommandListBase &RHICmdList, TConstArrayView< FProjectedShadowInfo * > CachedShadows)
 
void AllocateCSMDepthTargets (FRHICommandListBase &RHICmdList, TConstArrayView< FProjectedShadowInfo * > WholeSceneDirectionalShadows, TArray< FSortedShadowMapAtlas, SceneRenderingAllocator > &OutAtlases)
 
void AllocateOnePassPointLightDepthTargets (FRHICommandListBase &RHICmdList, TConstArrayView< FProjectedShadowInfo * > WholeScenePointShadows)
 
void AllocateTranslucentShadowDepthTargets (FRHICommandListBase &RHICmdList, TConstArrayView< FProjectedShadowInfo * > TranslucentShadows)
 
void AllocateMobileCSMAndSpotLightShadowDepthTargets (FRHICommandListBase &RHICmdList, TConstArrayView< FProjectedShadowInfo * > MobileCSMAndSpotLightShadows)
 
bool CheckForProjectedShadows (const FLightSceneInfo *LightSceneInfo) const
 
void BeginGatherShadowPrimitives (FDynamicShadowsTaskData *TaskData, IVisibilityTaskData *VisibilityTaskData)
 
void FinishGatherShadowPrimitives (FDynamicShadowsTaskData *TaskData)
 
void RenderShadowDepthMaps (FRDGBuilder &GraphBuilder, FDynamicShadowsTaskData *DynamicShadowsTaskData, FInstanceCullingManager &InstanceCullingManager, FRDGExternalAccessQueue &ExternalAccessQueue)
 
void RenderShadowDepthMapAtlases (FRDGBuilder &GraphBuilder)
 
void CreateWholeSceneProjectedShadow (FDynamicShadowsTaskData &TaskData, FLightSceneInfo *LightSceneInfo, int64 CachedShadowMapsSize, uint32 &NumPointShadowCachesUpdatedThisFrame, uint32 &NumSpotShadowCachesUpdatedThisFrame)
 
void UpdatePreshadowCache ()
 
void InitProjectedShadowVisibility (FDynamicShadowsTaskData &TaskData)
 
void DrawDebugShadowFrustum (FViewInfo &View, FProjectedShadowInfo &ProjectedShadowInfo)
 
void GatherShadowDynamicMeshElements (FDynamicShadowsTaskData &TaskData)
 
bool RenderCapsuleDirectShadows (FRDGBuilder &GraphBuilder, const FLightSceneInfo &LightSceneInfo, FRDGTextureRef ScreenShadowMaskTexture, TArrayView< const FProjectedShadowInfo *const > CapsuleShadows, bool bProjectingForForwardShading) const
 
void PreVisibilityFrameSetup (FRDGBuilder &GraphBuilder)
 
void GatherReflectionCaptureLightMeshElements ()
 
void PostVisibilityFrameSetup (FILCUpdatePrimTaskData *&OutILCTaskData)
 
void InitFogConstants ()
 
bool ShouldRenderTranslucency () const
 
IVisibilityTaskDataOnRenderBegin (FRDGBuilder &GraphBuilder, const FSceneRenderUpdateInputs *SceneUpdateInputs)
 
void OnRenderFinish (FRDGBuilder &GraphBuilder, FRDGTextureRef ViewFamilyTexture)
 
bool RenderCustomDepthPass (FRDGBuilder &GraphBuilder, FCustomDepthTextures &CustomDepthTextures, const FSceneTextureShaderParameters &SceneTextures, TConstArrayView< Nanite::FRasterResults > PrimaryNaniteRasterResults, TConstArrayView< Nanite::FPackedView > PrimaryNaniteViews)
 
void UpdatePrimitiveIndirectLightingCacheBuffers (FRHICommandListBase &RHICmdList)
 
void RenderPlanarReflection (class FPlanarReflectionSceneProxy *ReflectionSceneProxy)
 
void InitSkyAtmosphereForViews (FRHICommandListImmediate &RHICmdList, FRDGBuilder &GraphBuilder)
 
void RenderSkyAtmosphereLookUpTables (FRDGBuilder &GraphBuilder, class FSkyAtmospherePendingRDGResources &PendingRDGResources)
 
void RenderSkyAtmosphere (FRDGBuilder &GraphBuilder, const FMinimalSceneTextures &SceneTextures)
 
void InitVolumetricCloudsForViews (FRDGBuilder &GraphBuilder, bool bShouldRenderVolumetricCloud, FInstanceCullingManager &InstanceCullingManager)
 
bool RenderVolumetricCloud (FRDGBuilder &GraphBuilder, const FMinimalSceneTextures &SceneTextures, bool bSkipVolumetricRenderTarget, bool bSkipPerPixelTracing, FRDGTextureRef HalfResolutionDepthCheckerboardMinMaxTexture, FRDGTextureRef QuarterResolutionDepthMinMaxTexture, bool bAsyncCompute, FInstanceCullingManager &InstanceCullingManager)
 
void RenderSkyAtmosphereEditorNotifications (FRDGBuilder &GraphBuilder, TArrayView< FViewInfo > InViews, FRDGTextureRef SceneColorTexture) const
 
void GatherAndSortLights (FSortedLightSetSceneInfo &OutSortedLights, bool bShadowedLightsInClustered=false)
 
void UpdateLightFunctionAtlasTaskFunction ()
 
FComputeLightGridOutput ComputeLightGrid (FRDGBuilder &GraphBuilder, bool bCullLightsToGrid, const FSortedLightSetSceneInfo &SortedLightSet, TArray< FForwardLightUniformParameters *, TInlineAllocator< 2 > > &PerViewForwardLightUniformParameters)
 
FComputeLightGridOutput PrepareForwardLightData (FRDGBuilder &GraphBuilder, bool bCullLightsToGrid, const FSortedLightSetSceneInfo &SortedLightSet)
 
bool CheckForLightFunction (const FLightSceneInfo *LightSceneInfo) const
 
void SetupSceneReflectionCaptureBuffer (FRHICommandListImmediate &RHICmdList)
 
void RenderVelocities (FRDGBuilder &GraphBuilder, TArrayView< FViewInfo > InViews, const FSceneTextures &SceneTextures, EVelocityPass VelocityPass, bool bForceVelocity, bool bBindRenderTarget=true)
 
void RenderMeshDistanceFieldVisualization (FRDGBuilder &GraphBuilder, const FMinimalSceneTextures &SceneTextures)
 
void CheckShadowDepthRenderCompleted () const
 
- Static Protected Member Functions inherited from FSceneRenderer
static void GatherSimpleLights (const FSceneViewFamily &ViewFamily, const TArray< FViewInfo > &Views, FSimpleLightArray &SimpleLights)
 
static bool ShouldRenderTranslucency (ETranslucencyPass::Type TranslucencyPass, TArrayView< FViewInfo > InViews)
 
static bool ShouldRenderSkyAtmosphereEditorNotifications (TArrayView< FViewInfo > Views)
 
static void CreateSplitScreenDebugViewFamilies (const FSceneViewFamily &InFamily, TArray< const FSceneViewFamily * > &OutViewFamilies, TArray< const FSceneViewFamily *, TFixedAllocator< 2 > > &OutFamiliesStorage)
 
static void DestroySplitScreenDebugViewFamilies (TConstArrayView< const FSceneViewFamily * > ViewFamilies)
 
- Protected Attributes inherited from FSceneRenderer
FIntPoint FamilySize
 
class FFXSystemInterfaceFXSystem = nullptr
 
bool bDumpMeshDrawCommandInstancingStats
 
FGPUSceneDynamicContext GPUSceneDynamicContext
 

Detailed Description

Scene renderer that implements a deferred shading pipeline and associated features.

Constructor & Destructor Documentation

◆ FDeferredShadingSceneRenderer()

FDeferredShadingSceneRenderer::FDeferredShadingSceneRenderer ( const FSceneViewFamily InViewFamily,
FHitProxyConsumer HitProxyConsumer 
)

Member Function Documentation

◆ ClearView()

void FDeferredShadingSceneRenderer::ClearView ( FRHICommandListImmediate RHICmdList)

Clears a view

◆ CommitFinalPipelineState()

void FDeferredShadingSceneRenderer::CommitFinalPipelineState ( )

Determine and commit the final state of the pipeline for the view family and views.

◆ CommitIndirectLightingState()

void FDeferredShadingSceneRenderer::CommitIndirectLightingState ( )

Commit all the pipeline state for indirect lighting.

◆ DebugLightGrid()

void FDeferredShadingSceneRenderer::DebugLightGrid ( FRDGBuilder GraphBuilder,
FSceneTextures SceneTextures,
bool  bNeedLightGrid 
)

Debug light grid content on screen.

◆ Render()

void FDeferredShadingSceneRenderer::Render ( FRDGBuilder GraphBuilder,
const FSceneRenderUpdateInputs SceneUpdateInputs 
)
overridevirtual

Renders the view family.

Implements FSceneRenderer.

◆ RenderAnisotropyPass()

void FDeferredShadingSceneRenderer::RenderAnisotropyPass ( FRDGBuilder GraphBuilder,
TArrayView< FViewInfo InViews,
FSceneTextures SceneTextures,
const FScene Scene,
bool  bDoParallelPass 
)
static

◆ RenderBasePass()

void FDeferredShadingSceneRenderer::RenderBasePass ( FDeferredShadingSceneRenderer Renderer,
FRDGBuilder GraphBuilder,
TArrayView< FViewInfo InViews,
FSceneTextures SceneTextures,
const FDBufferTextures DBufferTextures,
FExclusiveDepthStencil::Type  BasePassDepthStencilAccess,
FRDGTextureRef  ForwardShadowMaskTexture,
FInstanceCullingManager InstanceCullingManager,
bool  bNaniteEnabled,
struct FNaniteShadingCommands NaniteBasePassShadingCommands,
const TArrayView< Nanite::FRasterResults > &  NaniteRasterResults 
)
static

The following three functions are static, for compile time enforcement related to CustomRenderPass rendering, which uses these functions. Custom Render Passes have a separate ViewFamily, and making these functions static prevents the ViewFamily member in the scene renderer class from being inadvertently accessed.

◆ RenderBasePassInternal()

void FDeferredShadingSceneRenderer::RenderBasePassInternal ( FDeferredShadingSceneRenderer Renderer,
FRDGBuilder GraphBuilder,
TArrayView< FViewInfo InViews,
const FSceneTextures SceneTextures,
const FRenderTargetBindingSlots BasePassRenderTargets,
FExclusiveDepthStencil::Type  BasePassDepthStencilAccess,
const FForwardBasePassTextures ForwardBasePassTextures,
const FDBufferTextures DBufferTextures,
bool  bParallelBasePass,
bool  bRenderLightmapDensity,
FInstanceCullingManager InstanceCullingManager,
bool  bNaniteEnabled,
struct FNaniteShadingCommands NaniteBasePassShadingCommands,
const TArrayView< Nanite::FRasterResults > &  NaniteRasterResults 
)
static

◆ RenderHitProxies()

void FDeferredShadingSceneRenderer::RenderHitProxies ( FRDGBuilder GraphBuilder,
const FSceneRenderUpdateInputs SceneUpdateInputs 
)
overridevirtual

Render the view family's hit proxies.

Reimplemented from FSceneRenderer.

◆ RenderHzb()

bool FDeferredShadingSceneRenderer::RenderHzb ( FRDGBuilder GraphBuilder,
FRDGTextureRef  SceneDepthTexture,
const FBuildHZBAsyncComputeParams AsyncComputeParams,
Froxel::FRenderer FroxelRenderer 
)

◆ RenderOcclusion()

void FDeferredShadingSceneRenderer::RenderOcclusion ( FRDGBuilder GraphBuilder,
const FSceneTextures SceneTextures,
bool  bIsOcclusionTesting,
const FBuildHZBAsyncComputeParams BuildHZBAsyncComputeParams,
Froxel::FRenderer FroxelRenderer 
)

◆ RenderPrePassView()

void FDeferredShadingSceneRenderer::RenderPrePassView ( FRHICommandList RHICmdList,
const FViewInfo View 
)

Renders the scene's prepass for a particular view

Returns
true if anything was rendered

◆ RenderPrePassViewParallel()

bool FDeferredShadingSceneRenderer::RenderPrePassViewParallel ( const FViewInfo View,
FRHICommandListImmediate ParentCmdList,
TFunctionRef< void()>  AfterTasksAreStarted,
bool  bDoPrePre 
)

Renders the scene's prepass for a particular view in parallel

Returns
true if the depth was cleared

◆ RenderSingleLayerWater()

void FDeferredShadingSceneRenderer::RenderSingleLayerWater ( FRDGBuilder GraphBuilder,
TArrayView< FViewInfo InViews,
const FSceneTextures SceneTextures,
const FSingleLayerWaterPrePassResult SingleLayerWaterPrePassResult,
bool  bShouldRenderVolumetricCloud,
FSceneWithoutWaterTextures SceneWithoutWaterTextures,
FLumenSceneFrameTemporaries LumenFrameTemporaries,
bool  bIsCameraUnderWater 
)

◆ RenderSingleLayerWaterDepthPrepass()

FSingleLayerWaterPrePassResult * FDeferredShadingSceneRenderer::RenderSingleLayerWaterDepthPrepass ( FRDGBuilder GraphBuilder,
TArrayView< FViewInfo InViews,
const FSceneTextures SceneTextures,
ESingleLayerWaterPrepassLocation  Location,
TConstArrayView< Nanite::FRasterResults NaniteRasterResults 
)

Runs water pre-pass if enabled and returns an RDG-allocated object with intermediates, or null.

◆ RenderSingleLayerWaterInner()

void FDeferredShadingSceneRenderer::RenderSingleLayerWaterInner ( FRDGBuilder GraphBuilder,
TArrayView< FViewInfo InViews,
const FSceneTextures SceneTextures,
const FSceneWithoutWaterTextures SceneWithoutWaterTextures,
const FSingleLayerWaterPrePassResult SingleLayerWaterPrePassResult 
)

◆ RenderSingleLayerWaterReflections()

void FDeferredShadingSceneRenderer::RenderSingleLayerWaterReflections ( FRDGBuilder GraphBuilder,
TArrayView< FViewInfo InViews,
const FSceneTextures SceneTextures,
const FSceneWithoutWaterTextures SceneWithoutWaterTextures,
const FSingleLayerWaterPrePassResult SingleLayerWaterPrePassResult,
FLumenSceneFrameTemporaries LumenFrameTemporaries 
)

◆ RenderVisualizeTexturePool()

void FDeferredShadingSceneRenderer::RenderVisualizeTexturePool ( FRHICommandListImmediate RHICmdList)

◆ ShouldRenderNanite()

bool FDeferredShadingSceneRenderer::ShouldRenderNanite ( ) const
overridevirtual

Returns true if the Nanite rendering needs to run

Reimplemented from FSceneRenderer.

◆ ShouldRenderPrePass()

bool FDeferredShadingSceneRenderer::ShouldRenderPrePass ( ) const
overridevirtual

Returns true if the depth Prepass needs to run

Reimplemented from FSceneRenderer.

◆ ShouldRenderVelocities()

bool FDeferredShadingSceneRenderer::ShouldRenderVelocities ( ) const
overridevirtual

Reimplemented from FSceneRenderer.

Member Data Documentation

◆ LumenCardRenderer

FLumenCardRenderer FDeferredShadingSceneRenderer::LumenCardRenderer

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