UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SceneCore.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*=============================================================================
4 SceneCore.h: Core scene definitions.
5=============================================================================*/
6
7#pragma once
8
9#include "HAL/Platform.h"
10#include "Math/Color.h"
11#include "RHIFwd.h"
12
13class FLightSceneInfo;
15class FScene;
16class UTextureCube;
18
23{
24public:
25
27 static void InitializeMemoryPool();
28
30 {
31 bool bShouldCreate = false;
32 bool bDynamic = true;
33 bool bRelevant = false;
34 bool bIsLightMapped = true;
35 bool bShadowMapped = false;
37 bool bInsetObjectShadow = false;
38 };
39
40 static FShouldCreateResult ShouldCreate(FLightSceneInfo* LightSceneInfo,FPrimitiveSceneInfo* PrimitiveSceneInfo);
41 static void Create(FLightSceneInfo* LightSceneInfo,FPrimitiveSceneInfo* PrimitiveSceneInfo);
43
46
47 // Accessors.
48 bool HasShadow() const { return bCastShadow; }
49 bool IsLightMapped() const { return bLightMapped; }
50 bool IsDynamic() const { return bIsDynamic; }
51 bool IsShadowMapped() const { return bIsShadowMapped; }
52 bool IsUncachedStaticLighting() const { return bUncachedStaticLighting; }
53 bool HasTranslucentObjectShadow() const { return bHasTranslucentObjectShadow; }
54 bool HasInsetObjectShadow() const { return bHasInsetObjectShadow; }
55 bool CastsSelfShadowOnly() const { return bSelfShadowOnly; }
56 bool IsMobileDynamicLocalLight() const { return bMobileDynamicLocalLight; }
57
58 FORCEINLINE bool IsNaniteMeshProxy() const { return bNaniteMeshProxy; }
59 FORCEINLINE bool ProxySupportsGPUScene() const { return bProxySupportsGPUScene; }
60
61
62 FLightSceneInfo* GetLight() const { return LightSceneInfo; }
63 int32 GetLightId() const { return LightId; }
64 FPrimitiveSceneInfo* GetPrimitiveSceneInfo() const { return PrimitiveSceneInfo; }
65 FLightPrimitiveInteraction* GetNextPrimitive() const { return NextPrimitive; }
66 FLightPrimitiveInteraction* GetNextLight() const { return NextLight; }
67
70 {
71 return (uint32)Interaction->LightId;
72 }
73
76
78 void* operator new(size_t Size);
79 void operator delete(void* RawMemory);
80
81private:
83 FLightSceneInfo* LightSceneInfo;
84
86 FPrimitiveSceneInfo* PrimitiveSceneInfo;
87
89 FLightPrimitiveInteraction** PrevPrimitiveLink;
90
92 FLightPrimitiveInteraction* NextPrimitive;
93
95 FLightPrimitiveInteraction** PrevLightLink;
96
99
101 int32 LightId;
102
104 uint32 bCastShadow : 1;
105
107 uint32 bLightMapped : 1;
108
110 uint32 bIsDynamic : 1;
111
113 uint32 bIsShadowMapped : 1;
114
116 uint32 bUncachedStaticLighting : 1;
117
119 uint32 bHasTranslucentObjectShadow : 1;
120
122 uint32 bHasInsetObjectShadow : 1;
123
125 uint32 bSelfShadowOnly : 1;
126
128 uint32 bMobileDynamicLocalLight : 1;
129
131 uint32 bNaniteMeshProxy : 1;
132
134 uint32 bProxySupportsGPUScene : 1;
135
139
142
143};
144
195
198
#define FORCEINLINE
Definition AndroidPlatform.h:140
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
bool CanIndirectLightingCacheUseVolumeTexture(ERHIFeatureLevel::Type InFeatureLevel)
Definition IndirectLightingCache.cpp:142
bool IsIndirectLightingCacheAllowed(ERHIFeatureLevel::Type InFeatureLevel)
Definition IndirectLightingCache.cpp:137
uint32 Size
Definition VulkanMemory.cpp:4034
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition SceneCore.h:147
float VolumetricFogExtinctionScale
Definition SceneCore.h:179
float VolumetricFogStartDistance
Definition SceneCore.h:187
bool bVisibleInRealTimeSkyCaptures
Definition SceneCore.h:186
float NonDirectionalInscatteringColorDistance
Definition SceneCore.h:173
float FogMaxOpacity
Definition SceneCore.h:162
bool bOverrideLightColorsWithFogInscatteringColors
Definition SceneCore.h:182
float VolumetricFogScatteringDistribution
Definition SceneCore.h:176
uint64 Id
Definition SceneCore.h:160
float FullyDirectionalInscatteringColorDistance
Definition SceneCore.h:172
FExponentialHeightFogSceneData FogData[NumFogs]
Definition SceneCore.h:161
FLinearColor SkyAtmosphereAmbientContributionColorScale
Definition SceneCore.h:190
bool bRenderInMainPass
Definition SceneCore.h:184
FLinearColor VolumetricFogEmissive
Definition SceneCore.h:178
bool bHoldout
Definition SceneCore.h:183
FLinearColor VolumetricFogAlbedo
Definition SceneCore.h:177
float InscatteringColorCubemapAngle
Definition SceneCore.h:171
float DirectionalInscatteringStartDistance
Definition SceneCore.h:168
float StartDistance
Definition SceneCore.h:163
FLinearColor DirectionalInscatteringColor
Definition SceneCore.h:169
FLinearColor FogColor
Definition SceneCore.h:166
UTextureCube * InscatteringColorCubemap
Definition SceneCore.h:170
float FogCutoffDistance
Definition SceneCore.h:165
float VolumetricFogNearFadeInDistance
Definition SceneCore.h:188
float DirectionalInscatteringExponent
Definition SceneCore.h:167
float EndDistance
Definition SceneCore.h:164
static constexpr int NumFogs
Definition SceneCore.h:158
float VolumetricFogDistance
Definition SceneCore.h:180
bool bEnableVolumetricFog
Definition SceneCore.h:175
bool bVisibleInReflectionCaptures
Definition SceneCore.h:185
float VolumetricFogStaticLightingScatteringIntensity
Definition SceneCore.h:181
Definition SceneCore.h:23
static void InitializeMemoryPool()
Definition SceneCore.cpp:95
bool IsMobileDynamicLocalLight() const
Definition SceneCore.h:56
FORCEINLINE bool IsNaniteMeshProxy() const
Definition SceneCore.h:58
FLightPrimitiveInteraction * GetNextLight() const
Definition SceneCore.h:66
bool IsLightMapped() const
Definition SceneCore.h:49
friend uint32 GetTypeHash(const FLightPrimitiveInteraction *Interaction)
Definition SceneCore.h:69
bool HasShadow() const
Definition SceneCore.h:48
FORCEINLINE bool ProxySupportsGPUScene() const
Definition SceneCore.h:59
int32 GetLightId() const
Definition SceneCore.h:63
static FShouldCreateResult ShouldCreate(FLightSceneInfo *LightSceneInfo, FPrimitiveSceneInfo *PrimitiveSceneInfo)
Definition SceneCore.cpp:115
void FlushCachedShadowMapData()
Definition SceneCore.cpp:368
bool CastsSelfShadowOnly() const
Definition SceneCore.h:55
bool IsUncachedStaticLighting() const
Definition SceneCore.h:52
FLightSceneInfo * GetLight() const
Definition SceneCore.h:62
FLightPrimitiveInteraction * GetNextPrimitive() const
Definition SceneCore.h:65
bool HasTranslucentObjectShadow() const
Definition SceneCore.h:53
bool HasInsetObjectShadow() const
Definition SceneCore.h:54
bool IsDynamic() const
Definition SceneCore.h:50
bool IsShadowMapped() const
Definition SceneCore.h:51
static uint32 GetMemoryPoolSize()
Definition SceneCore.cpp:110
FPrimitiveSceneInfo * GetPrimitiveSceneInfo() const
Definition SceneCore.h:64
Definition LightSceneInfo.h:208
Definition PrimitiveSceneInfo.h:266
Definition ScenePrivate.h:2875
Definition TextureCube.h:15
Type
Definition RHIFeatureLevel.h:20
Definition ExponentialHeightFogStateStream.h:30
bool bRelevant
Definition SceneCore.h:33
bool bTranslucentObjectShadow
Definition SceneCore.h:36
bool bShouldCreate
Definition SceneCore.h:31
bool bInsetObjectShadow
Definition SceneCore.h:37
bool bShadowMapped
Definition SceneCore.h:35
bool bDynamic
Definition SceneCore.h:32
bool bIsLightMapped
Definition SceneCore.h:34
Definition Color.h:48