UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SceneCaptureComponent2D.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
11#include "SceneCaptureComponent2D.generated.h"
12
14class FSceneInterface;
15
16UENUM()
28
32UCLASS(hidecategories=(Collision, Object, Physics, SceneComponent), ClassGroup=Rendering, editinlinenew, meta=(BlueprintSpawnableComponent), MinimalAPI)
34{
36
37public:
38
39 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Projection, meta=(DisplayName = "Projection Type"))
41
43 UPROPERTY(interp, EditAnywhere, BlueprintReadWrite, Category=Projection, meta=(DisplayName = "Field of View", UIMin = "5.0", UIMax = "170", ClampMin = "0.001", ClampMax = "360.0", editcondition = "ProjectionType==0"))
44 float FOVAngle;
45
47 UPROPERTY(Interp, EditAnywhere, BlueprintReadWrite, Category=Projection, meta = (UIMin = "5.0", UIMax = "170", ClampMin = "0.001", ClampMax = "360.0", Units = deg, EditCondition = "bEnableFirstPersonFieldOfView"))
49
51 UPROPERTY(Interp, EditAnywhere, BlueprintReadWrite, Category=Projection, meta=(UIMin = "0.001", UIMax = "1.0", ClampMin = "0.001", ClampMax = "1.0", EditCondition = "bEnableFirstPersonScale"))
52 float FirstPersonScale;
53
55 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Projection, meta = (editcondition = "ProjectionType==1"))
56 float OrthoWidth;
57
59 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Projection, meta = (editcondition = "ProjectionType==1"))
60 bool bAutoCalculateOrthoPlanes;
61
63 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Projection, meta = (editcondition = "ProjectionType==1 && bAutoCalculateOrthoPlanes"))
64 float AutoPlaneShift;
65
67 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Projection, meta = (editcondition = "ProjectionType==1"))
68 bool bUpdateOrthoPlanes;
69
71 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Projection, meta = (editcondition = "ProjectionType==1 && bUpdateOrthoPlanes"))
72 bool bUseCameraHeightAsViewTarget;
73
75 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Projection, meta = (UIMin="0.0", ClampMin="0.0", UIMax="1.0", ClampMax="1.0"))
76 float Overscan;
77
79 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=SceneCapture)
81
83 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=SceneCapture)
85
86 UPROPERTY(interp, Category=PostProcessVolume, meta=(ShowOnlyInnerProperties))
87 struct FPostProcessSettings PostProcessSettings;
88
90 UPROPERTY(interp, Category=PostProcessVolume, BlueprintReadWrite, meta=(UIMin = "0.0", UIMax = "1.0"))
91 float PostProcessBlendWeight;
92
93 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Projection, meta = (InlineEditConditionToggle))
95
99 UPROPERTY(EditAnywhere, BlueprintReadWrite, AdvancedDisplay, Category = Projection, meta = (editcondition = "bOverride_CustomNearClippingPlane"))
100 float CustomNearClippingPlane = 0;
101
103 UPROPERTY(BlueprintReadWrite, AdvancedDisplay, Category = Projection)
105
107 UPROPERTY(BlueprintReadWrite, AdvancedDisplay, Category = Projection)
109
110 UPROPERTY(meta = (DeprecatedProperty, DeprecationMessage = "5.4 - bUseFauxOrthoViewPos has been deprecated alongside updates to Orthographic camera fixes"))
112
115 UPROPERTY(EditAnywhere, BlueprintReadWrite, AdvancedDisplay, Category = Projection, meta = (editcondition = "ProjectionType==1"))
117
119 UPROPERTY(EditAnywhere, BlueprintReadWrite, AdvancedDisplay, Category = Projection, meta = (ClampMin = "1", ClampMax = "64", editcondition = "ProjectionType==1 && bEnableOrthographicTiling"))
120 int32 NumXTiles = 4;
121
123 UPROPERTY(EditAnywhere, BlueprintReadWrite, AdvancedDisplay, Category = Projection, meta = (ClampMin = "1", ClampMax = "64", editcondition = "ProjectionType==1 && bEnableOrthographicTiling"))
124 int32 NumYTiles = 4;
125
130 UPROPERTY(EditAnywhere, BlueprintReadWrite, AdvancedDisplay, Category=SceneCapture)
131 bool bEnableClipPlane;
132
134 UPROPERTY(EditAnywhere, BlueprintReadWrite, AdvancedDisplay, Category=SceneCapture)
136
138 UPROPERTY(EditAnywhere, BlueprintReadWrite, AdvancedDisplay, Category=SceneCapture)
140
142 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=PassInfo, meta = (EditCondition = "CaptureSource == ESceneCaptureSource::SCS_SceneDepth || CaptureSource == ESceneCaptureSource::SCS_DeviceDepth || CaptureSource == ESceneCaptureSource::SCS_BaseColor || CaptureSource == ESceneCaptureSource::SCS_Normal || CaptureSource == ESceneCaptureSource::SCS_SceneColorHDR || CaptureSource == ESceneCaptureSource::SCS_SceneColorHDRNoAlpha || CaptureSource == ESceneCaptureSource::SCS_SceneColorSceneDepth"))
144
151 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=PassInfo)
153
159 UPROPERTY(Transient, BlueprintReadWrite, Category = SceneCapture)
161
163 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Projection)
165
167 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=Projection)
169
171 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = SceneCapture, meta = (DisplayName = "Fog only on rendered pixels"))
173
175 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=PassInfo)
176 uint32 bMainViewFamily : 1;
177
179 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = PassInfo)
180 uint32 bMainViewResolution : 1;
181
183 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=PassInfo)
184 uint32 bMainViewCamera : 1;
185
187 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = PassInfo, meta = (EditCondition = "bMainViewCamera"))
189
191 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = PassInfo)
192 uint32 bIgnoreScreenPercentage : 1;
193
195 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=PassInfo, meta = (EditCondition = "bMainViewResolution || bMainViewCamera"))
197
199 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=PassInfo, meta = (EditCondition = "bRenderInMainRenderer && (CaptureSource == ESceneCaptureSource::SCS_SceneDepth || CaptureSource == ESceneCaptureSource::SCS_DeviceDepth || CaptureSource == ESceneCaptureSource::SCS_BaseColor || CaptureSource == ESceneCaptureSource::SCS_Normal || CaptureSource == ESceneCaptureSource::SCS_SceneColorHDR || CaptureSource == ESceneCaptureSource::SCS_SceneColorHDRNoAlpha || CaptureSource == ESceneCaptureSource::SCS_SceneColorSceneDepth)"))
200 FName UserSceneTextureBaseColor;
201
203 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=PassInfo, meta = (EditCondition = "bRenderInMainRenderer && (CaptureSource == ESceneCaptureSource::SCS_SceneDepth || CaptureSource == ESceneCaptureSource::SCS_DeviceDepth || CaptureSource == ESceneCaptureSource::SCS_BaseColor || CaptureSource == ESceneCaptureSource::SCS_Normal || CaptureSource == ESceneCaptureSource::SCS_SceneColorHDR || CaptureSource == ESceneCaptureSource::SCS_SceneColorHDRNoAlpha || CaptureSource == ESceneCaptureSource::SCS_SceneColorSceneDepth)"))
204 FName UserSceneTextureNormal;
205
207 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=PassInfo, meta = (EditCondition = "bRenderInMainRenderer && (CaptureSource == ESceneCaptureSource::SCS_SceneDepth || CaptureSource == ESceneCaptureSource::SCS_DeviceDepth || CaptureSource == ESceneCaptureSource::SCS_BaseColor || CaptureSource == ESceneCaptureSource::SCS_Normal || CaptureSource == ESceneCaptureSource::SCS_SceneColorHDR || CaptureSource == ESceneCaptureSource::SCS_SceneColorHDRNoAlpha || CaptureSource == ESceneCaptureSource::SCS_SceneColorSceneDepth)"))
208 FName UserSceneTextureSceneColor;
209
211 {
212 return bRenderInMainRenderer && (CaptureSource == ESceneCaptureSource::SCS_SceneDepth || CaptureSource == ESceneCaptureSource::SCS_DeviceDepth || CaptureSource == ESceneCaptureSource::SCS_BaseColor || CaptureSource == ESceneCaptureSource::SCS_Normal || CaptureSource == ESceneCaptureSource::SCS_SceneColorHDR || CaptureSource == ESceneCaptureSource::SCS_SceneColorHDRNoAlpha || CaptureSource == ESceneCaptureSource::SCS_SceneColorSceneDepth);
213 }
214
215 inline bool ShouldRenderWithMainViewResolution() const
216 {
217 return bMainViewResolution || bMainViewCamera || (ShouldRenderInMainRenderer() && (!UserSceneTextureBaseColor.IsNone() || !UserSceneTextureNormal.IsNone() || !UserSceneTextureSceneColor.IsNone()));
218 }
219
220 inline bool ShouldRenderWithMainViewFamily() const
221 {
222 return bMainViewFamily || ShouldRenderWithMainViewResolution();
223 }
224
225 inline bool ShouldRenderWithMainViewCamera() const
226 {
227 return bMainViewCamera;
228 }
229
230 inline bool ShouldIgnoreScreenPercentage() const
231 {
232 // User Scene Texture outputs are always in the scaled view resolution, so ignore the bIgnoreScreenPercentage flag if either is set
233 return ShouldRenderInMainRenderer() ? bIgnoreScreenPercentage && UserSceneTextureBaseColor.IsNone() && UserSceneTextureNormal.IsNone() && UserSceneTextureSceneColor.IsNone() : bIgnoreScreenPercentage;
234 }
235
238
240 int32 TileID = 0;
241
243 const FSceneViewFamily* MainViewFamily = nullptr;
244
245 //~ Begin UActorComponent Interface
246 ENGINE_API virtual void OnComponentDestroyed(bool bDestroyingHierarchy) override;
247 ENGINE_API virtual void OnRegister() override;
248 ENGINE_API virtual void SendRenderTransform_Concurrent() override;
249 virtual bool RequiresGameThreadEndOfFrameUpdates() const override
250 {
251 // this method could probably be removed allowing them to run on any thread, but it isn't worth the trouble
252 return true;
253 }
254 ENGINE_API virtual void TickComponent(float DeltaTime, enum ELevelTick TickType, FActorComponentTickFunction *ThisTickFunction) override;
255
258
259 //~ End UActorComponent Interface
260
261 //~ Begin UObject Interface
262#if WITH_EDITOR
263 ENGINE_API virtual bool CanEditChange(const FProperty* InProperty) const override;
264 ENGINE_API virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
265#endif // WITH_EDITOR
266
268 ENGINE_API virtual void Serialize(FArchive& Ar);
269
270 //~ End UObject Interface
271
273
274 ENGINE_API virtual void GetCameraView(float DeltaTime, FMinimalViewInfo& OutDesiredView);
275
277 UFUNCTION(BlueprintCallable, Category="Rendering")
278 void AddOrUpdateBlendable(TScriptInterface<IBlendableInterface> InBlendableObject, float InWeight = 1.0f) { PostProcessSettings.AddBlendable(InBlendableObject, InWeight); }
279
281 UFUNCTION(BlueprintCallable, Category = "Rendering")
282 void RemoveBlendable(TScriptInterface<IBlendableInterface> InBlendableObject) { PostProcessSettings.RemoveBlendable(InBlendableObject); }
283
289
290 // For backwards compatibility
292
298 UFUNCTION(BlueprintCallable,Category = "Rendering|SceneCapture")
300
301 ENGINE_API void UpdateSceneCaptureContents(FSceneInterface* Scene, ISceneRenderBuilder& SceneRenderBuilder) override;
302
303 /* Return if orthographic tiling rendering is enabled or not */
305
306 /* Return number of X tiles to render (to be used when orthographic tiling rendering is enabled) */
308
309 /* Return number of Y tiles to render (to be used when orthographic tiling rendering is enabled) */
311
313 virtual bool Is2D() const override { return true; }
314
315#if WITH_EDITORONLY_DATA
317
320#endif
321};
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
ELevelTick
Definition EngineBaseTypes.h:70
ESceneCaptureCompositeMode
Definition EngineTypes.h:550
ESceneCaptureSource
Definition EngineTypes.h:532
#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
AUTORTFM_INFER constexpr auto Projection(Invocable0Type &&Invocable0, InvocableTypes &&... Invocables)
Definition Projection.h:108
ESceneCaptureUnlitViewmode
Definition SceneCaptureComponent2D.h:18
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition NameTypes.h:617
Definition UnrealType.h:174
Definition UObjectGlobals.h:2492
Definition SceneInterface.h:106
Definition SceneView.h:2212
Definition BlendableInterface.h:96
Definition SceneRenderBuilderInterface.h:52
Definition SceneViewExtension.h:113
Definition Array.h:670
Definition EnumAsByte.h:22
Definition ScriptInterface.h:139
Definition Object.h:95
Definition SceneCaptureComponent.h:73
virtual ENGINE_API void OnComponentDestroyed(bool bDestroyingHierarchy) override
Definition SceneCaptureComponent.cpp:291
virtual ENGINE_API void OnRegister() override
Definition SceneCaptureComponent.cpp:264
static ENGINE_API void AddReferencedObjects(UObject *InThis, FReferenceCollector &Collector)
Definition SceneCaptureComponent.cpp:303
Definition TextureRenderTarget2D.h:104
Definition CameraTypes.h:16
Definition FieldSystemNoiseAlgo.cpp:6
@ false
Definition radaudio_common.h:23
Definition EngineBaseTypes.h:571
Definition CameraTypes.h:37
Definition Scene.h:693
Definition UnrealType.h:6865
Definition ObjectPtr.h:488
Definition IntPoint.h:25