45struct FLightFunctionAtlas;
57 SystemFlags |= 1u <<
uint32(In);
71 bool bLightFunctionAtlasEnabled =
false;
108 return ::GetTypeHash(Key.LFMaterialUniqueID);
118#define LIGHT_FUNCTION_ATLAS_MAX_LIGHT_FUNCTION_COUNT 256
168 void AllocateTexture2DAtlas(
FRDGBuilder& GraphBuilder);
172 bool bLightFunctionAtlasEnabled =
false;
184 struct EffectiveLightFunctionSlot
194 struct EffectiveLocalLightSlot
197 uint8 LightFunctionAtlasSlotIndex = 0;
212#if !UE_BUILD_SHIPPING
213 uint32 LightCountSkippedDueToMissingAtlasSlot = 0;
217 FLightFunctionAtlasSetup AtlasSetup;
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define SHADER_PARAMETER_RDG_BUFFER_SRV(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1800
#define SHADER_PARAMETER_RDG_TEXTURE(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1752
#define END_GLOBAL_SHADER_PARAMETER_STRUCT
Definition ShaderParameterMacros.h:1669
#define SHADER_PARAMETER_SAMPLER(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1740
#define BEGIN_GLOBAL_SHADER_PARAMETER_STRUCT
Definition ShaderParameterMacros.h:1663
#define SHADER_PARAMETER(MemberType, MemberName)
Definition ShaderParameterMacros.h:1684
Definition LightSceneInfo.h:208
Definition MaterialRenderProxy.h:102
Definition RenderGraphResources.h:1321
Definition RenderGraphBuilder.h:49
Definition RenderGraphResources.h:571
Definition ScenePrivate.h:2875
Definition SceneRendering.h:1970
Definition SceneRendering.h:1132
Definition UnrealString.h.inl:34
Definition LightFunctionAtlas.cpp:122
uint32 GetTypeHash(FLightFunctionSlotKey Key)
Definition LightFunctionAtlas.h:106
ELightFunctionAtlasSystem
Definition LightFunctionAtlas.h:38
bool IsEnabled(const FViewInfo &InView, ELightFunctionAtlasSystem In)
Definition LightFunctionAtlas.cpp:975
TRDGUniformBufferRef< FLightFunctionAtlasGlobalParameters > BindGlobalParameters(FRDGBuilder &GraphBuilder, const FViewInfo &InView)
Definition LightFunctionAtlas.cpp:990
void OnRenderBegin(FLightFunctionAtlas &In, FScene &InScene, TArray< FViewInfo > &InViews, const FViewFamilyInfo &InViewFamily)
Definition LightFunctionAtlas.cpp:985
FLightFunctionAtlasGlobalParameters * GetGlobalParametersStruct(FRDGBuilder &GraphBuilder, const FViewInfo &InView)
Definition LightFunctionAtlas.cpp:995
Definition ScreenPass.h:41
Definition LightSceneInfo.h:146
Definition RendererInterface.h:494
Definition LightFunctionAtlas.h:121
FMatrix44f Transform
Definition LightFunctionAtlas.h:123
FVector4f Parameters
Definition LightFunctionAtlas.h:122
Definition LightFunctionAtlas.h:48
void AddSystem(ELightFunctionAtlasSystem In)
Definition LightFunctionAtlas.h:55
FLightFunctionAtlas * GetLightFunctionAtlas() const
Definition LightFunctionAtlas.h:65
void ClearSystems()
Definition LightFunctionAtlas.h:60
bool GetLightFunctionAtlasEnabled() const
Definition LightFunctionAtlas.h:67
bool UsesLightFunctionAtlas(ELightFunctionAtlasSystem In) const
Definition LightFunctionAtlas.h:66
void SetData(FLightFunctionAtlas *InLightFunctionAtlas, bool bInLightFunctionAtlasEnabled)
Definition LightFunctionAtlas.h:49
Definition LightFunctionAtlas.h:127
uint32 SlotResolution
Definition LightFunctionAtlas.h:129
uint32 EdgeSize
Definition LightFunctionAtlas.h:128
Definition LightFunctionAtlas.h:76
uint32 GetViewIndex() const
Definition LightFunctionAtlas.h:83
bool GetLightFunctionAtlasEnabled() const
Definition LightFunctionAtlas.h:81
bool UsesLightFunctionAtlas(ELightFunctionAtlasSystem In) const
Definition LightFunctionAtlas.h:82
FLightFunctionAtlasViewData(FLightFunctionAtlasSceneData *InSceneData, uint32 InViewIndex)
Definition LightFunctionAtlas.h:78
FLightFunctionAtlasViewData()
Definition LightFunctionAtlas.h:77
FLightFunctionAtlas * GetLightFunctionAtlas() const
Definition LightFunctionAtlas.h:80
Definition LightFunctionAtlas.h:136
static FLightFunctionAtlasGlobalParameters * GetDefaultLightFunctionAtlasGlobalParametersStruct(FRDGBuilder &GraphBuilder)
Definition LightFunctionAtlas.cpp:560
FLightFunctionAtlasGlobalParameters * GetLightFunctionAtlasGlobalParametersStruct(FRDGBuilder &GraphBuilder, uint32 ViewIndex)
Definition LightFunctionAtlas.cpp:530
FScreenPassTexture AddDebugVisualizationPasses(FRDGBuilder &GraphBuilder, const FViewInfo &View, FScreenPassTexture &ScreenPassSceneColor) const
Definition LightFunctionAtlas.cpp:828
void UpdateLightFunctionAtlas(const TArray< FViewInfo > &Views)
Definition LightFunctionAtlas.cpp:333
void BeginSceneFrame(const FViewFamilyInfo &ViewFamily, TArray< FViewInfo > &Views, FLightFunctionAtlasSceneData &LightFunctionAtlasSceneData, bool bShouldRenderVolumetricFog)
Definition LightFunctionAtlas.cpp:276
TRDGUniformBufferRef< FLightFunctionAtlasGlobalParameters > GetDefaultLightFunctionAtlasGlobalParameters(FRDGBuilder &GraphBuilder)
Definition LightFunctionAtlas.cpp:570
bool IsLightFunctionAtlasEnabled() const
Definition LightFunctionAtlas.h:140
void UpdateRegisterLightSceneInfo(FLightSceneInfo *LightSceneInfo)
Definition LightFunctionAtlas.cpp:240
void RenderLightFunctionAtlas(FRDGBuilder &GraphBuilder, TArray< FViewInfo > &Views)
Definition LightFunctionAtlas.cpp:580
FLightFunctionAtlas()
Definition LightFunctionAtlas.cpp:231
virtual ~FLightFunctionAtlas()
Definition LightFunctionAtlas.cpp:236
FString GetOutOfSlotWarningMessage()
Definition LightFunctionAtlas.cpp:807
TRDGUniformBufferRef< FLightFunctionAtlasGlobalParameters > GetLightFunctionAtlasGlobalParameters(FRDGBuilder &GraphBuilder, uint32 ViewIndex)
Definition LightFunctionAtlas.cpp:545
void ClearEmptySceneFrame(FViewInfo *View=nullptr, uint32 ViewIndex=0, FLightFunctionAtlasSceneData *LightFunctionAtlasSceneData=nullptr)
Definition LightFunctionAtlas.cpp:255
bool IsOutOfSlots()
Definition LightFunctionAtlas.cpp:798
Definition LightFunctionAtlas.h:91
uint32 EffectiveLightFunctionSlotIndex
Definition LightFunctionAtlas.h:94
uint32 LFMaterialUniqueID
Definition LightFunctionAtlas.h:92
FLightFunctionSlotKey()
Definition LightFunctionAtlas.h:96
bool operator==(const FLightFunctionSlotKey &Other) const
Definition LightFunctionAtlas.h:100
Definition LightFunctionAtlas.h:112
const FMaterialRenderProxy * LightFunctionMaterial
Definition LightFunctionAtlas.h:113
FIntPoint Min
Definition LightFunctionAtlas.h:114
FIntPoint Max
Definition LightFunctionAtlas.h:115