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

#include <SceneViewExtension.h>

+ Inheritance diagram for ISceneViewExtension:

Public Types

enum class  EPostProcessingPass : uint32 {
  BeforeDOF , AfterDOF , TranslucencyAfterDOF , SSRInput ,
  ReplacingTonemapper , MotionBlur , Tonemap , FXAA ,
  SMAA , VisualizeDepthOfField , MAX
}
 

Public Member Functions

virtual void SetupViewFamily (FSceneViewFamily &InViewFamily)
 
virtual void SetupView (FSceneViewFamily &InViewFamily, FSceneView &InView)
 
virtual void SetupViewPoint (APlayerController *Player, FMinimalViewInfo &InViewInfo)
 
virtual void SetupViewProjectionMatrix (FSceneViewProjectionData &InOutProjectionData)
 
virtual void BeginRenderViewFamily (FSceneViewFamily &InViewFamily)
 
virtual void PostCreateSceneRenderer (const FSceneViewFamily &InViewFamily, ISceneRenderer *Renderer)
 
virtual void PreRenderViewFamily_RenderThread (FRDGBuilder &GraphBuilder, FSceneViewFamily &InViewFamily)
 
virtual void PreRenderView_RenderThread (FRDGBuilder &GraphBuilder, FSceneView &InView)
 
virtual void PreInitViews_RenderThread (FRDGBuilder &GraphBuilder)
 
virtual void PreRenderBasePass_RenderThread (FRDGBuilder &GraphBuilder, bool bDepthBufferIsPopulated)
 
virtual void PostRenderBasePassDeferred_RenderThread (FRDGBuilder &GraphBuilder, FSceneView &InView, const FRenderTargetBindingSlots &RenderTargets, TRDGUniformBufferRef< FSceneTextureUniformParameters > SceneTextures)
 
virtual void PostRenderBasePassMobile_RenderThread (FRHICommandList &RHICmdList, FSceneView &InView)
 
virtual void PostTLASBuild_RenderThread (FRDGBuilder &GraphBuilder, FSceneView &InView)
 
virtual void PrePostProcessPass_RenderThread (FRDGBuilder &GraphBuilder, const FSceneView &InView, const FPostProcessingInputs &Inputs)
 
virtual void PrePostProcessPassMobile_RenderThread (FRDGBuilder &GraphBuilder, const FSceneView &InView, const FMobilePostProcessingInputs &Inputs)
 
virtual void SubscribeToPostProcessingPass (EPostProcessingPass Pass, const FSceneView &InView, FPostProcessingPassDelegateArray &InOutPassCallbacks, bool bIsPassEnabled)
 
virtual void PostRenderViewFamily_RenderThread (FRDGBuilder &GraphBuilder, FSceneViewFamily &InViewFamily)
 
virtual void PostRenderView_RenderThread (FRDGBuilder &GraphBuilder, FSceneView &InView)
 
virtual int32 GetPriority () const
 
virtual bool IsActiveThisFrame (const FSceneViewExtensionContext &Context) const
 
virtual ESceneViewExtensionFlags GetFlags () const
 
virtual void SubscribeToPostProcessingPass (EPostProcessingPass Pass, FPostProcessingPassDelegateArray &InOutPassCallbacks, bool bIsPassEnabled)
 Deprecated APIs - These are no longer called and must be converted to restore functionality.
 

Protected Member Functions

virtual bool IsActiveThisFrame_Internal (const FSceneViewExtensionContext &Context) const
 

Member Enumeration Documentation

◆ EPostProcessingPass

Enumerator
BeforeDOF 
AfterDOF 
TranslucencyAfterDOF 
SSRInput 
ReplacingTonemapper 
MotionBlur 
Tonemap 
FXAA 
SMAA 
VisualizeDepthOfField 
MAX 

Member Function Documentation

◆ BeginRenderViewFamily()

virtual void ISceneViewExtension::BeginRenderViewFamily ( FSceneViewFamily InViewFamily)
inlinevirtual

◆ GetFlags()

virtual ESceneViewExtensionFlags ISceneViewExtension::GetFlags ( ) const
inlinevirtual

Query any flags to communicate state or execution requirements externally.

◆ GetPriority()

virtual int32 ISceneViewExtension::GetPriority ( ) const
inlinevirtual

Called to determine view extensions priority in relation to other view extensions, higher comes first

Reimplemented in UMotionControllerComponent::FViewExtension, and FMotionDelayClient.

◆ IsActiveThisFrame()

virtual bool ISceneViewExtension::IsActiveThisFrame ( const FSceneViewExtensionContext Context) const
inlinevirtual

Returning false disables the extension for the current frame in the given context. This will be queried each frame to determine if the extension wants to run.

Reimplemented in FSceneViewExtensionBase.

◆ IsActiveThisFrame_Internal()

virtual bool ISceneViewExtension::IsActiveThisFrame_Internal ( const FSceneViewExtensionContext Context) const
inlineprotectedvirtual

Called if no IsActive functors returned a definitive answer to whether this extension should be active this frame.

Reimplemented in FFrameCaptureViewExtension, UMotionControllerComponent::FViewExtension, FWorldSceneViewExtension, FHMDSceneViewExtension, and FMotionDelayClient.

◆ PostCreateSceneRenderer()

virtual void ISceneViewExtension::PostCreateSceneRenderer ( const FSceneViewFamily InViewFamily,
ISceneRenderer Renderer 
)
inlinevirtual

Called on game thread after the scene renderers have been created

Reimplemented in FMeshEdgesExtension.

◆ PostRenderBasePassDeferred_RenderThread()

virtual void ISceneViewExtension::PostRenderBasePassDeferred_RenderThread ( FRDGBuilder GraphBuilder,
FSceneView InView,
const FRenderTargetBindingSlots RenderTargets,
TRDGUniformBufferRef< FSceneTextureUniformParameters SceneTextures 
)
inlinevirtual

Called right after Base Pass rendering finished when using the deferred renderer.

◆ PostRenderBasePassMobile_RenderThread()

virtual void ISceneViewExtension::PostRenderBasePassMobile_RenderThread ( FRHICommandList RHICmdList,
FSceneView InView 
)
inlinevirtual

Called right after Base Pass rendering finished when using the mobile renderer.

◆ PostRenderView_RenderThread()

virtual void ISceneViewExtension::PostRenderView_RenderThread ( FRDGBuilder GraphBuilder,
FSceneView InView 
)
inlinevirtual

Allows to render content after the 3D content scene, useful for debugging

◆ PostRenderViewFamily_RenderThread()

virtual void ISceneViewExtension::PostRenderViewFamily_RenderThread ( FRDGBuilder GraphBuilder,
FSceneViewFamily InViewFamily 
)
inlinevirtual

Allows to render content after the 3D content scene, useful for debugging

Reimplemented in FMotionDelayClient.

◆ PostTLASBuild_RenderThread()

virtual void ISceneViewExtension::PostTLASBuild_RenderThread ( FRDGBuilder GraphBuilder,
FSceneView InView 
)
inlinevirtual

Called after all the TLAS has been built.

◆ PreInitViews_RenderThread()

virtual void ISceneViewExtension::PreInitViews_RenderThread ( FRDGBuilder GraphBuilder)
inlinevirtual

Called on render thread prior to initializing views.

Reimplemented in FLandscapeSceneViewExtension.

◆ PrePostProcessPass_RenderThread()

virtual void ISceneViewExtension::PrePostProcessPass_RenderThread ( FRDGBuilder GraphBuilder,
const FSceneView InView,
const FPostProcessingInputs Inputs 
)
inlinevirtual

Called right before Post Processing rendering begins

◆ PrePostProcessPassMobile_RenderThread()

virtual void ISceneViewExtension::PrePostProcessPassMobile_RenderThread ( FRDGBuilder GraphBuilder,
const FSceneView InView,
const FMobilePostProcessingInputs Inputs 
)
inlinevirtual

Called right before Post Processing rendering begins for the mobile renderer

◆ PreRenderBasePass_RenderThread()

virtual void ISceneViewExtension::PreRenderBasePass_RenderThread ( FRDGBuilder GraphBuilder,
bool  bDepthBufferIsPopulated 
)
inlinevirtual

Called on render thread right before Base Pass rendering. bDepthBufferIsPopulated is true if anything has been rendered to the depth buffer. This does not need to be a full depth prepass.

◆ PreRenderView_RenderThread()

virtual void ISceneViewExtension::PreRenderView_RenderThread ( FRDGBuilder GraphBuilder,
FSceneView InView 
)
inlinevirtual

Called on render thread at the start of rendering, for each view, after PreRenderViewFamily_RenderThread call.

Reimplemented in FFrameCaptureViewExtension, and FLandscapeSceneViewExtension.

◆ PreRenderViewFamily_RenderThread()

virtual void ISceneViewExtension::PreRenderViewFamily_RenderThread ( FRDGBuilder GraphBuilder,
FSceneViewFamily InViewFamily 
)
inlinevirtual

Called on render thread at the start of rendering.

Reimplemented in FFrameCaptureViewExtension, UMotionControllerComponent::FViewExtension, and FLandscapeSceneViewExtension.

◆ SetupView()

virtual void ISceneViewExtension::SetupView ( FSceneViewFamily InViewFamily,
FSceneView InView 
)
inlinevirtual

Called on game thread when creating the view.

Reimplemented in FHLODResourcesResidencySceneViewExtension, and FFrameCaptureViewExtension.

◆ SetupViewFamily()

virtual void ISceneViewExtension::SetupViewFamily ( FSceneViewFamily InViewFamily)
inlinevirtual

Called on game thread when creating the view family.

Reimplemented in FHLODResourcesResidencySceneViewExtension, and FFrameCaptureViewExtension.

◆ SetupViewPoint()

virtual void ISceneViewExtension::SetupViewPoint ( APlayerController Player,
FMinimalViewInfo InViewInfo 
)
inlinevirtual

Called when creating the viewpoint, before culling, in case an external tracking device needs to modify the base location of the view

◆ SetupViewProjectionMatrix()

virtual void ISceneViewExtension::SetupViewProjectionMatrix ( FSceneViewProjectionData InOutProjectionData)
inlinevirtual

Called when creating the view, in case non-stereo devices need to update projection matrix.

◆ SubscribeToPostProcessingPass() [1/2]

virtual void ISceneViewExtension::SubscribeToPostProcessingPass ( EPostProcessingPass  Pass,
const FSceneView InView,
FPostProcessingPassDelegateArray InOutPassCallbacks,
bool  bIsPassEnabled 
)
inlinevirtual

This will be called at the beginning of post processing to make sure that each view extension gets a chance to subscribe to a post-processing pass event.

  • The pass MUST write to the override output texture if it is active (this occurs when the pass is the last in the post processing chain writing to the back buffer). For performance reasons it is recommended to only subscribe to a pass when the pass will produce a GPU resource.

◆ SubscribeToPostProcessingPass() [2/2]

virtual void ISceneViewExtension::SubscribeToPostProcessingPass ( EPostProcessingPass  Pass,
FPostProcessingPassDelegateArray InOutPassCallbacks,
bool  bIsPassEnabled 
)
inlinevirtual

Deprecated APIs - These are no longer called and must be converted to restore functionality.


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