FSceneInterface

An interface to the private scene manager implementation of a scene.

Windows
MacOS
Linux

References

Module

Engine

Header

/Engine/Source/Runtime/Engine/Public/SceneInterface.h

Include

#include "SceneInterface.h"

Syntax

class FSceneInterface

Remarks

An interface to the private scene manager implementation of a scene. Use GetRendererModule().AllocateScene to create. The scene

Variables

Name Description

Protected variable

ERHIFeatureLeve...

 

FeatureLevel

This scene's feature level

Constructors

Name Description

Public function

FSceneInterface

(
    ERHIFeatureLevel::Type InFeatureLev...
)

Destructors

Name Description

Protected function Virtual

~FSceneInterface()

Functions

Name Description

Protected function

void

 

AddAtmosphericFog_Impl

(
    UAtmosphericFogComponent* FogC...
)

Public function

void

 

AddDecal

(
    UDecalComponent* Component
)

Adds a new decal component to the scene

Public function

void

 

AddExponentialHeightFog

Adds a new exponential height fog component to the scene

Public function

void

 

AddInvisibleLight

(
    ULightComponent* Light
)

Adds a new light component to the scene which is currently invisible, but needed for editor previewing

Public function

void

 

AddLight

(
    ULightComponent* Light
)

Adds a new light component to the scene

Public function Virtual

bool

 

AddPixelInspectorRequest

(
    FPixelInspectorRequest* PixelI...
)

Add a pixel inspector request.

Public function Virtual

void

 

AddPlanarReflection

(
    UPlanarReflectionComponent* Co...
)

Public function Virtual

void

 

AddPrecomputedLightVolume

(
    const FPrecomputedLightVolume*...
)

Public function Virtual

void

 

AddPrecomputedVolumetricLightmap

(
    const FPrecomputedVolumetricLightma...,
    bool bIsPersistentLevel
)

Public function

void

 

AddPrimitive

(
    UPrimitiveComponent* Primitive
)

Adds a new primitive component to the scene

Public function Virtual

void

 

AddReflectionCapture

(
    UReflectionCaptureComponent* C...
)

Adds a reflection capture to the scene.

Public function Virtual

void

 

AddRuntimeVirtualTexture

Add a runtime virtual texture object to the scene.

Public function

void

 

AddSkyAtmosphere

(
    FSkyAtmosphereSceneProxy* SkyA...,
    bool bStaticLightingBuilt
)

Adds the unique volumetric cloud component to the scene

Public function

void

 

AddSpeedTreeWind

(
    FVertexFactory* VertexFactory,
    const UStaticMesh* StaticMesh
)

Adds a SpeedTree wind computation object to the scene.

Public function

void

 

AddVolumetricCloud

(
    FVolumetricCloudSceneProxy* Vo...
)

Adds the unique volumetric cloud component to the scene

Public function

void

 

AddWindSource

Adds a wind source component to the scene.

Public function Virtual

void

 

AllocateAndCaptureFrameSkyEnvMap

(
    FRDGBuilder& GraphBuilder,
    FSceneRenderer& SceneRenderer,
    FViewInfo& MainView,
    bool bShouldRenderSkyAtmosphere,
    bool bShouldRenderVolumetricCloud
)

Public function Virtual

void

 

AllocateReflectionCaptures

(
    const TArray< UReflectionCaptureCom...,
    const TCHAR* CaptureReason,
    bool bVerifyOnlyCapturing,
    bool bCapturingForMobile
)

Allocates reflection captures in the scene's reflection cubemap array and updates them by recapturing the scene.

Public function Virtual

void

 

ApplyWorldOffset

(
    FVector InOffset
)

Shifts scene data by provided delta Called on world origin changes

Public function

void

 

DisableSkyLight

(
    FSkyLightSceneProxy* Light
)

Public function Virtual Const

void

 

DumpUnbuiltLightInteractions

(
    FOutputDevice& Ar
)

Public function Virtual Const

void

 

Export

(
    FArchive& Ar
)

Exports the scene.

Protected function

FAtmospheric...

 

GetAtmosphericFogSceneInfo_Impl()

Public function Const

void

 

GetDirectionalWindParameters

(
    FVector& OutDirection,
    float& OutSpeed,
    float& OutMinGustAmt,
    float& OutMaxGustAmt
)

Same as GetWindParameters, but ignores point wind sources.

Public function Const

ERHIFeatureL...

 

GetFeatureLevel()

Public function Virtual Const

uint32

 

GetFrameNumber()

Public function

FFXSystemInt...

 

GetFXSystem()

Get the FX system associated with the scene.

Public function Virtual

FGPUSkinCach...

 

GetGPUSkinCache()

Gets the GPU Skin Cache system associated with the scene.

Public function Virtual Const

bool

 

GetPreviousLocalToWorld

(
    const FPrimitiveSceneInfo* Pri...,
    FMatrix& OutPreviousLocalToWorld
)

Get the primitive previous local to world (used for motion blur).

Public function

FPrimitiveSc...

 

GetPrimitiveSceneInfo

(
    int32 PrimitiveIndex
)

Finds the primitive with the associated component id.

Public function Virtual Const

void

 

GetPrimitiveUniformShaderParameters_RenderThread

(
    const FPrimitiveSceneInfo* Pri...,
    bool& bHasPrecomputedVolumetricLig...,
    FMatrix& PreviousLocalToWorld,
    int32& SingleCaptureIndex,
    bool& OutputVelocity
)

Retrieves primitive uniform shader parameters that are internal to the renderer.

Public function Virtual

void

 

GetReflectionCaptureData

(
    UReflectionCaptureComponent* C...,
    FReflectionCaptureData& OutCapture...
)

Reads back reflection capture data from the GPU.

Public function Const

void

 

GetRelevantLights

(
    UPrimitiveComponent* Primitive,
    TArray< const ULightComponent*...
)

Retrieves the lights interacting with the passed in primitive and adds them to the out array.

Public function Virtual

FScene *

 

GetRenderScene()

Return the scene to be used for rendering.

Public function Virtual Const

void

 

GetRuntimeVirtualTextureHidePrimitiveMask

(
    uint8& bHideMaskEditor,
    uint8& bHideMaskGame
)

Get the bitmasks describing which virtual texture objects will hide the associated primitives.

Public function Virtual Const

TArray< FPri...

 

GetScenePrimitiveComponentIds()

Returns the FPrimitiveComponentId for all primitives in the scene

Public function Const

EShaderPlatf...

 

GetShaderPlatform()

Public function Static

EShadingPath

 

GetShadingPath

(
    ERHIFeatureLevel::Type InFeatureLev...
)

Public function Const

EShadingPath

 

GetShadingPath()

Public function

FSkyAtmosphe...

 

GetSkyAtmosphereSceneInfo()

Returns the scene's unique info if it exists

Public function Const

const FSkyAt...

 

GetSkyAtmosphereSceneInfo()

Public function Const

FRHIUniformB...

 

GetSpeedTreeUniformBuffer

(
    const FVertexFactory* VertexFa...
)

Looks up the SpeedTree uniform buffer for the passed in vertex factory.

Public function

FVolumetricC...

 

GetVolumetricCloudSceneInfo()

Returns the scene's unique info if it exists

Public function Const

const FVolum...

 

GetVolumetricCloudSceneInfo()

Public function Const

void

 

GetWindParameters

(
    const FVector& Position,
    FVector& OutDirection,
    float& OutSpeed,
    float& OutMinGustAmt,
    float& OutMaxGustAmt
)

Accesses wind parameters. XYZ will contain wind direction * Strength, W contains wind speed.

Public function Const

void

 

GetWindParameters_GameThread

(
    const FVector& Position,
    FVector& OutDirection,
    float& OutSpeed,
    float& OutMinGustAmt,
    float& OutMaxGustAmt
)

Accesses wind parameters safely for game thread applications

Public function Const

const TArray...

 

GetWindSources_RenderThread()

Accesses the wind source list. Must be called in the rendering thread.

Public function Const

UWorld *

 

GetWorld()

Get the optional UWorld that is associated with this scene

Public function Const

bool

 

HasAnyExponentialHeightFog()

Public function Const

bool

 

HasAnyLights()

Public function Const

bool

 

HasAtmosphereLightRequiringLightingBuild()

Public function Virtual Const

bool

 

HasPrecomputedVolumetricLightmap_RenderThread()

Public function Const

bool

 

HasSkyLightRequiringLightingBuild()

Public function Virtual

void

 

IncrementFrameNumber()

Public function Virtual

bool

 

InitializePixelInspector

(
    FRenderTarget* BufferFinalColo...,
    FRenderTarget* BufferSceneColo...,
    FRenderTarget* BufferDepth,
    FRenderTarget* BufferHDR,
    FRenderTarget* BufferA,
    FRenderTarget* BufferBCDEF,
    int32 BufferIndex
)

Initialize the pixel inspector buffers.

Public function Virtual

void

 

InvalidateRuntimeVirtualTexture

(
    URuntimeVirtualTextureComponent...,
    FBoxSphereBounds const& WorldBound...
)

Invalidates pages in a runtime virtual texture object.

Public function Virtual Const

bool

 

IsEditorScene()

Public function Virtual

void

 

OnLevelAddedToWorld

(
    FName InLevelName,
    UWorld* InWorld,
    bool bIsLightingScenario
)

Notification that level was added to a world

Public function Virtual

void

 

OnLevelRemovedFromWorld

(
    UWorld* InWorld,
    bool bIsLightingScenario
)

Public function Virtual

void

 

OnWorldCleanup()

Public function

void

 

Release()

Release this scene and remove it from the rendering thread

Public function

void

 

ReleasePrimitive

(
    UPrimitiveComponent* Primitive
)

Called when a primitive is being unregistered and will not be immediately re-registered.

Public function Virtual

void

 

ReleaseReflectionCubemap

(
    UReflectionCaptureComponent* C...
)

Protected function

void

 

RemoveAtmosphericFog_Impl

(
    UAtmosphericFogComponent* FogC...
)

Protected function

void

 

RemoveAtmosphericFogResource_RenderThread_Impl

(
    FRenderResource* FogResource
)

Public function

void

 

RemoveDecal

(
    UDecalComponent* Component
)

Removes a decal component from the scene

Public function

void

 

RemoveExponentialHeightFog

Removes a exponential height fog component from the scene

Public function

void

 

RemoveLight

(
    ULightComponent* Light
)

Removes a light component from the scene

Public function Virtual

void

 

RemovePlanarReflection

(
    UPlanarReflectionComponent* Co...
)

Public function Virtual

void

 

RemovePrecomputedLightVolume

(
    const FPrecomputedLightVolume*...
)

Public function Virtual

void

 

RemovePrecomputedVolumetricLightmap

(
    const FPrecomputedVolumetricLightma...
)

Public function

void

 

RemovePrimitive

(
    UPrimitiveComponent* Primitive
)

Removes a primitive component from the scene

Public function Virtual

void

 

RemoveReflectionCapture

(
    UReflectionCaptureComponent* C...
)

Removes a reflection capture from the scene.

Public function Virtual

void

 

RemoveRuntimeVirtualTexture

Removes a runtime virtual texture object from the scene.

Public function

void

 

RemoveSkyAtmosphere

(
    FSkyAtmosphereSceneProxy* SkyA...
)

Removes the unique volumetric cloud component to the scene

Public function

void

 

RemoveSpeedTreeWind_RenderThread

(
    FVertexFactory* VertexFactory,
    const UStaticMesh* StaticMesh
)

Removes a SpeedTree wind computation object to the scene.

Public function

void

 

RemoveVolumetricCloud

(
    FVolumetricCloudSceneProxy* Vo...
)

Removes the unique volumetric cloud component to the scene

Public function

void

 

RemoveWindSource

Removes a wind source component from the scene.

Public function Const

bool

 

RequiresHitProxies()

Indicates if hit proxies should be processed by this scene

Public function

void

 

ResetPhysicsField()

Reset the physics field scene proxy

Public function

void

 

SetFXSystem

(
    FFXSystemInterface* InFXSystem
)

Sets the FX system associated with the scene.

Public function

void

 

SetPhysicsField

(
    FPhysicsFieldSceneProxy* Physi...
)

Set the physics field scene proxy to the scene

Public function Virtual

void

 

SetPrecomputedVisibility

(
    const FPrecomputedVisibilityHandler...
)

Sets the precomputed visibility handler for the scene, or NULL to clear the current one.

Public function Virtual

void

 

SetPrecomputedVolumeDistanceField

(
    const FPrecomputedVolumeDistanceFie...
)

Sets the precomputed volume distance field for the scene, or NULL to clear the current one.

Public function

void

 

SetSkyLight

(
    FSkyLightSceneProxy* Light
)

Public function Virtual

void

 

StartFrame()

Public function

void

 

UpdateAllPrimitiveSceneInfos

(
    FRHICommandListImmediate& RHICmdLi...,
    bool bAsyncCreateLPIs
)

Updates all primitive scene info additions, remobals and translation changes

Public function Virtual

void

 

UpdateCachedRenderStates

(
    FPrimitiveSceneProxy* ScenePro...
)

Update render states that possibly cached inside renderer, like mesh draw commands.

Public function

void

 

UpdateCustomPrimitiveData

(
    UPrimitiveComponent* Primitive
)

Updates the custom primitive data of a primitive component which has already been added to the scene.

Public function

void

 

UpdateDecalFadeInTime

(
    UDecalComponent* Component
)

Public function

void

 

UpdateDecalFadeOutTime

(
    UDecalComponent* Component
)

Public function

void

 

UpdateDecalTransform

(
    UDecalComponent* Component
)

Updates the transform of a decal which has already been added to the scene.

Public function

void

 

UpdateLightColorAndBrightness

(
    ULightComponent* Light
)

Updates the color and brightness of a light which has already been added to the scene.

Public function

void

 

UpdateLightTransform

(
    ULightComponent* Light
)

Updates the transform of a light which has already been added to the scene.

Public function Virtual

void

 

UpdateParameterCollections

(
    const TArray< class FMaterialParame...
)

Updates the scene's list of parameter collection id's and their uniform buffers.

Public function

void

 

UpdatePhysicsField

(
    FRHICommandListImmediate& RHICmdLi...,
    FViewInfo& View
)

Reset the physics field scene proxy

Public function Virtual

void

 

UpdatePlanarReflectionContents

(
    UPlanarReflectionComponent* Ca...,
    FSceneRenderer& MainSceneRenderer
)

Public function Virtual

void

 

UpdatePlanarReflectionTransform

(
    UPlanarReflectionComponent* Co...
)

Public function

void

 

UpdatePrimitiveAttachment

(
    UPrimitiveComponent* Primitive
)

Updates primitive attachment state.

Public function Virtual

void

 

UpdatePrimitiveDistanceFieldSceneData_GameThread

(
    UPrimitiveComponent* Primitive
)

Updates distance field scene data (transforms, uv scale, self-shadow bias, etc.) but doesn't change allocation in the atlas

Public function

void

 

UpdatePrimitiveTransform

(
    UPrimitiveComponent* Primitive
)

Updates the transform of a primitive which has already been added to the scene.

Public function Virtual

void

 

UpdateReflectionCaptureTransform

(
    UReflectionCaptureComponent* C...
)

Updates a reflection capture's transform, and then re-captures the scene.

Public function Virtual

void

 

UpdateSceneCaptureContents

(
    USceneCaptureComponent2D* Capt...
)

Updates the contents of the given scene capture by rendering the scene.

Public function Virtual

void

 

UpdateSceneCaptureContents

(
    USceneCaptureComponentCube* Ca...
)

Public function Virtual

void

 

UpdateSceneSettings

(
    AWorldSettings* WorldSettings
)

Public function Virtual

void

 

UpdateSkyCaptureContents

(
    const USkyLightComponent* Capt...,
    bool bCaptureEmissiveOnly,
    UTextureCube* SourceCubemap,
    FTexture* OutProcessedTexture,
    float& OutAverageBrightness,
    FSHVectorRGB3& OutIrradianceEnviro...,
    TArray< FFloat16Color >* OutRa...
)

Updates the contents of the given sky capture by rendering the scene.

Public function

void

 

UpdateSpeedTreeWind

(
    double CurrentTime
)

Ticks the SpeedTree wind object and updates the uniform buffer.

Public function Virtual

void

 

UpdateStaticDrawLists()

Updates all static draw lists.

Public function

void

 

UpdateWindSource

Update a wind source component from the scene.

Public function Virtual

void

 

ValidateSkyLightRealTimeCapture

(
    FRDGBuilder& GraphBuilder,
    const FViewInfo& View,
    FRDGTextureRef SceneColorTexture
)

Deprecated Functions

Name Description

Public function

void

 

AddAtmosphericFog

(
    UAtmosphericFogComponent* FogC...
)

Please use the SkyAtmosphere actor instead.

Public function

FAtmospheric...

 

GetAtmosphericFogSceneInfo()

Please use the SkyAtmosphere actor instead.

Public function

void

 

RemoveAtmosphericFog

(
    UAtmosphericFogComponent* FogC...
)

Please use the SkyAtmosphere actor instead.

Public function

void

 

RemoveAtmosphericFogResource_RenderThread

(
    FRenderResource* FogResource
)

Please use the SkyAtmosphere actor instead.

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss