UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SceneTypes.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
7#include "Containers/List.h"
8
11#include "LightDefinitions.h"
12
13#include "SceneTypes.generated.h"
14
15class FLightMap;
17class FShadowMap;
18
19namespace ERHIFeatureLevel { enum Type : int; }
20
23
26
28USTRUCT()
30{
32
33 inline bool operator==(const FCustomPrimitiveData& Other) const
34 {
35 return Data == Other.Data;
36 }
37
38 static constexpr int32 NumCustomPrimitiveDataFloat4s = 9; // Must match NUM_CUSTOM_PRIMITIVE_DATA in SceneData.ush
39 static constexpr int32 NumCustomPrimitiveDataFloats = NumCustomPrimitiveDataFloat4s * 4;
40
41 UPROPERTY(EditAnywhere, Category=Rendering)
42 TArray<float> Data;
43};
44
50{
51public:
53 : Reference(nullptr), ShareOriginTarget(nullptr), ShareOriginRefCount(0)
54 {
55 }
56
58
62 ENGINE_API void Allocate(ERHIFeatureLevel::Type FeatureLevel);
63
70 ENGINE_API void ShareOrigin(FSceneViewStateReference* Target);
71
73 ENGINE_API void Destroy();
74
76 {
77 return Reference;
78 }
79
80private:
81 FSceneViewStateInterface* Reference;
83
84 FSceneViewStateReference* ShareOriginTarget;
85
87 int32 ShareOriginRefCount;
88
89 static TLinkedList<FSceneViewStateReference*>*& GetSceneViewStateList();
90
91 void AllocateInternal(ERHIFeatureLevel::Type FeatureLevel);
92};
93
104
105static_assert(LightType_MAX <= (1 << LightType_NumBits), "LightType_NumBits is not large enough to hold all possible light types");
106
118
127
129namespace EMaterialQualityLevel
130{
139}
140
142
143//
144// EMaterialProperty
145//
146UENUM(BlueprintType)
148{
149 MP_EmissiveColor = 0 UMETA(DisplayName = "Emissive"),
150 MP_Opacity UMETA(DisplayName = "Opacity"),
151 MP_OpacityMask UMETA(DisplayName = "Opacity Mask"),
152 MP_DiffuseColor UMETA(Hidden), // used in Lightmass, not exposed to user, computed from: BaseColor, Metallic Also used in Substrate which uses Albedo/F0 parameterization
153 MP_SpecularColor UMETA(Hidden), // used in Lightmass, not exposed to user, derived from: SpecularColor, Metallic, Specular Also used in Substrate which uses Albedo/F0 parameterization
154 MP_BaseColor UMETA(DisplayName = "Diffuse"),
155 MP_Metallic UMETA(DisplayName = "Metallic"),
156 MP_Specular UMETA(DisplayName = "Specular"),
157 MP_Roughness UMETA(DisplayName = "Roughness "),
158 MP_Anisotropy UMETA(DisplayName = "Anisotropy"),
159 MP_Normal UMETA(DisplayName = "Normal"),
160 MP_Tangent UMETA(DisplayName = "Tangent"),
161 MP_WorldPositionOffset UMETA(DisplayName = "World Position Offset"),
164 MP_SubsurfaceColor UMETA(DisplayName = "Subsurface"),
167 MP_AmbientOcclusion UMETA(DisplayName = "Ambient Occlusion"),
168 MP_Refraction UMETA(DisplayName = "Refraction"),
179 MP_FrontMaterial UMETA(DisplayName = "Front Material"),
182
183 //^^^ New material properties go above here ^^^^
186 MP_MAX UMETA(DisplayName = "None"),
187};
188
214
215
217UENUM()
219{
221 Auto,
223 Always,
225 Rigid,
230 Static,
231};
232
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
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
TRefCountPtr< FLightMap > FLightMapRef
Definition SceneTypes.h:22
ELightComponentType
Definition SceneTypes.h:96
@ LightType_Spot
Definition SceneTypes.h:99
@ LightType_MAX
Definition SceneTypes.h:101
@ LightType_Rect
Definition SceneTypes.h:100
@ LightType_Directional
Definition SceneTypes.h:97
@ LightType_NumBits
Definition SceneTypes.h:102
@ LightType_Point
Definition SceneTypes.h:98
EMaterialProperty
Definition SceneTypes.h:148
@ UMETA
Definition SceneTypes.h:150
@ MP_MaterialAttributes
Definition SceneTypes.h:184
@ MP_EmissiveColor
Definition SceneTypes.h:149
EShadowMapInteractionType
Definition SceneTypes.h:120
@ SMIT_GlobalVolume
Definition SceneTypes.h:122
@ SMIT_Texture
Definition SceneTypes.h:123
@ SMIT_NumBits
Definition SceneTypes.h:125
@ SMIT_None
Definition SceneTypes.h:121
ENGINE_API FString LexToString(EMaterialQualityLevel::Type QualityLevel)
Definition SceneView.cpp:454
ELightMapInteractionType
Definition SceneTypes.h:111
@ LMIT_None
Definition SceneTypes.h:112
@ LMIT_Texture
Definition SceneTypes.h:114
@ LMIT_GlobalVolume
Definition SceneTypes.h:113
@ LMIT_NumBits
Definition SceneTypes.h:116
TRefCountPtr< FShadowMap > FShadowMapRef
Definition SceneTypes.h:25
ESimpleElementBlendMode
Definition SceneTypes.h:191
@ SE_BLEND_Additive
Definition SceneTypes.h:195
@ SE_BLEND_TranslucentAlphaOnlyWriteAlpha
Definition SceneTypes.h:207
@ SE_BLEND_MAX
Definition SceneTypes.h:212
@ SE_BLEND_TranslucentDistanceField
Definition SceneTypes.h:199
@ SE_BLEND_RGBA_MASK_START
Definition SceneTypes.h:209
@ SE_BLEND_TranslucentAlphaOnly
Definition SceneTypes.h:206
@ SE_BLEND_AlphaComposite
Definition SceneTypes.h:201
@ SE_BLEND_RGBA_MASK_END
Definition SceneTypes.h:210
@ SE_BLEND_AlphaBlend
Definition SceneTypes.h:204
@ SE_BLEND_Masked
Definition SceneTypes.h:193
@ SE_BLEND_Opaque
Definition SceneTypes.h:192
@ SE_BLEND_TranslucentDistanceFieldShadowed
Definition SceneTypes.h:200
@ SE_BLEND_Modulate
Definition SceneTypes.h:196
@ SE_BLEND_MaskedDistanceFieldShadowed
Definition SceneTypes.h:198
@ SE_BLEND_AlphaHoldout
Definition SceneTypes.h:202
@ SE_BLEND_Translucent
Definition SceneTypes.h:194
@ SE_BLEND_MaskedDistanceField
Definition SceneTypes.h:197
EShadowCacheInvalidationBehavior
Definition SceneTypes.h:219
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition LightMap.h:50
Definition SceneManagement.h:132
Definition SceneTypes.h:50
FSceneViewStateInterface * GetReference()
Definition SceneTypes.h:75
FSceneViewStateReference()
Definition SceneTypes.h:52
Definition ShadowMap.h:227
Definition Array.h:670
Definition List.h:285
Definition RefCounting.h:454
Definition DebugViewModeHelpers.h:17
Type
Definition SceneTypes.h:132
@ High
Definition SceneTypes.h:134
@ Low
Definition SceneTypes.h:133
@ Medium
Definition SceneTypes.h:135
@ Num
Definition SceneTypes.h:137
@ Epic
Definition SceneTypes.h:136
Definition SceneComponent.h:24
Type
Definition RHIFeatureLevel.h:20
int
Definition TestServer.py:515
Definition SceneTypes.h:30
Definition SceneTypes.h:237
bool bAnyMaterialHasPerInstanceCustomData
Definition SceneTypes.h:242
FVector2f MinMaxMaterialDisplacement
Definition SceneTypes.h:238
bool bAnyMaterialHasPixelAnimation
Definition SceneTypes.h:241
bool bAnyMaterialHasPerInstanceRandom
Definition SceneTypes.h:243
bool bAnyMaterialHasWorldPositionOffset
Definition SceneTypes.h:240
float MaxWorldPositionOffsetDisplacement
Definition SceneTypes.h:239
static CORE_API const TVector2< float > ZeroVector
Definition Vector2D.h:63