UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
GlobalDistanceFieldParameters.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"
9#include "ShaderParameters.h"
11#include "RenderUtils.h"
12#include "RHIStaticStates.h"
14
16
45
63 SHADER_PARAMETER(uint32, NumGlobalSDFClipmaps)
73
75
77{
78 FGlobalDistanceFieldParameters2 ShaderParameters{};
79
80 ShaderParameters.GlobalDistanceFieldPageAtlasTexture = ParameterData.PageAtlasTexture ? ParameterData.PageAtlasTexture : GBlackVolumeTexture->TextureRHI.GetReference();
81 ShaderParameters.GlobalDistanceFieldPageTableTexture = ParameterData.PageTableTexture ? ParameterData.PageTableTexture : GBlackUintVolumeTexture->TextureRHI.GetReference();
82 ShaderParameters.GlobalDistanceFieldMipTexture = ParameterData.MipTexture ? ParameterData.MipTexture : GBlackVolumeTexture->TextureRHI.GetReference();
83
85 {
86 ShaderParameters.GlobalVolumeTranslatedCenterAndExtent[Index] = ParameterData.TranslatedCenterAndExtent[Index];
87 ShaderParameters.GlobalVolumeTranslatedWorldToUVAddAndMul[Index] = ParameterData.TranslatedWorldToUVAddAndMul[Index];
88 ShaderParameters.GlobalDistanceFieldMipTranslatedWorldToUVScale[Index] = ParameterData.MipTranslatedWorldToUVScale[Index];
89 ShaderParameters.GlobalDistanceFieldMipTranslatedWorldToUVBias[Index] = ParameterData.MipTranslatedWorldToUVBias[Index];
90 }
91
92 ShaderParameters.GlobalDistanceFieldMipFactor = ParameterData.MipFactor;
93 ShaderParameters.GlobalDistanceFieldMipTransition = ParameterData.MipTransition;
94 ShaderParameters.GlobalDistanceFieldClipmapSizeInPages = ParameterData.ClipmapSizeInPages;
95 ShaderParameters.GlobalDistanceFieldInvPageAtlasSize = (FVector3f)ParameterData.InvPageAtlasSize;
96 ShaderParameters.GlobalDistanceFieldInvCoverageAtlasSize = (FVector3f)ParameterData.InvCoverageAtlasSize;
97 ShaderParameters.GlobalVolumeDimension = ParameterData.GlobalDFResolution;
98 ShaderParameters.GlobalVolumeTexelSize = 1.0f / ParameterData.GlobalDFResolution;
99 ShaderParameters.MaxGlobalDFAOConeDistance = ParameterData.MaxDFAOConeDistance;
100 ShaderParameters.NumGlobalSDFClipmaps = ParameterData.NumGlobalSDFClipmaps;
101
102 return ShaderParameters;
103}
104
105class UE_DEPRECATED(5.2, "FGlobalDistanceFieldParameters2 should be used from now on.") FGlobalDistanceFieldParameters
106{
108public:
109 void Bind(const FShaderParameterMap& ParameterMap)
110 {
111 GlobalDistanceFieldPageAtlasTexture.Bind(ParameterMap, TEXT("GlobalDistanceFieldPageAtlasTexture"));
112 GlobalDistanceFieldPageTableTexture.Bind(ParameterMap, TEXT("GlobalDistanceFieldPageTableTexture"));
113 GlobalDistanceFieldMipTexture.Bind(ParameterMap, TEXT("GlobalDistanceFieldMipTexture"));
114 GlobalDistanceFieldMipFactor.Bind(ParameterMap, TEXT("GlobalDistanceFieldMipFactor"));
115 GlobalDistanceFieldMipTransition.Bind(ParameterMap, TEXT("GlobalDistanceFieldMipTransition"));
116 GlobalVolumeTranslatedCenterAndExtent.Bind(ParameterMap, TEXT("GlobalVolumeTranslatedCenterAndExtent"));
117 GlobalVolumeTranslatedWorldToUVAddAndMul.Bind(ParameterMap, TEXT("GlobalVolumeTranslatedWorldToUVAddAndMul"));
118 GlobalDistanceFieldMipTranslatedWorldToUVScale.Bind(ParameterMap, TEXT("GlobalDistanceFieldMipTranslatedWorldToUVScale"));
119 GlobalDistanceFieldMipTranslatedWorldToUVBias.Bind(ParameterMap, TEXT("GlobalDistanceFieldMipTranslatedWorldToUVBias"));
120 GlobalDistanceFieldClipmapSizeInPages.Bind(ParameterMap, TEXT("GlobalDistanceFieldClipmapSizeInPages"));
121 GlobalDistanceFieldInvPageAtlasSize.Bind(ParameterMap, TEXT("GlobalDistanceFieldInvPageAtlasSize"));
122 GlobalVolumeDimension.Bind(ParameterMap,TEXT("GlobalVolumeDimension"));
123 GlobalVolumeTexelSize.Bind(ParameterMap,TEXT("GlobalVolumeTexelSize"));
124 MaxGlobalDFAOConeDistance.Bind(ParameterMap,TEXT("MaxGlobalDFAOConeDistance"));
125 NumGlobalSDFClipmaps.Bind(ParameterMap,TEXT("NumGlobalSDFClipmaps"));
126 }
127
128 bool IsBound() const
129 {
131 }
132
134 {
135 Ar << Parameters.GlobalDistanceFieldPageAtlasTexture;
136 Ar << Parameters.GlobalDistanceFieldPageTableTexture;
137 Ar << Parameters.GlobalDistanceFieldMipTexture;
138 Ar << Parameters.GlobalVolumeTranslatedCenterAndExtent;
139 Ar << Parameters.GlobalVolumeTranslatedWorldToUVAddAndMul;
140 Ar << Parameters.GlobalDistanceFieldMipTranslatedWorldToUVScale;
141 Ar << Parameters.GlobalDistanceFieldMipTranslatedWorldToUVBias;
142 Ar << Parameters.GlobalDistanceFieldMipFactor;
143 Ar << Parameters.GlobalDistanceFieldMipTransition;
144 Ar << Parameters.GlobalDistanceFieldClipmapSizeInPages;
145 Ar << Parameters.GlobalDistanceFieldInvPageAtlasSize;
146 Ar << Parameters.GlobalVolumeDimension;
147 Ar << Parameters.GlobalVolumeTexelSize;
148 Ar << Parameters.MaxGlobalDFAOConeDistance;
149 Ar << Parameters.NumGlobalSDFClipmaps;
150 return Ar;
151 }
152
153 template<typename ShaderRHIParamRef>
154 inline void Set(FRHICommandList& RHICmdList, const ShaderRHIParamRef ShaderRHI, const FGlobalDistanceFieldParameterData& ParameterData) const
155 {
156 if (IsBound())
157 {
159
162 SetTextureParameter(BatchedParameters, GlobalDistanceFieldMipTexture, ParameterData.MipTexture ? ParameterData.MipTexture : GBlackVolumeTexture->TextureRHI.GetReference());
163
175 SetShaderValue(BatchedParameters, NumGlobalSDFClipmaps, ParameterData.NumGlobalSDFClipmaps);
176
178 }
179 }
180
181private:
182
197 LAYOUT_FIELD(FShaderParameter, NumGlobalSDFClipmaps)
198};
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define TEXT(x)
Definition Platform.h:1272
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
FArchive & operator<<(FArchive &Ar, FEnvQueryDebugProfileData::FStep &Data)
Definition EnvQueryTypes.cpp:489
FGlobalDistanceFieldParameters2 SetupGlobalDistanceFieldParameters(const FGlobalDistanceFieldParameterData &ParameterData)
Definition GlobalDistanceField.cpp:312
FGlobalDistanceFieldParameters2 SetupGlobalDistanceFieldParameters_Minimal(const FGlobalDistanceFieldParameterData &ParameterData)
Definition GlobalDistanceFieldParameters.h:76
FTexture * GBlackVolumeTexture
Definition GlobalRenderResources.cpp:364
FTexture * GBlackUintVolumeTexture
Definition GlobalRenderResources.cpp:368
UE::Math::TVector< float > FVector3f
Definition MathFwd.h:73
#define LAYOUT_FIELD(T, Name,...)
Definition MemoryLayout.h:471
#define DECLARE_INLINE_TYPE_LAYOUT(T, Interface)
Definition MemoryLayout.h:558
#define SHADER_PARAMETER_TEXTURE(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1708
#define SHADER_PARAMETER_ARRAY(MemberType, MemberName, ArrayDecl)
Definition ShaderParameterMacros.h:1696
#define SHADER_PARAMETER_SAMPLER(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1740
#define BEGIN_SHADER_PARAMETER_STRUCT(StructTypeName, DllStorage)
Definition ShaderParameterMacros.h:1482
#define END_SHADER_PARAMETER_STRUCT()
Definition ShaderParameterMacros.h:1485
#define SHADER_PARAMETER(MemberType, MemberName)
Definition ShaderParameterMacros.h:1684
void SetTextureParameter(FRHIBatchedShaderParameters &BatchedParameters, const FShaderResourceParameter &Parameter, FRHITexture *TextureRHI)
Definition ShaderParameterUtils.h:77
void SetShaderValue(FRHIBatchedShaderParameters &BatchedParameters, const FShaderParameter &Parameter, const ParameterType &Value, uint32 ElementIndex=0)
Definition ShaderParameterUtils.h:24
void SetShaderValueArray(FRHIBatchedShaderParameters &BatchedParameters, const FShaderParameter &Parameter, const ParameterType *Values, uint32 NumElements, uint32 ElementIndex=0)
Definition ShaderParameterUtils.h:51
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition GlobalDistanceFieldParameters.h:18
TRefCountPtr< FRDGPooledBuffer > PageObjectGridBuffer
Definition GlobalDistanceFieldParameters.h:34
int32 NumGlobalSDFClipmaps
Definition GlobalDistanceFieldParameters.h:43
FVector4f TranslatedWorldToUVAddAndMul[GlobalDistanceField::MaxClipmaps]
Definition GlobalDistanceFieldParameters.h:27
FVector InvPageAtlasSize
Definition GlobalDistanceFieldParameters.h:38
FVector4f MipTranslatedWorldToUVScale[GlobalDistanceField::MaxClipmaps]
Definition GlobalDistanceFieldParameters.h:28
FVector4f TranslatedCenterAndExtent[GlobalDistanceField::MaxClipmaps]
Definition GlobalDistanceFieldParameters.h:26
FRHITexture * PageAtlasTexture
Definition GlobalDistanceFieldParameters.h:32
FRHITexture * PageTableTexture
Definition GlobalDistanceFieldParameters.h:35
FRHITexture * MipTexture
Definition GlobalDistanceFieldParameters.h:36
float GlobalDFResolution
Definition GlobalDistanceFieldParameters.h:41
float MaxDFAOConeDistance
Definition GlobalDistanceFieldParameters.h:42
float MipTransition
Definition GlobalDistanceFieldParameters.h:31
FGlobalDistanceFieldParameterData()
Definition GlobalDistanceFieldParameters.h:21
int32 ClipmapSizeInPages
Definition GlobalDistanceFieldParameters.h:37
float MipFactor
Definition GlobalDistanceFieldParameters.h:30
FVector4f MipTranslatedWorldToUVBias[GlobalDistanceField::MaxClipmaps]
Definition GlobalDistanceFieldParameters.h:29
FRHITexture * CoverageAtlasTexture
Definition GlobalDistanceFieldParameters.h:33
int32 MaxPageNum
Definition GlobalDistanceFieldParameters.h:40
FVector InvCoverageAtlasSize
Definition GlobalDistanceFieldParameters.h:39
FRHIBatchedShaderParameters & GetScratchShaderParameters()
Definition RHICommandList.h:1190
Definition RHICommandList.h:3819
void SetBatchedShaderParameters(FRHIGraphicsShader *InShader, FRHIBatchedShaderParameters &InBatchedParameters)
Definition RHICommandList.h:3900
Definition RHIResources.h:2153
Definition ShaderCore.h:323
Definition ShaderParameters.h:56
Definition ShaderParameters.h:87
FTextureRHIRef TextureRHI
Definition RenderResource.h:358
Definition RefCounting.h:454
UE_FORCEINLINE_HINT ReferencedType * GetReference() const
Definition RefCounting.h:584
Definition GlobalDistanceField.cpp:409
const int32 MaxClipmaps
Definition GlobalDistanceFieldConstants.h:10
FORCEINLINE bool IsBound(const T &Func)
Definition Function.h:112
U16 Index
Definition radfft.cpp:71
static UE_FORCEINLINE_HINT void * Memzero(void *Dest, SIZE_T Count)
Definition GenericPlatformMemory.h:586
Definition RHIShaderParameters.h:241