UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SceneInterface.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
6#include "HAL/Platform.h"
7#include "Math/MathFwd.h"
9#include "RenderGraphFwd.h"
10#include "Engine/EngineTypes.h"
12#include "SceneViewOwner.h"
13#include "ShowFlags.h"
15
16class AWorldSettings;
17struct FAnimBankDesc;
19class FArchive;
20class FFloat16Color;
23class FMaterial;
25class FName;
26class FOutputDevice;
28class FRDGBuilder;
31class FRenderResource;
32class FRenderTarget;
35class FScene;
36class FSceneRenderer;
42class FTexture;
43class FVertexFactory;
44class FViewInfo;
47class UDecalComponent;
50class ULightComponent;
52class UPrimitiveComponent;
56class UStaticMeshComponent;
57class UTextureCube;
58enum class EPrimitiveDirtyState : uint8;
59enum class EVTInvalidatePriority : uint8;
60enum class EShadingPath;
62namespace ERHIFeatureLevel { enum Type : int; }
66template<int32 MaxSHOrder> class TSHVectorRGB;
71
75struct FLightSceneDesc;
76
83
85{
86 None = 0,
87
88 // Cached mesh draw commands are cached asynchronously.
89 CacheMeshDrawCommands = 1 << 0,
90
91 // Light primitive interactions are created asynchronously.
93
94 // Material uniform expressions are cached asynchronously.
96
98};
100
106{
107public:
109
110 // FSceneInterface interface
111
117 virtual void AddPrimitive(UPrimitiveComponent* Primitive) = 0;
123 virtual void RemovePrimitive(UPrimitiveComponent* Primitive) = 0;
125 virtual void ReleasePrimitive(UPrimitiveComponent* Primitive) = 0;
126
131
137
143 virtual void UpdatePrimitiveTransform(UPrimitiveComponent* Primitive) = 0;
144 virtual void UpdatePrimitiveOcclusionBoundsSlack(UPrimitiveComponent* Primitive, float NewSlack) = 0;
145 virtual void UpdatePrimitiveDrawDistance(UPrimitiveComponent* Primitive, float MinDrawDistance, float MaxDrawDistance, float VirtualTextureMaxDrawDistance) = 0;
146 virtual void UpdateInstanceCullDistance(UPrimitiveComponent* Primitive, float StartCullDistance, float EndCullDistance) = 0;
148 virtual void UpdatePrimitiveAttachment(UPrimitiveComponent* Primitive) = 0;
149
155 virtual void UpdatePrimitiveInstances(UPrimitiveComponent* Primitive) = 0;
156
162 virtual void UpdateCustomPrimitiveData(UPrimitiveComponent* Primitive) = 0;
167
169 virtual FPrimitiveSceneInfo* GetPrimitiveSceneInfo(int32 PrimitiveIndex) const = 0;
170
173 virtual FPrimitiveSceneInfo* GetPrimitiveSceneInfo(const FPersistentPrimitiveIndex& PersistentPrimitiveIndex) const = 0;
174
176 virtual bool GetPreviousLocalToWorld(const FPrimitiveSceneInfo* PrimitiveSceneInfo, FMatrix& OutPreviousLocalToWorld) const { return false; }
182 virtual void AddLight(ULightComponent* Light) = 0;
197
198 virtual bool HasSkyLightRequiringLightingBuild() const = 0;
200
222
225
228
231
234
240 virtual void ReleaseReflectionCubemap(UReflectionCaptureComponent* CaptureComponent) {}
241
250
251 UE_DEPRECATED(5.1, "This method now accepts a bInsideTick parameter, which specifies whether it's called during the frame Tick.")
256
262
263 UE_DEPRECATED(5.2, "AllocateAndCaptureFrameSkyEnvMap now takes an FRDGExternalAccessQueue")
265
267 virtual void ValidateSkyLightRealTimeCapture(FRDGBuilder& GraphBuilder, const FViewInfo& View, FRDGTextureRef SceneColorTexture) {}
268
269 UE_DEPRECATED(5.4, "This method has been refactored to be a proper visualization post process. It should have never been added on the FSceneInterface in the first place.")
271
275
280 virtual void UpdateSceneCaptureContents(class USceneCaptureComponent2D* CaptureComponent, class ISceneRenderBuilder& SceneRenderBuilder) {}
281 virtual void UpdateSceneCaptureContents(class USceneCaptureComponentCube* CaptureComponent, class ISceneRenderBuilder& SceneRenderBuilder) {}
282 virtual void UpdatePlanarReflectionContents(class UPlanarReflectionComponent* CaptureComponent, class FSceneRenderer& MainSceneRenderer, class ISceneRenderBuilder& SceneRenderBuilder) {}
283
286
287 virtual bool HasPrecomputedVolumetricLightmap_RenderThread() const { return false; }
290
295 /* Get the bitmasks describing which virtual texture objects will hide the associated primitives. */
297
306 UE_DEPRECATED(5.6, "Use the alternate prototype with the Priority param")
308
311
314
316 virtual void InvalidateLumenSurfaceCache_GameThread(UPrimitiveComponent* Component) {}
317
322
335
337
339 virtual void SetPrecomputedVisibility(const class FPrecomputedVisibilityHandler* PrecomputedVisibilityHandler) {}
340
342 virtual void SetPrecomputedVolumeDistanceField(const class FPrecomputedVolumeDistanceField* PrecomputedVolumeDistanceField) {}
343
345 virtual void UpdateStaticDrawLists() {}
346
348 virtual void UpdateCachedRenderStates(class FPrimitiveSceneProxy* SceneProxy) {}
349
351 virtual void UpdatePrimitiveSelectedState_RenderThread(const FPrimitiveSceneInfo* PrimitiveSceneInfo, bool bIsSelected) {}
352
355
371 virtual bool HasAnyExponentialHeightFog() const = 0;
372
388 virtual bool HasAnyLocalFogVolume() const = 0;
389
395 virtual void AddSkyAtmosphere(FSkyAtmosphereSceneProxy* SkyAtmosphereSceneProxy, bool bStaticLightingBuilt) = 0;
401 virtual void RemoveSkyAtmosphere(FSkyAtmosphereSceneProxy* SkyAtmosphereSceneProxy) = 0;
407
410
413
419 virtual void AddVolumetricCloud(FVolumetricCloudSceneProxy* VolumetricCloudSceneProxy) = 0;
425 virtual void RemoveVolumetricCloud(FVolumetricCloudSceneProxy* VolumetricCloudSceneProxy) = 0;
426
432 virtual void AddHairStrands(FHairStrandsInstance* Proxy) = 0;
433
439 virtual void RemoveHairStrands(FHairStrandsInstance* Proxy) = 0;
440
448
456
463
467 virtual void ResetPhysicsField() = 0;
468
472 virtual void ShowPhysicsField() = 0;
473
477 virtual void UpdatePhysicsField(FRDGBuilder& GraphBuilder, FViewInfo& View) = 0;
478
479 UE_DEPRECATED(5.0, "This method has been refactored to use an FRDGBuilder instead.")
481
487
508
510 virtual void GetWindParameters(const FVector& Position, FVector& OutDirection, float& OutSpeed, float& OutMinGustAmt, float& OutMaxGustAmt) const = 0;
511
514
517
522 virtual void AddSpeedTreeWind(class FVertexFactory* VertexFactory, const class UStaticMesh* StaticMesh) = 0;
523
528 virtual void RemoveSpeedTreeWind_RenderThread(class FVertexFactory* VertexFactory, const class UStaticMesh* StaticMesh) = 0;
529
531 virtual void UpdateSpeedTreeWind(double CurrentTime) = 0;
532
537 virtual FRHIUniformBuffer* GetSpeedTreeUniformBuffer(const FVertexFactory* VertexFactory) const = 0;
538
542
543 // FPrimtiveDesc version for primitive/light scene interactions
548
552
554
556
558
559 UE_EXPERIMENTAL(5.6, "Experimental API, scene writing delegate may be internalized in the future.")
561
562 UE_DEPRECATED(5.6, "StaticMeshBounds is no longer a parameter of this interface, please update FPrimitiveSceneDesc version.")
564
566
570 virtual void Release() = 0;
577 virtual void GetRelevantLights( UPrimitiveComponent* Primitive, TArray<const ULightComponent*>* RelevantLights ) const = 0;
583 virtual bool RequiresHitProxies() const = 0;
589 virtual class UWorld* GetWorld() const = 0;
590
596 virtual const FScene* GetRenderScene() const = 0;
597
599 {
600 }
601 virtual void UpdateSceneSettings(AWorldSettings* WorldSettings) {}
602
611
628
631
632 UE_DEPRECATED(5.6, "Use IPrimitiveTransformUpdater instead")
634
635 UE_DEPRECATED(5.6, "Use IPrimitiveTransformUpdater instead")
637
642 {
643 return nullptr;
644 }
645
647 {
648 return nullptr;
649 }
650
655
659 virtual void SetFXSystem( class FFXSystemInterface* InFXSystem ) = 0;
660
664 virtual class FFXSystemInterface* GetFXSystem() = 0;
665
666 virtual void DumpUnbuiltLightInteractions( FOutputDevice& Ar ) const { }
667
670
676 virtual void Export( FArchive& Ar ) const
677 {}
678
685 virtual void ApplyWorldOffset(const FVector& InOffset) {}
686
692 virtual void OnLevelAddedToWorld(const FName& InLevelName, UWorld* InWorld, bool bIsLightingScenario) {}
693 virtual void OnLevelRemovedFromWorld(const FName& InLevelName, UWorld* InWorld, bool bIsLightingScenario) {}
694
698 virtual bool HasAnyLights() const = 0;
699
700 virtual bool IsEditorScene() const { return false; }
701
702 virtual void UpdateEarlyZPassMode() {}
703
705
707
709
711 {
713 }
714
715#if WITH_EDITOR
721 {
722 return false;
723 }
724
730 {
731 return false;
732 }
733#endif //WITH_EDITOR
734
736
741
742 virtual void StartFrame() {}
743 virtual void EndFrame(FRHICommandListImmediate& RHICmdList) {}
744 virtual uint32 GetFrameNumber() const { return 0; }
745 virtual void IncrementFrameNumber() {}
746
747 virtual void UpdateCachedRayTracingState(class FPrimitiveSceneProxy* SceneProxy) {}
748
749 UE_DEPRECATED(5.6, "FRayTracingDynamicGeometryCollection has been removed - all raytracing dynamic geometries are collected via the FRayTracingInstanceCollector during GetDynamicRayTracingInstances on the proxy.")
751 UE_DEPRECATED(5.6, "FRayTracingSkinnedGeometryUpdateQueue has been removed - all raytracing dynamic geometries are collected via the FRayTracingInstanceCollector during GetDynamicRayTracingInstances on the proxy.")
753
754 virtual bool RequestGPUSceneUpdate(FPrimitiveSceneInfo& PrimitiveSceneInfo, EPrimitiveDirtyState PrimitiveDirtyState) { return false; }
755 virtual bool RequestUniformBufferUpdate(FPrimitiveSceneInfo& PrimitiveSceneInfo) { return false; }
756
757 virtual void RefreshNaniteRasterBins(FPrimitiveSceneInfo& PrimitiveSceneInfo) {}
759
762 {
768
778 int32 PostVolumeUserFlags = 0; // UserFlags from Post Process Volume, used if bOverridesPostVolumeUserFlags set, allows per-view material overrides
779 bool bIsSceneCapture = false;
780 bool bUseMainViewFamilyShowFlags = false; // Custom render pass should use flags from main view family, rather than ones in this structure
781 bool bOverridesPostVolumeUserFlags = false; // Use PostVolumeUserFlags, instead of flags from main view family
782
784 };
785
787 virtual bool AddCustomRenderPass(const FSceneViewFamily* ViewFamily, const FCustomRenderPassRendererInput& CustomRenderPassInput) { return false; }
788
789protected:
790 virtual ~FSceneInterface() {}
791
794
796};
int Volume
Definition AndroidPlatformMisc.cpp:380
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define UE_EXPERIMENTAL(Version, Message)
Definition CoreMiscDefines.h:369
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
EPrimitiveDirtyState
Definition PrimitiveDirtyState.h:9
EShaderPlatform
Definition RHIShaderPlatform.h:11
EUpdateAllPrimitiveSceneInfosAsyncOps
Definition SceneInterface.h:85
EBasePassDrawListType
Definition SceneInterface.h:78
@ EBasePass_MAX
Definition SceneInterface.h:81
@ EBasePass_Masked
Definition SceneInterface.h:80
@ EBasePass_Default
Definition SceneInterface.h:79
EShadingPath
Definition SceneUtils.h:24
@ ESFIM_Game
Definition ShowFlags.h:36
EVTInvalidatePriority
Definition VirtualTextureEnum.h:29
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition CustomRenderPass.h:50
Definition FXSystem.h:131
Definition Float16Color.h:13
Definition GPUSceneWriter.h:91
Definition GPUSkinCache.h:126
Definition InstanceCullingManager.h:45
Definition LightSceneProxy.h:43
Definition LocalFogVolumeSceneProxy.h:12
Definition MaterialShared.h:1518
Definition MaterialShared.h:2058
Definition NameTypes.h:617
Definition OutputDevice.h:133
Definition PhysicsFieldComponent.h:293
Definition RendererInterface.h:597
Definition PrecomputedLightVolume.h:151
Definition Level.h:240
Definition Level.h:302
Definition PrecomputedVolumetricLightmap.h:223
Definition PrimitiveComponentId.h:12
Definition PrimitiveSceneInfo.h:266
Definition PrimitiveSceneProxy.h:296
Definition RenderGraphBuilder.h:49
Definition RenderGraphUtils.h:1272
Definition RenderGraphResources.h:571
Definition RHICommandList.h:4626
Definition RHIResources.h:1232
Definition RectLightSceneProxy.h:16
Definition MapBuildDataRegistry.h:195
Definition RenderResource.h:37
Definition UnrealClient.h:30
~FPrimitiveTransformUpdateScope()
Definition SceneInterface.h:620
FPrimitiveTransformUpdateScope(IPrimitiveTransformUpdater *Updater)
Definition SceneInterface.h:615
Definition SceneInterface.h:604
static ENGINE_API IPrimitiveTransformUpdater * SetInstanceTLS(IPrimitiveTransformUpdater *Instance)
Definition SceneInterface.cpp:10
static ENGINE_API IPrimitiveTransformUpdater * GetInstanceTLS()
Definition SceneInterface.cpp:17
Definition SceneInterface.h:106
virtual void RemoveLumenSceneCard(class ULumenSceneCardComponent *LumenSceneCardComponent)
Definition SceneInterface.h:541
virtual void AddPrecomputedVolumetricLightmap(const class FPrecomputedVolumetricLightmap *Volume, bool bIsPersistentLevel)
Definition SceneInterface.h:288
virtual ~FSceneInterface()
Definition SceneInterface.h:790
virtual void UpdatePrimitiveSelectedState_RenderThread(const FPrimitiveSceneInfo *PrimitiveSceneInfo, bool bIsSelected)
Definition SceneInterface.h:351
virtual FSkyAtmosphereRenderSceneInfo * GetSkyAtmosphereSceneInfo()=0
virtual void UpdatePrimitivesDrawnInGame_RenderThread(TArrayView< FPrimitiveSceneProxy * > PrimitiveSceneProxies, bool bDrawnInGame)=0
virtual void ResetReflectionCaptures(bool bOnlyIfOOM)
Definition SceneInterface.h:249
virtual void AddLumenSceneCard(class ULumenSceneCardComponent *LumenSceneCardComponent)
Definition SceneInterface.h:539
virtual void UpdateLightProxy(ULightComponent *Light, TFunction< void(FLightSceneProxy *)> &&Func)=0
virtual void UpdatePrimitiveAttachment(UPrimitiveComponent *Primitive)=0
virtual void RemoveHairStrands(FHairStrandsInstance *Proxy)=0
virtual const TArray< class FWindSourceSceneProxy * > & GetWindSources_RenderThread() const =0
virtual void GetRuntimeVirtualTextureHidePrimitiveMask(uint8 &bHideMaskEditor, uint8 &bHideMaskGame) const
Definition SceneInterface.h:296
virtual void EndFrame(FRHICommandListImmediate &RHICmdList)
Definition SceneInterface.h:743
virtual void DisableSkyLight(FSkyLightSceneProxy *Light)=0
virtual void OnLevelAddedToWorld(const FName &InLevelName, UWorld *InWorld, bool bIsLightingScenario)
Definition SceneInterface.h:692
virtual void Export(FArchive &Ar) const
Definition SceneInterface.h:676
virtual void AddLight(ULightComponent *Light)=0
virtual void BatchReleasePrimitives(TArrayView< FPrimitiveSceneDesc * > InPrimitives)=0
virtual void UpdateSceneSettings(AWorldSettings *WorldSettings)
Definition SceneInterface.h:601
virtual void DumpUnbuiltLightInteractions(FOutputDevice &Ar) const
Definition SceneInterface.h:666
virtual void UpdateWindSource(class UWindDirectionalSourceComponent *WindComponent)=0
virtual void RemovePrecomputedVolumetricLightmap(const class FPrecomputedVolumetricLightmap *Volume)
Definition SceneInterface.h:289
virtual void UpdateStaticDrawLists()
Definition SceneInterface.h:345
virtual bool RequestGPUSceneUpdate(FPrimitiveSceneInfo &PrimitiveSceneInfo, EPrimitiveDirtyState PrimitiveDirtyState)
Definition SceneInterface.h:754
virtual void BatchRemovePrimitives(TArray< FPrimitiveSceneProxy * > &&InPrimitives)=0
virtual void UpdatePrimitiveDistanceFieldSceneData_GameThread(UPrimitiveComponent *Primitive)
Definition SceneInterface.h:166
EShadingPath GetShadingPath() const
Definition SceneInterface.h:710
virtual void UpdatePrimitiveVelocityState_RenderThread(FPrimitiveSceneInfo *PrimitiveSceneInfo, bool bIsBeingMoved)
Definition SceneInterface.h:354
virtual void BatchAddPrimitives(TArrayView< UPrimitiveComponent * > InPrimitives)=0
ERHIFeatureLevel::Type GetFeatureLevel() const
Definition SceneInterface.h:704
virtual void RemoveExponentialHeightFog(uint64 Id)=0
ENGINE_API EShaderPlatform GetShaderPlatform() const
Definition SceneInterface.cpp:39
virtual void AllocateReflectionCaptures(const TArray< UReflectionCaptureComponent * > &NewCaptures, const TCHAR *CaptureReason, bool bVerifyOnlyCapturing, bool bCapturingForMobile, bool bInsideTick)
Definition SceneInterface.h:239
virtual void UpdateSceneCaptureContents(class USceneCaptureComponentCube *CaptureComponent, class ISceneRenderBuilder &SceneRenderBuilder)
Definition SceneInterface.h:281
virtual void ApplyWorldOffset(const FVector &InOffset)
Definition SceneInterface.h:685
virtual void AllocateAndCaptureFrameSkyEnvMap(FRDGBuilder &GraphBuilder, FSceneRenderer &SceneRenderer, FViewInfo &MainView, bool bShouldRenderSkyAtmosphere, bool bShouldRenderVolumetricCloud, FInstanceCullingManager &InstanceCullingManager, FRDGExternalAccessQueue &ExternalAccessQueue)
Definition SceneInterface.h:266
virtual void RemovePrimitive(UPrimitiveComponent *Primitive)=0
virtual void SetFXSystem(class FFXSystemInterface *InFXSystem)=0
virtual void StartFrame()
Definition SceneInterface.h:742
virtual void RemovePrimitive(FPrimitiveSceneDesc *Primitive)=0
virtual bool AddCustomRenderPass(const FSceneViewFamily *ViewFamily, const FCustomRenderPassRendererInput &CustomRenderPassInput)
Definition SceneInterface.h:787
virtual void AddReflectionCapture(class UReflectionCaptureComponent *Component)
Definition SceneInterface.h:224
virtual void RemoveSparseVolumeTextureViewer(FSparseVolumeTextureViewerSceneProxy *SVTV)=0
virtual bool HasAnyLights() const =0
virtual void UpdatePhysicsField(FRDGBuilder &GraphBuilder, FViewInfo &View)=0
virtual void AddExponentialHeightFog(uint64 Id, const FExponentialHeightFogDynamicState &State)=0
virtual void UpdatePrimitiveTransform(UPrimitiveComponent *Primitive)=0
virtual bool HasPrecomputedVolumetricLightmap_RenderThread() const
Definition SceneInterface.h:287
virtual void InvalidateRuntimeVirtualTexture(URuntimeVirtualTextureComponent *Component, FBoxSphereBounds const &WorldBounds, EVTInvalidatePriority InvalidatePriority)
Definition SceneInterface.h:305
virtual void UpdatePrimitiveTransform(FPrimitiveSceneDesc *Primitive)=0
virtual void RequestPreloadRuntimeVirtualTexture(class URuntimeVirtualTextureComponent *Component, FBoxSphereBounds const &WorldBounds, int32 Level)
Definition SceneInterface.h:310
virtual class FSkeletalMeshUpdater * GetSkeletalMeshUpdater()
Definition SceneInterface.h:646
virtual void UpdateInstanceCullDistance(UPrimitiveComponent *Primitive, float StartCullDistance, float EndCullDistance)=0
virtual void AddSparseVolumeTextureViewer(FSparseVolumeTextureViewerSceneProxy *SVTV)=0
virtual void AddPrecomputedLightVolume(const class FPrecomputedLightVolume *Volume)
Definition SceneInterface.h:284
virtual void UpdateParameterCollections(const TArray< class FMaterialParameterCollectionInstanceResource * > &InParameterCollections)
Definition SceneInterface.h:669
virtual IPrimitiveTransformUpdater * CreatePrimitiveTransformUpdater(int32 MaxPrimitives)
Definition SceneInterface.h:629
virtual void BatchReleasePrimitives(TArrayView< UPrimitiveComponent * > InPrimitives)=0
virtual void ReleasePrimitive(FPrimitiveSceneDesc *Primitive)=0
virtual void SetPrecomputedVisibility(const class FPrecomputedVisibilityHandler *PrecomputedVisibilityHandler)
Definition SceneInterface.h:339
virtual void AddVolumetricCloud(FVolumetricCloudSceneProxy *VolumetricCloudSceneProxy)=0
virtual FPrimitiveSceneInfo * GetPrimitiveSceneInfo(int32 PrimitiveIndex) const =0
virtual void AddRuntimeVirtualTexture(URuntimeVirtualTextureComponent *Component)
Definition SceneInterface.h:292
virtual TConstArrayView< FPrimitiveComponentId > GetScenePrimitiveComponentIds() const =0
virtual bool IsEditorScene() const
Definition SceneInterface.h:700
virtual void UpdatePrimitiveInstancesFromCompute(FPrimitiveSceneDesc *Primitive, FGPUSceneWriteDelegate &&DataWriterGPU)=0
virtual void FinishUpdatePrimitiveTransform()
Definition SceneInterface.h:636
virtual void GetComputeTaskWorkers(TArray< class IComputeTaskWorker * > &OutWorkers) const
Definition SceneInterface.h:654
virtual void InvalidatePathTracedOutput(PathTracing::EInvalidateReason InvalidateReason=PathTracing::EInvalidateReason::Uncategorized)
Definition SceneInterface.h:313
virtual class UWorld * GetWorld() const =0
virtual void UpdatePrimitiveOcclusionBoundsSlack(UPrimitiveComponent *Primitive, float NewSlack)=0
virtual void ResetPhysicsField()=0
virtual void InvalidateLumenSurfaceCache_GameThread(UPrimitiveComponent *Component)
Definition SceneInterface.h:316
virtual void AddLocalFogVolume(class FLocalFogVolumeSceneProxy *FogProxy)=0
virtual void UpdateDecalTransform(UDecalComponent *Component)=0
virtual void UpdatePlanarReflectionTransform(UPlanarReflectionComponent *Component)
Definition SceneInterface.h:274
virtual void UpdateLumenSceneCardTransform(class ULumenSceneCardComponent *LumenSceneCardComponent)
Definition SceneInterface.h:540
virtual void UpdatePrimitiveInstances(UPrimitiveComponent *Primitive)=0
virtual void RemovePrecomputedLightVolume(const class FPrecomputedLightVolume *Volume)
Definition SceneInterface.h:285
virtual void GetReflectionCaptureData(UReflectionCaptureComponent *Component, class FReflectionCaptureData &OutCaptureData)
Definition SceneInterface.h:230
virtual void AddSkyAtmosphere(FSkyAtmosphereSceneProxy *SkyAtmosphereSceneProxy, bool bStaticLightingBuilt)=0
virtual const FSkyAtmosphereRenderSceneInfo * GetSkyAtmosphereSceneInfo() const =0
virtual void UpdatePrimitiveDrawDistance(UPrimitiveComponent *Primitive, float MinDrawDistance, float MaxDrawDistance, float VirtualTextureMaxDrawDistance)=0
ERHIFeatureLevel::Type FeatureLevel
Definition SceneInterface.h:793
virtual FPrimitiveSceneInfo * GetPrimitiveSceneInfo(const FPersistentPrimitiveIndex &PersistentPrimitiveIndex) const =0
virtual void RemoveSpeedTreeWind_RenderThread(class FVertexFactory *VertexFactory, const class UStaticMesh *StaticMesh)=0
virtual void GetWindParameters(const FVector &Position, FVector &OutDirection, float &OutSpeed, float &OutMinGustAmt, float &OutMaxGustAmt) const =0
virtual void Release()=0
virtual void UnregisterAnimBank(const TConstArrayView< FAnimBankRecordHandle > Handles)=0
virtual bool HasAtmosphereLightRequiringLightingBuild() const =0
virtual void AddPrimitive(FPrimitiveSceneDesc *Primitive)=0
virtual void GetLightIESAtlasSlot(const FLightSceneProxy *Proxy, FLightRenderParameters *Out)=0
virtual void RemovePlanarReflection(class UPlanarReflectionComponent *Component)
Definition SceneInterface.h:273
virtual void OnLevelRemovedFromWorld(const FName &InLevelName, UWorld *InWorld, bool bIsLightingScenario)
Definition SceneInterface.h:693
virtual void UpdatePrimitiveInstances(FPrimitiveSceneDesc *Primitive)=0
virtual bool HasAnyLocalFogVolume() const =0
virtual bool HasAnyExponentialHeightFog() const =0
virtual TConstArrayView< FPrimitiveSceneProxy * > GetPrimitiveSceneProxies() const =0
virtual void SetPhysicsField(class FPhysicsFieldSceneProxy *PhysicsFieldSceneProxy)=0
virtual void ReleasePrimitive(UPrimitiveComponent *Primitive)=0
virtual ENGINE_API void ProcessAndRenderIlluminanceMeter(FRDGBuilder &GraphBuilder, TArrayView< FViewInfo > Views, FRDGTextureRef SceneColorTexture)
Definition SceneInterface.cpp:34
virtual class FRayTracingSkinnedGeometryUpdateQueue * GetRayTracingSkinnedGeometryUpdateQueue()
Definition SceneInterface.h:752
virtual void UpdateCustomPrimitiveData(UPrimitiveComponent *Primitive)=0
virtual class FRayTracingDynamicGeometryCollection * GetRayTracingDynamicGeometryCollection()
Definition SceneInterface.h:750
virtual void UpdateCustomPrimitiveData(FPrimitiveSceneDesc *Primitive, const FCustomPrimitiveData &CustomPrimitiveData)=0
virtual void UpdateEarlyZPassMode()
Definition SceneInterface.h:702
virtual void RemoveWindSource(class UWindDirectionalSourceComponent *WindComponent)=0
virtual void SetPrecomputedVolumeDistanceField(const class FPrecomputedVolumeDistanceField *PrecomputedVolumeDistanceField)
Definition SceneInterface.h:342
virtual void AddInvisibleLight(ULightComponent *Light)=0
virtual void UpdateDecalFadeOutTime(UDecalComponent *Component)=0
virtual void AddPrimitive(UPrimitiveComponent *Primitive)=0
virtual TArray< FAnimBankRecordHandle > RegisterAnimBank(const TConstArrayView< FAnimBankDesc > Descs)=0
virtual void UpdateAllPrimitiveSceneInfos(FRDGBuilder &GraphBuilder, EUpdateAllPrimitiveSceneInfosAsyncOps AsyncOps=EUpdateAllPrimitiveSceneInfosAsyncOps::None)=0
virtual class FFXSystemInterface * GetFXSystem()=0
virtual void StartUpdatePrimitiveTransform(int32 NumPrimitives)
Definition SceneInterface.h:633
virtual bool RequestUniformBufferUpdate(FPrimitiveSceneInfo &PrimitiveSceneInfo)
Definition SceneInterface.h:755
virtual void UpdateCachedRayTracingState(class FPrimitiveSceneProxy *SceneProxy)
Definition SceneInterface.h:747
virtual void UpdateReflectionCaptureTransform(class UReflectionCaptureComponent *Component)
Definition SceneInterface.h:233
virtual void GetDirectionalWindParameters(FVector &OutDirection, float &OutSpeed, float &OutMinGustAmt, float &OutMaxGustAmt) const =0
virtual void RemoveDecal(UDecalComponent *Component)=0
virtual void UpdateSpeedTreeWind(double CurrentTime)=0
virtual FScene * GetRenderScene()=0
virtual void ReloadNaniteFixedFunctionBins()
Definition SceneInterface.h:758
virtual FVolumetricCloudRenderSceneInfo * GetVolumetricCloudSceneInfo()=0
virtual bool GetPreviousLocalToWorld(const FPrimitiveSceneInfo *PrimitiveSceneInfo, FMatrix &OutPreviousLocalToWorld) const
Definition SceneInterface.h:176
virtual void BatchRemovePrimitives(TArrayView< UPrimitiveComponent * > InPrimitives)=0
virtual void UpdatePrimitiveTransforms(IPrimitiveTransformUpdater *Updater)
Definition SceneInterface.h:630
virtual void ValidateSkyLightRealTimeCapture(FRDGBuilder &GraphBuilder, const FViewInfo &View, FRDGTextureRef SceneColorTexture)
Definition SceneInterface.h:267
virtual void AddHairStrands(FHairStrandsInstance *Proxy)=0
virtual void BatchUpdateDecals(TArray< FDeferredDecalUpdateParams > &&UpdateParams)=0
virtual void RemoveLocalFogVolume(class FLocalFogVolumeSceneProxy *FogProxy)=0
virtual void ReleaseReflectionCubemap(UReflectionCaptureComponent *CaptureComponent)
Definition SceneInterface.h:240
virtual void SetSkyLight(FSkyLightSceneProxy *Light)=0
virtual void UpdateLightTransform(ULightComponent *Light)=0
virtual bool HasSkyLightRequiringLightingBuild() const =0
virtual void OnWorldCleanup()
Definition SceneInterface.h:598
virtual void GetPrimitiveUniformShaderParameters_RenderThread(const FPrimitiveSceneInfo *PrimitiveSceneInfo, bool &bHasPrecomputedVolumetricLightmap, FMatrix &PreviousLocalToWorld, int32 &SingleCaptureIndex, bool &OutputVelocity) const
Definition SceneInterface.h:321
virtual void UpdateCachedRenderStates(class FPrimitiveSceneProxy *SceneProxy)
Definition SceneInterface.h:348
virtual void RefreshNaniteRasterBins(FPrimitiveSceneInfo &PrimitiveSceneInfo)
Definition SceneInterface.h:757
virtual void GetRelevantLights(UPrimitiveComponent *Primitive, TArray< const ULightComponent * > *RelevantLights) const =0
virtual class FGPUSkinCache * GetGPUSkinCache()
Definition SceneInterface.h:641
virtual void AllocateAndCaptureFrameSkyEnvMap(FRDGBuilder &GraphBuilder, FSceneRenderer &SceneRenderer, FViewInfo &MainView, bool bShouldRenderSkyAtmosphere, bool bShouldRenderVolumetricCloud, FInstanceCullingManager &InstanceCullingManager)
Definition SceneInterface.h:264
virtual const FVolumetricCloudRenderSceneInfo * GetVolumetricCloudSceneInfo() const =0
virtual void IncrementFrameNumber()
Definition SceneInterface.h:745
virtual void UpdateDecalFadeInTime(UDecalComponent *Component)=0
virtual void UpdateSceneCaptureContents(class USceneCaptureComponent2D *CaptureComponent, class ISceneRenderBuilder &SceneRenderBuilder)
Definition SceneInterface.h:280
virtual bool RequiresHitProxies() const =0
virtual void RemoveRuntimeVirtualTexture(URuntimeVirtualTextureComponent *Component)
Definition SceneInterface.h:294
virtual void AddWindSource(class UWindDirectionalSourceComponent *WindComponent)=0
virtual void RemoveVolumetricCloud(FVolumetricCloudSceneProxy *VolumetricCloudSceneProxy)=0
virtual void GetRectLightAtlasSlot(const FRectLightSceneProxy *Proxy, FLightRenderParameters *Out)=0
virtual FRHIUniformBuffer * GetSpeedTreeUniformBuffer(const FVertexFactory *VertexFactory) const =0
virtual void UpdatePlanarReflectionContents(class UPlanarReflectionComponent *CaptureComponent, class FSceneRenderer &MainSceneRenderer, class ISceneRenderBuilder &SceneRenderBuilder)
Definition SceneInterface.h:282
virtual void RemoveReflectionCapture(class UReflectionCaptureComponent *Component)
Definition SceneInterface.h:227
virtual void UpdateLightColorAndBrightness(ULightComponent *Light)=0
virtual uint32 GetFrameNumber() const
Definition SceneInterface.h:744
virtual void RemoveSkyAtmosphere(FSkyAtmosphereSceneProxy *SkyAtmosphereSceneProxy)=0
virtual void AddSpeedTreeWind(class FVertexFactory *VertexFactory, const class UStaticMesh *StaticMesh)=0
virtual void BatchAddPrimitives(TArrayView< FPrimitiveSceneDesc * > InPrimitives)=0
virtual void UpdateSkyCaptureContents(const USkyLightComponent *CaptureComponent, bool bCaptureEmissiveOnly, UTextureCube *SourceCubemap, FTexture *OutProcessedTexture, float &OutAverageBrightness, FSHVectorRGB3 &OutIrradianceEnvironmentMap, TArray< FFloat16Color > *OutRadianceMap, FLinearColor *SpecifiedCubemapColorScale)
Definition SceneInterface.h:261
virtual void AddPlanarReflection(class UPlanarReflectionComponent *Component)
Definition SceneInterface.h:272
virtual void RemoveLight(ULightComponent *Light)=0
virtual void BatchRemovePrimitives(TArrayView< FPrimitiveSceneDesc * > InPrimitives)=0
virtual void ShowPhysicsField()=0
virtual FPrimitiveSceneInfo * GetPrimitiveSceneInfo(FPrimitiveComponentId PrimitiveId) const =0
virtual void AddDecal(UDecalComponent *Component)=0
virtual void GetWindParameters_GameThread(const FVector &Position, FVector &OutDirection, float &OutSpeed, float &OutMinGustAmt, float &OutMaxGustAmt) const =0
Definition SceneRendering.h:2080
Definition SceneView.h:2212
Definition SceneManagement.h:132
Definition SceneTypes.h:50
Definition ScenePrivate.h:2875
Definition SkeletalMeshUpdater.h:398
Definition SkyAtmosphereRendering.h:138
Definition SkyAtmosphereSceneProxy.h:16
Definition SkyLightSceneProxy.h:17
Definition SparseVolumeTextureViewerSceneProxy.h:22
Definition RenderResource.h:354
Definition VertexFactory.h:661
Definition SceneRendering.h:1132
Definition VolumetricCloudRendering.h:85
Definition VolumetricCloudProxy.h:21
Definition SceneRenderBuilderInterface.h:52
Definition ArrayView.h:139
Definition Array.h:670
Definition AndroidPlatformMisc.h:14
Definition SHMath.h:494
Definition InstancedStaticMeshComponent.h:158
Definition ReflectionCaptureComponent.h:30
Definition RuntimeVirtualTextureComponent.h:41
Definition StaticMesh.h:593
Definition TextureCube.h:15
Definition WindDirectionalSourceComponent.h:24
Definition World.h:918
Definition SceneComponent.h:24
Type
Definition RHIFeatureLevel.h:20
EInvalidateReason
Definition PathTracingOutputInvalidateReason.h:8
int
Definition TestServer.py:515
Definition AnimBank.h:539
Definition AnimBank.h:560
Definition SceneTypes.h:30
Definition DeferredDecalProxy.h:81
Definition ShowFlags.h:56
void DisableFeaturesForUnlit(bool bAllowAtmosphere=false)
Definition ShowFlags.h:272
Definition ExponentialHeightFogStateStream.h:30
Definition HairStrandsInterface.h:216
Definition PrimitiveSceneDesc.h:112
Definition SceneManagement.h:1192
Definition Color.h:48
Definition MeshPassProcessor.h:1559
Definition PrimitiveSceneDesc.h:26
bool bOverridesPostVolumeUserFlags
Definition SceneInterface.h:781
FSceneViewOwner ViewActor
Definition SceneInterface.h:776
TSet< FPrimitiveComponentId > HiddenPrimitives
Definition SceneInterface.h:773
FMatrix ViewRotationMatrix
Definition SceneInterface.h:771
TOptional< TSet< FPrimitiveComponentId > > ShowOnlyPrimitives
Definition SceneInterface.h:774
int32 PostVolumeUserFlags
Definition SceneInterface.h:778
FMatrix ProjectionMatrix
Definition SceneInterface.h:772
FCustomRenderPassRendererInput()
Definition SceneInterface.h:763
class FSceneViewStateInterface * ViewStateInterface
Definition SceneInterface.h:777
class FCustomRenderPassBase * CustomRenderPass
Definition SceneInterface.h:783
bool bIsSceneCapture
Definition SceneInterface.h:779
FEngineShowFlags EngineShowFlags
Definition SceneInterface.h:775
bool bUseMainViewFamilyShowFlags
Definition SceneInterface.h:780
FVector ViewLocation
Definition SceneInterface.h:770
Definition SceneViewOwner.h:12
Definition Optional.h:131
Definition BoxSphereBounds.h:25