UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SceneCaptureComponent.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3
4#pragma once
5
6#include "CoreMinimal.h"
9#include "SceneTypes.h"
10#include "SceneView.h"
11#include "ShowFlags.h"
13#include "SceneCaptureComponent.generated.h"
14
15class AActor;
18class UPrimitiveComponent;
19
32
33#if WITH_EDITORONLY_DATA
36{
37 uint64 Size = 0;
38};
39#endif
40
41USTRUCT(BlueprintType)
43{
45
46 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = SceneCapture)
47 FString ShowFlagName;
48
49 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = SceneCapture)
50 bool Enabled = false;
51
52
53 bool operator == (const FEngineShowFlagsSetting& Other) const
54 {
55 return ShowFlagName == Other.ShowFlagName && Other.Enabled == Enabled;
56 }
57};
58
59UENUM()
61{
63 PRM_LegacySceneCapture UMETA(DisplayName = "Render Scene Primitives (Legacy)"),
65 PRM_RenderScenePrimitives UMETA(DisplayName = "Render Scene Primitives"),
67 PRM_UseShowOnlyList UMETA(DisplayName = "Use ShowOnly List")
68};
69
70 // -> will be exported to EngineDecalClasses.h
71UCLASS(abstract, hidecategories=(Collision, Object, Physics, SceneComponent, Mobility), MinimalAPI)
72class USceneCaptureComponent : public USceneComponent
73{
75
76
77 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=SceneCapture)
78 ESceneCapturePrimitiveRenderMode PrimitiveRenderMode;
79
80 UPROPERTY(interp, Category = SceneCapture, meta = (DisplayName = "Capture Source"))
82
84 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = SceneCapture)
85 uint8 bCaptureEveryFrame : 1;
86
88 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = SceneCapture)
89 uint8 bCaptureOnMovement : 1;
90
92 UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient, DuplicateTransient, SkipSerialization, NonTransactional, AdvancedDisplay, Category = SceneCapture)
93 uint8 bCaptureGpuNextRender : 1;
94
96 UPROPERTY(EditAnywhere, BlueprintReadWrite, Transient, DuplicateTransient, SkipSerialization, NonTransactional, AdvancedDisplay, Category = SceneCapture)
97 uint8 bDumpGpuNextRender : 1;
98
106 uint8 bSuppressGpuCaptureOrDump : 1;
107
113 UPROPERTY(EditAnywhere, BlueprintReadWrite, AdvancedDisplay, Category = SceneCapture)
114 uint8 bExcludeFromSceneTextureExtents : 1;
115
117 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = SceneCapture, meta = (editcondition = "!bCaptureEveryFrame"))
118 bool bAlwaysPersistRenderingState;
119
121 UPROPERTY()
123
125 UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Category=SceneCapture)
126 TArray<TObjectPtr<AActor>> HiddenActors;
127
129 UPROPERTY()
131
133 UPROPERTY(EditInstanceOnly, BlueprintReadWrite, Category=SceneCapture)
134 TArray<TObjectPtr<AActor>> ShowOnlyActors;
135
137 UPROPERTY(EditAnywhere, Category=PlanarReflection, meta=(UIMin = ".1", UIMax = "10"), AdvancedDisplay)
138 float LODDistanceFactor;
139
141 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=SceneCapture, meta=(UIMin = "100", UIMax = "10000"))
142 float MaxViewDistanceOverride;
143
145 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=SceneCapture)
146 int32 CaptureSortPriority;
147
149 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = SceneCapture)
150 bool bUseRayTracingIfEnabled;
151
153 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=SceneCapture, AdvancedDisplay)
155
157 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=SceneCapture, AdvancedDisplay)
158 FName CollectionTransformWorldToLocal;
159
161 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=SceneCapture, AdvancedDisplay)
162 FName CollectionTransformProjection;
163
165 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=SceneCapture)
166 FViewLightingChannels ViewLightingChannels;
167
169 UE_DEPRECATED_FORGAME(5.5, "Public access to this property is deprecated, and it will become private in a future release. Please use SetShowFlagSettings and GetShowFlagSettings instead.")
170 UPROPERTY(EditAnywhere, interp, Blueprintgetter = GetShowFlagSettings, BlueprintSetter = SetShowFlagSettings, Category=SceneCapture)
171 TArray<FEngineShowFlagsSetting> ShowFlagSettings;
172
173 // TODO: Make this a UStruct to set directly?
175 FEngineShowFlags ShowFlags;
176
178 UFUNCTION(BlueprintGetter)
179 ENGINE_API const TArray<FEngineShowFlagsSetting>& GetShowFlagSettings() const;
180
182 UFUNCTION(BlueprintSetter)
183 ENGINE_API void SetShowFlagSettings(const TArray<FEngineShowFlagsSetting>& InShowFlagSettings);
184
185public:
187 UPROPERTY(EditAnywhere, interp, Category = SceneCapture)
188 FString ProfilingEventName;
189
190 ENGINE_API virtual void BeginDestroy() override;
191
192 //~ Begin UActorComponent Interface
193 ENGINE_API virtual void OnComponentDestroyed(bool bDestroyingHierarchy) override;
194 ENGINE_API virtual void OnRegister() override;
195 //~ End UActorComponent Interface
196
198 UFUNCTION(BlueprintCallable, Category = "Rendering|SceneCapture")
199 ENGINE_API void HideComponent(UPrimitiveComponent* InComponent);
200
205 UFUNCTION(BlueprintCallable, Category = "Rendering|SceneCapture")
206 ENGINE_API void HideActorComponents(AActor* InActor, const bool bIncludeFromChildActors = false);
207
209 UFUNCTION(BlueprintCallable, Category = "Rendering|SceneCapture")
210 ENGINE_API void ShowOnlyComponent(UPrimitiveComponent* InComponent);
211
216 UFUNCTION(BlueprintCallable, Category = "Rendering|SceneCapture")
217 ENGINE_API void ShowOnlyActorComponents(AActor* InActor, const bool bIncludeFromChildActors = false);
218
220 UFUNCTION(BlueprintCallable, Category = "Rendering|SceneCapture")
221 ENGINE_API void RemoveShowOnlyComponent(UPrimitiveComponent* InComponent);
222
227 UFUNCTION(BlueprintCallable, Category = "Rendering|SceneCapture")
228 ENGINE_API void RemoveShowOnlyActorComponents(AActor* InActor, const bool bIncludeFromChildActors = false);
229
231 UFUNCTION(BlueprintCallable, Category = "Rendering|SceneCapture")
232 ENGINE_API void ClearShowOnlyComponents();
233
235 UFUNCTION(BlueprintCallable, Category = "Rendering|SceneCapture")
236 ENGINE_API void ClearHiddenComponents();
237
239 UFUNCTION(BlueprintCallable, Category = "Rendering|SceneCapture")
240 ENGINE_API void SetCaptureSortPriority(int32 NewCaptureSortPriority);
241
243 ENGINE_API FSceneViewStateInterface* GetViewState(int32 ViewIndex);
244
245#if WITH_EDITOR
246 ENGINE_API virtual bool CanEditChange(const FProperty* InProperty) const override;
247 ENGINE_API virtual void PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent) override;
248#endif
249
250 ENGINE_API virtual void Serialize(FArchive& Ar);
251
252 ENGINE_API virtual void OnUnregister() override;
253 ENGINE_API virtual void PostLoad() override;
254
256 virtual const AActor* GetViewOwner() const { return nullptr; }
257
258 static ENGINE_API void AddReferencedObjects(UObject* InThis, FReferenceCollector& Collector);
259
260 static ENGINE_API void UpdateDeferredCaptures(FSceneInterface* Scene);
261
263 virtual bool Is2D() const { return false; }
264
266 virtual bool IsCube() const { return false; }
267
268 UE_DEPRECATED(5.6, "SetFrameUpdated is no longer used")
269 bool SetFrameUpdated() { return false; }
270
271 UE_DEPRECATED(5.6, "UpdateSceneCaptureContents now requires a SceneRenderBuilder")
272 virtual void UpdateSceneCaptureContents(FSceneInterface* Scene) {};
273
274 virtual void UpdateSceneCaptureContents(FSceneInterface* Scene, class ISceneRenderBuilder& SceneRenderBuilder) {};
275
282 bool IsUnlit() const
283 {
284 return CaptureSource == SCS_SceneDepth || CaptureSource == SCS_DeviceDepth || CaptureSource == SCS_Normal || CaptureSource == SCS_BaseColor ||
285 (ShowFlags.Lighting == false && (CaptureSource == SCS_SceneColorHDR || CaptureSource == SCS_SceneColorHDRNoAlpha || CaptureSource == SCS_SceneColorSceneDepth));
286 }
287
288protected:
290 ENGINE_API void UpdateShowFlags();
291
292 ENGINE_API void RegisterDelegates();
293 ENGINE_API void UnregisterDelegates();
294 ENGINE_API void ReleaseGarbageReferences();
295
296 ENGINE_API bool IsCulledByDetailMode() const;
297
304
305#if WITH_EDITORONLY_DATA
308
311
312public:
315#endif
316};
317
#define UE_DEPRECATED_FORGAME
Definition CoreMiscDefines.h:377
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
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
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
ESceneCapturePrimitiveRenderMode
Definition SceneCaptureComponent.h:61
EStereoscopicPass
Definition StereoRendering.h:21
uint32 Size
Definition VulkanMemory.cpp:4034
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition Actor.h:257
Definition Archive.h:1208
Definition NameTypes.h:617
Definition UnrealType.h:174
Definition UObjectGlobals.h:2492
Definition SceneInterface.h:106
Definition SceneManagement.h:132
Definition RefCounting.h:283
Definition SceneRenderBuilderInterface.h:52
Definition Array.h:670
Definition EnumAsByte.h:22
Definition IndirectArray.h:20
Definition RefCounting.h:454
Definition MaterialParameterCollection.h:79
Definition Object.h:95
Definition SceneCaptureComponent.h:73
bool IsUnlit() const
Definition SceneCaptureComponent.h:282
virtual bool IsCube() const
Definition SceneCaptureComponent.h:266
TIndirectArray< FSceneViewStateReference > ViewStates
Definition SceneCaptureComponent.h:303
virtual void UpdateSceneCaptureContents(FSceneInterface *Scene, class ISceneRenderBuilder &SceneRenderBuilder)
Definition SceneCaptureComponent.h:274
virtual const AActor * GetViewOwner() const
Definition SceneCaptureComponent.h:256
virtual bool Is2D() const
Definition SceneCaptureComponent.h:263
@ false
Definition radaudio_common.h:23
Definition SceneCaptureComponent.h:43
FString ShowFlagName
Definition SceneCaptureComponent.h:47
Definition ShowFlags.h:56
Definition UnrealType.h:6865
Definition SceneCaptureComponent.h:25
EStereoscopicPass StereoPass
Definition SceneCaptureComponent.h:28
FVector ViewLocation
Definition SceneCaptureComponent.h:26
float FOV
Definition SceneCaptureComponent.h:30
int32 StereoViewIndex
Definition SceneCaptureComponent.h:29
FRotator ViewRotation
Definition SceneCaptureComponent.h:27
Definition SceneView.h:51
Definition SoftObjectPath.h:56
Definition EngineTypes.h:606
Definition ObjectPtr.h:488