UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
NaniteShared.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"
6#include "SceneView.h"
8#include "GlobalShader.h"
9#include "UnifiedBuffer.h"
11#include "RenderGraphUtils.h"
13#include "NaniteFeedback.h"
14#include "MaterialDomain.h"
15#include "MaterialShaderType.h"
16#include "MaterialShader.h"
17#include "Misc/ScopeRWLock.h"
19#include "LightMapRendering.h" // TODO: Remove with later refactor (moving Nanite shading into its own files)
20#include "RenderUtils.h"
22
24
26
27struct FSceneTextures;
28struct FDBufferTextures;
29
30namespace Nanite
31{
32
33// Counterpart to FPackedNaniteView in NanitePackedNaniteView.ush
35{
38
43
48
65 float NearPlane;
66
68
71
75
77
78 FIntVector4 HZBTestViewRect; // In full resolution
79
88 int32 SceneRendererPrimaryViewId; // The primary view ID either refers to this view itself, OR it refers (in the case of a secondsry, shadow view mostly) to the relevant primary view.
89
95 void UpdateLODScales(const float NaniteMaxPixelsPerEdge, const float MinPixelsPerEdgeHW);
96};
97
99{
100public:
103
105 static FPackedViewArray* Create(FRDGBuilder& GraphBuilder, const FPackedView& View);
106
108 static FPackedViewArray* Create(FRDGBuilder& GraphBuilder, uint32 NumViews, ArrayType&& Views);
109
112
114 const ArrayType& GetViews() const
115 {
116 SetupTask.Wait();
117 check(Views.Num() == NumViews);
118 return Views;
119 }
120
122
124 {
125 return SetupTask;
126 }
127
128private:
131 {}
132
133 // Packed views containing all expanded mips.
134 ArrayType Views;
135
136 // The task that is generating the Views data array, if any.
137 mutable UE::Tasks::FTask SetupTask;
138
139 RDG_FRIEND_ALLOCATOR_FRIEND(FPackedViewArray);
140};
141
143{
149 float MinBoundsRadius = 0.0f;
150 float LODScaleFactor = 1.0f;
153
158
159 float RangeBasedCullingDistance = 0.0f; // not used unless the flag NANITE_VIEW_FLAG_DISTANCE_CULL is set
160
161 FIntRect HZBTestViewRect = {0, 0, 0, 0};
162
164
168 float CullingViewMinRadiusTestFactorSq = 0.0f; // not used unless the flag NANITE_VIEW_MIN_SCREEN_RADIUS_CULL is set and support is compiled into the culling shader
169
170 FPlane GlobalClippingPlane = {0.0f, 0.0f, 0.0f, 0.0f};
171
172 // Identifies the bit in the GPUScene::InstanceVisibilityMaskBuffer associated with the current view.
173 // Visibility mask buffer may be used if this is non-zero.
175 uint32 LightingChannelMask = 0b111; // All channels are visible by default
178
180 // clip-space Far/Near extra culling range for dynamic geometry (for VSM)
181 // discards geometry that fails the culling test See FBoxCull::Frustum
182 // Defaults to (0.0f, FLT_MAX) which means no extra culling
184};
185
186// Helper function to setup the overrides for a culling view.
187// This is used for shadow views that have an associated "main" view that drives distance/screensize elements of the culling.
189
191
192// Convenience function to pull relevant packed view parameters out of a FViewInfo
194(
195 const FViewInfo& View,
196 FIntPoint RasterContextSize,
198 uint32 StreamingPriorityCategory,
199 float MinBoundsRadius,
200 float MaxPixelsPerEdgeMultipler,
202);
203
204// Convenience function to pull relevant packed view parameters out of a FViewInfo and create a packed view
206 const FViewInfo& View,
207 FIntPoint RasterContextSize,
209 uint32 StreamingPriorityCategory = 0,
210 float MinBoundsRadius = 0.0f,
211 float MaxPixelsPerEdgeMultipler = 1.0f,
213 const FIntRect* InHZBTestViewRect = nullptr,
214 bool bUseCurrentPreTranslationForHZB = false
215);
216
219
228
237
238/*
239 * GPU side buffers containing Nanite resource data.
240 */
242{
243public:
245 {
246 // Used for statistics
248 };
249
250 // Used for statistics
253
258
261
262public:
263 virtual void InitRHI(FRHICommandListBase& RHICmdList) override;
264 virtual void ReleaseRHI() override;
265
266 void Update(FRDGBuilder& GraphBuilder); // Called once per frame before any Nanite rendering has occurred.
267
271 static uint32 GetMaxNodes();
275
277
278 static bool UseExtendedClusterSize();
282
283 inline PassBuffers& GetMainPassBuffers() { return MainPassBuffers; }
284 inline PassBuffers& GetPostPassBuffers() { return PostPassBuffers; }
285
289
290#if !UE_BUILD_SHIPPING
291 FFeedbackManager* GetFeedbackManager() { return FeedbackManager; }
292#endif
293private:
294 PassBuffers MainPassBuffers;
295 PassBuffers PostPassBuffers;
296
297 // Used for statistics
299
300 // Used for visualizations
301 TRefCountPtr<FRDGPooledBuffer> ShadingBinDataBuffer;
302 TRefCountPtr<IPooledRenderTarget> FastClearTileVis;
303
304#if !UE_BUILD_SHIPPING
305 FFeedbackManager* FeedbackManager = nullptr;
306#endif
307};
308
310
311} // namespace Nanite
312
322
324
325 // Multi view
331
333
335 SHADER_PARAMETER(FIntVector4, PageConstants)
336 SHADER_PARAMETER(uint32, MaxNodes)
337 SHADER_PARAMETER(uint32, MaxVisibleClusters)
338 SHADER_PARAMETER(uint32, MaxCandidatePatches)
339 SHADER_PARAMETER(uint32, MaxPatchesPerGroup)
341 SHADER_PARAMETER(float, InvDiceRate)
342 SHADER_PARAMETER(uint32, RenderFlags)
343 SHADER_PARAMETER(uint32, DebugFlags)
345
347
349 SHADER_PARAMETER(FIntVector4, PageConstants)
350 SHADER_PARAMETER(uint32, MaxNodes)
351
355
357
359{
360public:
366
368 {
369 return DoesPlatformSupportNanite(Parameters.Platform);
370 }
371
373 {
375
376 OutEnvironment.SetDefine(TEXT("VF_SUPPORTS_PRIMITIVE_SCENE_DATA"), 1);
377
378 // Use the spline mesh texture when possible for performance
379 OutEnvironment.SetDefine(TEXT("USE_SPLINE_MESH_SCENE_RESOURCES"), UseSplineMeshSceneResources(Parameters.Platform));
380
381 // Force shader model 6.0+
382 OutEnvironment.CompilerFlags.Add(CFLAG_ForceDXC);
383 OutEnvironment.CompilerFlags.Add(CFLAG_HLSL2021);
384 OutEnvironment.CompilerFlags.Add(CFLAG_WarningsAsErrors);
385 }
386};
387
389{
390public:
396
397 static bool IsVertexProgrammable(const FMaterialShaderParameters& MaterialParameters, bool bHWRasterShader)
398 {
399 const bool bPixelProgrammable = IsPixelProgrammable(MaterialParameters);
400 const bool bHasVertexUVs = bPixelProgrammable && (MaterialParameters.bHasVertexInterpolator || MaterialParameters.NumCustomizedUVs > 0);
401 const bool bHasTessellation = (!bHWRasterShader && MaterialParameters.bIsTessellationEnabled);
402 return MaterialParameters.bHasVertexPositionOffsetConnected || bHasVertexUVs || bHasTessellation || MaterialParameters.bHasMaterialCacheOutput || MaterialParameters.bHasFirstPersonInterpolation;
403 }
404
405 static bool IsVertexProgrammable(uint32 MaterialBitFlags)
406 {
407 return (MaterialBitFlags & NANITE_MATERIAL_VERTEX_PROGRAMMABLE_FLAGS);
408 }
409
410 static bool IsPixelProgrammable(const FMaterialShaderParameters& MaterialParameters)
411 {
412 return MaterialParameters.bIsMasked || MaterialParameters.bHasPixelDepthOffsetConnected;
413 }
414
415 static bool IsPixelProgrammable(uint32 MaterialBitFlags)
416 {
417 return (MaterialBitFlags & NANITE_MATERIAL_PIXEL_PROGRAMMABLE_FLAGS);
418 }
419
421 const FMaterialShaderParameters& MaterialParameters,
424 bool bHWRasterShader)
425 {
426 if (MaterialParameters.bIsDefaultMaterial)
427 {
428 return true;
429 }
430
431 // Custom materials should compile only the specific combination that is actually used
432 // TODO: The status of material attributes on the FMaterialShaderParameters is determined without knowledge of any static
433 // switches' values, and therefore when true could represent the set of materials that both enable them and do not. We could
434 // isolate a narrower set of required shaders if FMaterialShaderParameters reflected the status after static switches are
435 // applied.
436 //return IsVertexProgrammable(MaterialParameters, bHWRasterShader) == bPermutationVertexProgrammable &&
437 // IsPixelProgrammable(MaterialParameters) == bPermutationPixelProgrammable;
438 return (IsVertexProgrammable(MaterialParameters, bHWRasterShader) || !bPermutationVertexProgrammable) &&
439 (IsPixelProgrammable(MaterialParameters) || !bPermutationPixelProgrammable) &&
441 }
442
443
445 {
446 // Always compile default material as the fast opaque "fixed function" raster path
448
449 // Compile this pixel shader if it requires programmable raster
451 {
452 bValidMaterial = true;
453 }
454
455 return
459 }
460
462 {
463 // Always compile default material as the fast opaque "fixed function" raster path
465
466 // Compile this vertex shader if it requires programmable raster
467 static const bool bHWRasterShader = true; // all vertex permutations are HWRaster
468 if (Parameters.MaterialParameters.bIsUsedWithNanite &&
470 {
471 bValidMaterial = true;
472 }
473
474 return
478 }
479
481 {
482 // Always compile default material as the fast opaque "fixed function" raster path
484
485 // Compile this compute shader if it requires programmable raster
486 static const bool bHWRasterShader = false; // all compute permutations are SWRaster
487 if (Parameters.MaterialParameters.bIsUsedWithNanite &&
489 {
490 bValidMaterial = true;
491 }
492
493 return
497 }
498
500 {
502
503 // Force shader model 6.0+
504 OutEnvironment.CompilerFlags.Add(CFLAG_ForceDXC);
505 OutEnvironment.CompilerFlags.Add(CFLAG_HLSL2021);
506 OutEnvironment.CompilerFlags.Add(CFLAG_ShaderBundle);
507 OutEnvironment.CompilerFlags.Add(CFLAG_RootConstants);
509
510 OutEnvironment.SetDefine(TEXT("VF_SUPPORTS_PRIMITIVE_SCENE_DATA"), 1);
511 OutEnvironment.SetDefine(TEXT("NANITE_MATERIAL_SHADER"), 1);
512
513 OutEnvironment.SetDefine(TEXT("IS_NANITE_RASTER_PASS"), 1);
514 OutEnvironment.SetDefine(TEXT("IS_NANITE_PASS"), 1);
515
516 OutEnvironment.SetDefine(TEXT("NANITE_USE_SHADING_UNIFORM_BUFFER"), 0);
517 OutEnvironment.SetDefine(TEXT("NANITE_USE_RASTER_UNIFORM_BUFFER"), 1);
518 OutEnvironment.SetDefine(TEXT("NANITE_USE_VIEW_UNIFORM_BUFFER"), 0);
519
520 // Force definitions of GetObjectWorldPosition(), etc..
521 OutEnvironment.SetDefine(TEXT("HAS_PRIMITIVE_UNIFORM_BUFFER"), 1);
522
523 OutEnvironment.SetDefine(TEXT("ALWAYS_EVALUATE_WORLD_POSITION_OFFSET"),
525
526 // Use the spline mesh texture when possible for performance
527 OutEnvironment.SetDefine(TEXT("USE_SPLINE_MESH_SCENE_RESOURCES"), UseSplineMeshSceneResources(Parameters.Platform));
528 }
529};
530
532
533class FHWRasterizePS;
534class FHWRasterizeVS;
535class FHWRasterizeMS;
537
539{
541
544
545 bool bIsTwoSided : 1 = false;
546 bool bWPOEnabled : 1 = false;
547 bool bDisplacementEnabled : 1 = false;
548 bool bPerPixelEval : 1 = false;
549 bool bSplineMesh : 1 = false;
550 bool bSkinnedMesh : 1 = false;
551 bool bVoxel : 1 = false;
552 bool bHasWPODistance : 1 = false;
553 bool bHasPixelDistance : 1 = false;
554 bool bHasDisplacementFadeOut : 1 = false;
556 bool bCastShadow : 1 = false;
557 bool bVertexUVs : 1 = false;
558 bool bFirstPersonLerp : 1 = false;
559
561
562 uint32 GetPipelineHash() const;
564
566 {
567 return Other.GetPipelineHash();
568 }
569};
570
572{
574 uint16 BinIndex = 0xFFFFu;
575
576 inline bool operator==(const FNaniteRasterBin& Other) const
577 {
578 return Other.BinId == BinId && Other.BinIndex == BinIndex;
579 }
580
581 inline bool operator!=(const FNaniteRasterBin& Other) const
582 {
583 return !(*this == Other);
584 }
585
586 inline bool IsValid() const
587 {
588 return *this != FNaniteRasterBin();
589 }
590};
591
636
637static_assert((int32)ERHIFeatureLevel::Num <= 8);
638static_assert(sizeof(FNaniteRasterMaterialCacheKey) == sizeof(uint32));
639
641{
642 return Key.Packed;
643}
644
666
675
676struct FNaniteRasterEntryKeyFuncs : TDefaultMapHashableKeyFuncs<FNaniteRasterPipeline, FNaniteRasterEntry, false>
677{
678 static inline bool Matches(KeyInitType A, KeyInitType B)
679 {
680 return A.GetPipelineHash() == B.GetPipelineHash() && A.RasterMaterial == B.RasterMaterial;
681 }
682
683 static inline uint32 GetKeyHash(KeyInitType Key)
684 {
685 return Key.GetPipelineHash();
686 }
687};
688
690
692{
693public:
695
696 uint16 Translate(uint16 BinIndex) const
697 {
698 return BinIndex < RegularBinCount ? BinIndex : RevertBinIndex(BinIndex) + RegularBinCount;
699 }
700
701private:
703
704 uint32 RegularBinCount;
705
707 : RegularBinCount(InRegularBinCount)
708 {}
709
710 static uint16 RevertBinIndex(uint16 BinIndex)
711 {
712 return NANITE_INVALID_RASTER_BIN - BinIndex - 1;
713 }
714};
715
717{
718public:
721
722public:
725
729
730 uint16 AllocateBin(bool bPerPixelEval);
731 void ReleaseBin(uint16 BinIndex);
732
733 bool IsBinAllocated(uint16 BinIndex) const;
734
736 uint32 GetBinCount() const;
737
740
742 {
743 return PipelineMap;
744 }
745
750
755 void RegisterBinForCustomPass(uint16 BinIndex);
756 void UnregisterBinForCustomPass(uint16 BinIndex);
757 bool ShouldBinRenderInCustomPass(uint16 BinIndex) const;
758
759private:
760 TBitArray<> PipelineBins;
761 TBitArray<> PerPixelEvalPipelineBins;
762 TArray<uint32> CustomPassRefCounts;
763 TArray<uint32> PerPixelEvalCustomPassRefCounts;
764 FNaniteRasterPipelineMap PipelineMap;
765
766 struct FFixedFunctionBin
767 {
768 FNaniteRasterBin RasterBin;
769 uint8 BinMask;
770 };
771
773};
774
776{
778 uint16 BinIndex = 0xFFFFu;
779
780 inline bool operator==(const FNaniteShadingBin& Other) const
781 {
782 return Other.BinId == BinId && Other.BinIndex == BinIndex;
783 }
784
785 inline bool operator!=(const FNaniteShadingBin& Other) const
786 {
787 return !(*this == Other);
788 }
789
790 inline bool IsValid() const
791 {
792 return *this != FNaniteShadingBin();
793 }
794};
795
800
802{
807
809 const FMaterial* Material = nullptr;
812
813#if WITH_DEBUG_VIEW_MODES
816#endif
817
821
822 // Shading flags
823 union
824 {
825 struct
826 {
832 };
833
835 };
836
837 inline uint32 GetPipelineHash() const
838 {
839 // Ignoring the lower 4 bits since they are likely zero anyway.
840 // Higher bits are more significant in 64 bit builds.
841 uint64 PipelineHash = uint64(reinterpret_cast<UPTRINT>(MaterialProxy) >> 4);
842
843 // Combine shader flags hash and material hash
844 PipelineHash = CityHash128to64({ PipelineHash, ShadingFlagsHash });
845
846 // Combine with bound target mask
847 PipelineHash = CityHash128to64({ PipelineHash, BoundTargetMask });
848
849 // Combine with shader bindings hash
850 PipelineHash = CityHash128to64({ PipelineHash, ShaderBindingsHash });
851
852 return HashCombineFast(uint32(PipelineHash & 0xFFFFFFFF), uint32((PipelineHash >> 32) & 0xFFFFFFFF));
853 }
854
856 {
857 return Other.GetPipelineHash();
858 }
859};
860
867
868struct FNaniteShadingEntryKeyFuncs : TDefaultMapHashableKeyFuncs<FNaniteShadingPipeline, FNaniteShadingEntry, false>
869{
870 static inline bool Matches(KeyInitType A, KeyInitType B)
871 {
872 return A.GetPipelineHash() == B.GetPipelineHash() && A.MaterialProxy == B.MaterialProxy;
873 }
874
875 static inline uint32 GetKeyHash(KeyInitType Key)
876 {
877 return Key.GetPipelineHash();
878 }
879};
880
882
884{
885public:
888
889public:
892
894 void ReleaseBin(uint16 BinIndex);
895
896 bool IsBinAllocated(uint16 BinIndex) const;
897
898 uint32 GetBinCount() const;
899
902
904 {
905 return PipelineMap;
906 }
907
908 bool bBuildCommands = true;
909
911
912 void BuildIdList();
914
916
917private:
918 TBitArray<> PipelineBins;
919 FNaniteShadingPipelineMap PipelineMap;
920 TArray<FShadingId> ShadingIdList;
921 bool bBuildIdList = true;
922};
923
925{
929 bool bVisible = true;
930
931 // The PSO precache state - updated at dispatch time and can be used to skip command when still precaching
933};
934
950
951extern bool ShouldRenderNanite(const FScene* Scene, const FViewInfo& View, bool bCheckForAtomicSupport = true);
952
954extern bool WouldRenderNanite(const FScene* Scene, const FViewInfo& View, bool bCheckForAtomicSupport = true, bool bCheckForProjectSetting = true);
955
956extern bool UseComputeDepthExport();
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define FORCENOINLINE
Definition AndroidPlatform.h:142
#define check(expr)
Definition AssertionMacros.h:314
uint64 CityHash128to64(const Uint128_64 &x)
Definition CityHash.h:95
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::UPTRINT UPTRINT
An unsigned integer the same size as a pointer.
Definition Platform.h:1146
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
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
UE::Math::TVector2< float > FVector2f
Definition MathFwd.h:74
bool WouldRenderNanite(const FScene *Scene, const FViewInfo &View, bool bCheckForAtomicSupport=true, bool bCheckForProjectSetting=true)
Definition NaniteShared.cpp:460
bool ShouldRenderNanite(const FScene *Scene, const FViewInfo &View, bool bCheckForAtomicSupport=true)
Definition NaniteShared.cpp:443
uint32 GetTypeHash(const FNaniteRasterMaterialCacheKey &Key)
Definition NaniteShared.h:640
TRDGUniformBufferRef< FNaniteRasterUniformParameters > CreateDebugNaniteRasterUniformBuffer(FRDGBuilder &GraphBuilder)
Definition NaniteMaterials.cpp:68
TRDGUniformBufferRef< FNaniteShadingUniformParameters > CreateDebugNaniteShadingUniformBuffer(FRDGBuilder &GraphBuilder)
Definition NaniteMaterials.cpp:45
bool UseComputeDepthExport()
Definition NaniteShared.cpp:474
EPSOPrecacheResult
Definition PipelineStateCache.h:55
#define DECLARE_GPU_STAT_NAMED_EXTERN(StatName, NameString)
Definition RealtimeGPUProfiler.h:260
#define RDG_FRIEND_ALLOCATOR_FRIEND(Type)
Definition RenderGraphAllocator.h:155
bool UseSplineMeshSceneResources(const FStaticShaderPlatform Platform)
Definition RenderUtils.cpp:1826
bool DoesPlatformSupportNanite(EShaderPlatform Platform, bool bCheckForProjectSetting)
Definition RenderUtils.cpp:1269
#define SHADER_PARAMETER_RDG_BUFFER_SRV(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1800
#define SHADER_PARAMETER_RDG_TEXTURE(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1752
#define BEGIN_GLOBAL_SHADER_PARAMETER_STRUCT
Definition ShaderParameterMacros.h:1663
#define END_SHADER_PARAMETER_STRUCT()
Definition ShaderParameterMacros.h:1485
#define SHADER_PARAMETER(MemberType, MemberName)
Definition ShaderParameterMacros.h:1684
constexpr uint32 HashCombineFast(uint32 A, uint32 B)
Definition TypeHash.h:74
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition RobinHoodHashTable.h:72
Definition RobinHoodHashTable.h:27
Definition GlobalShader.h:269
static void ModifyCompilationEnvironment(const FGlobalShaderPermutationParameters &Parameters, FShaderCompilerEnvironment &Environment)
Definition GlobalShader.h:289
Definition NaniteCullRaster.cpp:1967
Definition NaniteCullRaster.cpp:2156
Definition NaniteCullRaster.cpp:1823
Definition MaterialRenderProxy.h:102
Definition MaterialShader.h:56
Definition MaterialShared.h:2058
Definition MeshPassProcessor.h:908
Definition NaniteCullRaster.cpp:1590
Definition NameTypes.h:617
Definition NaniteShared.h:359
FNaniteGlobalShader()=default
FNaniteGlobalShader(const ShaderMetaType::CompiledShaderInitializerType &Initializer)
Definition NaniteShared.h:362
static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters &Parameters)
Definition NaniteShared.h:367
static void ModifyCompilationEnvironment(const FGlobalShaderPermutationParameters &Parameters, FShaderCompilerEnvironment &OutEnvironment)
Definition NaniteShared.h:372
Definition NaniteShared.h:389
static bool ShouldCompileComputePermutation(const FMaterialShaderPermutationParameters &Parameters)
Definition NaniteShared.h:480
FNaniteMaterialShader(const ShaderMetaType::CompiledShaderInitializerType &Initializer)
Definition NaniteShared.h:392
static bool IsPixelProgrammable(uint32 MaterialBitFlags)
Definition NaniteShared.h:415
static void ModifyCompilationEnvironment(const FMaterialShaderPermutationParameters &Parameters, FShaderCompilerEnvironment &OutEnvironment)
Definition NaniteShared.h:499
static bool IsPixelProgrammable(const FMaterialShaderParameters &MaterialParameters)
Definition NaniteShared.h:410
static bool ShouldCompileProgrammablePermutation(const FMaterialShaderParameters &MaterialParameters, bool bPermutationVertexProgrammable, bool bPermutationPixelProgrammable, bool bHWRasterShader)
Definition NaniteShared.h:420
static bool IsVertexProgrammable(uint32 MaterialBitFlags)
Definition NaniteShared.h:405
FNaniteMaterialShader()=default
static bool ShouldCompileVertexPermutation(const FMaterialShaderPermutationParameters &Parameters)
Definition NaniteShared.h:461
static bool ShouldCompilePixelPermutation(const FMaterialShaderPermutationParameters &Parameters)
Definition NaniteShared.h:444
static bool IsVertexProgrammable(const FMaterialShaderParameters &MaterialParameters, bool bHWRasterShader)
Definition NaniteShared.h:397
Definition NaniteShared.h:692
uint16 Translate(uint16 BinIndex) const
Definition NaniteShared.h:696
Definition NaniteShared.h:717
void AllocateFixedFunctionBins()
Definition NaniteShading.cpp:2078
uint16 AllocateBin(bool bPerPixelEval)
Definition NaniteShading.cpp:2125
const FNaniteRasterPipelineMap & GetRasterPipelineMap() const
Definition NaniteShared.h:741
Experimental::FHashType FRasterHash
Definition NaniteShared.h:719
FNaniteRasterPipelines()
Definition NaniteShading.cpp:2060
void ReloadFixedFunctionBins()
Definition NaniteShading.cpp:2108
FNaniteRasterBinIndexTranslator GetBinIndexTranslator() const
Definition NaniteShared.h:746
~FNaniteRasterPipelines()
Definition NaniteShading.cpp:2069
bool ShouldBinRenderInCustomPass(uint16 BinIndex) const
Definition NaniteShading.cpp:2235
void ReleaseFixedFunctionBins()
Definition NaniteShading.cpp:2098
void UnregisterBinForCustomPass(uint16 BinIndex)
Definition NaniteShading.cpp:2221
void Unregister(const FNaniteRasterBin &InRasterBin)
Definition NaniteShading.cpp:2189
void ReleaseBin(uint16 BinIndex)
Definition NaniteShading.cpp:2139
void RegisterBinForCustomPass(uint16 BinIndex)
Definition NaniteShading.cpp:2206
uint32 GetBinCount() const
Definition NaniteShading.cpp:2162
Experimental::FHashElementId FRasterId
Definition NaniteShared.h:720
uint32 GetRegularBinCount() const
Definition NaniteShading.cpp:2157
bool IsBinAllocated(uint16 BinIndex) const
Definition NaniteShading.cpp:2152
Definition NaniteShared.h:884
FNaniteShadingPipelines()
Definition NaniteShading.cpp:2246
Experimental::FHashType FShadingHash
Definition NaniteShared.h:886
Experimental::FHashElementId FShadingId
Definition NaniteShared.h:887
void ComputeRelevance(ERHIFeatureLevel::Type InFeatureLevel)
Definition NaniteShading.cpp:2375
const TConstArrayView< const FShadingId > GetIdList() const
Definition NaniteShading.cpp:2345
void Unregister(const FNaniteShadingBin &InShadingBin)
Definition NaniteShading.cpp:2313
bool bBuildCommands
Definition NaniteShared.h:908
uint32 GetBinCount() const
Definition NaniteShading.cpp:2285
bool IsBinAllocated(uint16 BinIndex) const
Definition NaniteShading.cpp:2280
uint16 AllocateBin()
Definition NaniteShading.cpp:2258
FPrimitiveViewRelevance CombinedRelevance
Definition NaniteShared.h:910
void ReleaseBin(uint16 BinIndex)
Definition NaniteShading.cpp:2271
void BuildIdList()
Definition NaniteShading.cpp:2330
~FNaniteShadingPipelines()
Definition NaniteShading.cpp:2252
const FNaniteShadingPipelineMap & GetShadingPipelineMap() const
Definition NaniteShared.h:903
Definition RenderGraphResources.h:1321
Definition RenderGraphBuilder.h:49
Definition RenderGraphResources.h:571
Definition RHICommandList.h:455
Definition RHIResources.h:1018
Definition RHIResources.h:1033
Definition RenderResource.h:37
Definition ScenePrivate.h:2875
static void ModifyCompilationEnvironment(const FShaderPermutationParameters &, FShaderCompilerEnvironment &)
Definition Shader.h:854
Definition SceneRendering.h:1132
Definition NaniteFeedback.h:12
Definition NaniteShared.h:242
static uint32 GetMaxVisibleClusterSize()
Definition NaniteShared.cpp:434
static uint32 GetFixedFunctionBinMask()
Definition NaniteShared.cpp:408
static uint32 GetCandidateClusterSize()
Definition NaniteShared.cpp:427
TRefCountPtr< FRDGPooledBuffer > CandidateNodesBuffer
Definition NaniteShared.h:259
static bool UseExtendedClusterSize()
Definition NaniteShared.cpp:414
virtual void ReleaseRHI() override
Definition NaniteShared.cpp:338
TRefCountPtr< IPooledRenderTarget > & GetFastClearTileVisRef()
Definition NaniteShared.h:288
static uint32 GetMaxClusterBatches()
Definition NaniteShared.cpp:375
static uint32 GetMaxVisibleAssemblyParts()
Definition NaniteShared.cpp:403
static uint32 GetCandidateNodeSize(bool bPostPass)
Definition NaniteShared.cpp:420
uint32 StatsDebugFlags
Definition NaniteShared.h:252
static uint32 GetMaxNodes()
Definition NaniteShared.cpp:388
TArray< TUniquePtr< FRHIGPUBufferReadback > > PickingBuffers
Definition NaniteShared.h:257
virtual void InitRHI(FRHICommandListBase &RHICmdList) override
Definition NaniteShared.cpp:326
static uint32 GetMaxCandidateClusters()
Definition NaniteShared.cpp:368
int32 PickingBufferWriteIndex
Definition NaniteShared.h:255
static uint32 GetMaxVisibleClusters()
Definition NaniteShared.cpp:382
uint32 StatsRenderFlags
Definition NaniteShared.h:251
FFeedbackManager * GetFeedbackManager()
Definition NaniteShared.h:291
int32 PickingBufferNumPending
Definition NaniteShared.h:256
PassBuffers & GetMainPassBuffers()
Definition NaniteShared.h:283
TRefCountPtr< FRDGPooledBuffer > ClusterBatchesBuffer
Definition NaniteShared.h:260
static uint32 GetMaxVisiblePatches()
Definition NaniteShared.cpp:398
static uint32 GetMaxCandidatePatches()
Definition NaniteShared.cpp:393
PassBuffers & GetPostPassBuffers()
Definition NaniteShared.h:284
TRefCountPtr< FRDGPooledBuffer > & GetStatsBufferRef()
Definition NaniteShared.h:286
const int32 MaxPickingBuffers
Definition NaniteShared.h:254
TRefCountPtr< FRDGPooledBuffer > & GetShadingBinDataBufferRef()
Definition NaniteShared.h:287
Definition NaniteShared.h:99
const ArrayType & GetViews() const
Definition NaniteShared.h:114
UE::Tasks::FTask GetSetupTask() const
Definition NaniteShared.h:123
static FPackedViewArray * CreateWithSetupTask(FRDGBuilder &GraphBuilder, uint32 NumViews, TaskLambdaType &&TaskLambda, UE::Tasks::FPipe *Pipe=nullptr, bool bExecuteInTask=true)
Definition NaniteShared.cpp:256
const uint32 NumViews
Definition NaniteShared.h:121
TArray< FPackedView, SceneRenderingAllocator > ArrayType
Definition NaniteShared.h:101
UE_REWRITE SizeType Num() const
Definition Array.h:1144
Definition AndroidPlatformMisc.h:14
Definition RenderResource.h:543
Definition UnrealString.h.inl:34
Definition RenderGraphResources.h:251
Definition RefCounting.h:454
Definition Shader.h:1021
Definition SharedPointer.h:692
Definition Pipe.h:29
bool Wait(FTimespan Timeout) const
Definition Task.h:76
Type
Definition RHIFeatureLevel.h:20
@ Num
Definition RHIFeatureLevel.h:54
Definition SkinnedMeshComponent.h:50
FPackedViewParams CreateViewParamsFromViewInfo(const FViewInfo &View, FIntPoint RasterContextSize, uint32 Flags, uint32 StreamingPriorityCategory, float MinBoundsRadius, float MaxPixelsPerEdgeMultipler, const FIntRect *InHZBTestViewRect)
Definition NaniteShared.cpp:272
FPackedView CreatePackedView(const FPackedViewParams &Params)
Definition NaniteShared.cpp:119
bool ShouldDrawSceneViewsInOneNanitePass(const FViewInfo &View)
Definition NaniteShared.cpp:320
TGlobalResource< FGlobalResources > GGlobalResources
Definition NaniteShared.cpp:439
void SetCullingViewOverrides(FViewInfo const *InCullingView, Nanite::FPackedViewParams &InOutParams)
Definition NaniteShared.cpp:100
FPackedView CreatePackedViewFromViewInfo(const FViewInfo &View, FIntPoint RasterContextSize, uint32 Flags, uint32 StreamingPriorityCategory, float MinBoundsRadius, float MaxPixelsPerEdgeMultipler, const FIntRect *InHZBTestViewRect, bool bUseCurrentPreTranslationForHZB)
Definition NaniteShared.cpp:301
Definition DBufferTextures.h:35
Definition EngineTypes.h:3237
Definition EngineTypes.h:3204
Definition GlobalShader.h:73
uint64 bHasPixelDepthOffsetConnected
Definition MaterialShared.h:1117
uint64 bHasVertexInterpolator
Definition MaterialShared.h:1141
uint8 bHasMaterialCacheOutput
Definition MaterialShared.h:1159
EMaterialDomain MaterialDomain
Definition MaterialShared.h:1064
uint64 bIsMasked
Definition MaterialShared.h:1096
uint16 bHasFirstPersonInterpolation
Definition MaterialShared.h:1074
uint64 bAlwaysEvaluateWorldPositionOffset
Definition MaterialShared.h:1155
uint64 bIsDefaultMaterial
Definition MaterialShared.h:1094
int32 NumCustomizedUVs
Definition MaterialShared.h:1085
uint64 bIsUsedWithNanite
Definition MaterialShared.h:1146
uint64 bIsTessellationEnabled
Definition MaterialShared.h:1114
uint64 bHasVertexPositionOffsetConnected
Definition MaterialShared.h:1116
Definition MaterialShared.h:1181
Definition MaterialShader.h:45
FMaterialShaderParameters MaterialParameters
Definition MaterialShader.h:46
Definition MaterialShaderType.h:98
Definition BasePassRendering.h:1105
Definition LumenSceneCardCapture.cpp:199
Definition MaterialCacheShaders.h:128
Definition NaniteShared.h:572
bool IsValid() const
Definition NaniteShared.h:586
uint16 BinIndex
Definition NaniteShared.h:574
int32 BinId
Definition NaniteShared.h:573
bool operator!=(const FNaniteRasterBin &Other) const
Definition NaniteShared.h:581
bool operator==(const FNaniteRasterBin &Other) const
Definition NaniteShared.h:576
Definition NaniteShared.h:677
static bool Matches(KeyInitType A, KeyInitType B)
Definition NaniteShared.h:678
static uint32 GetKeyHash(KeyInitType Key)
Definition NaniteShared.h:683
Definition NaniteShared.h:668
uint32 ReferenceCount
Definition NaniteShared.h:672
FNaniteRasterPipeline RasterPipeline
Definition NaniteShared.h:671
uint16 BinIndex
Definition NaniteShared.h:673
TMap< FNaniteRasterMaterialCacheKey, FNaniteRasterMaterialCache > CacheMap
Definition NaniteShared.h:669
Definition NaniteShared.h:593
uint32 bUseWorkGraphHW
Definition NaniteShared.h:614
uint32 bHasVirtualShadowMap
Definition NaniteShared.h:605
uint32 Unused
Definition NaniteShared.h:615
uint32 bIsTwoSided
Definition NaniteShared.h:607
uint32 Packed
Definition NaniteShared.h:618
uint32 bDisplacementEnabled
Definition NaniteShared.h:603
bool operator!=(FNaniteRasterMaterialCacheKey Other) const
Definition NaniteShared.h:631
bool operator<(FNaniteRasterMaterialCacheKey Other) const
Definition NaniteShared.h:621
uint32 bVoxel
Definition NaniteShared.h:609
uint32 bCastShadow
Definition NaniteShared.h:608
uint32 bVisualizeActive
Definition NaniteShared.h:604
uint32 bPerPixelEval
Definition NaniteShared.h:600
uint32 bUseMeshShader
Definition NaniteShared.h:601
uint32 bSkinnedMesh
Definition NaniteShared.h:611
uint32 bIsDepthOnly
Definition NaniteShared.h:606
uint32 FeatureLevel
Definition NaniteShared.h:598
uint32 bWPOEnabled
Definition NaniteShared.h:599
bool operator==(FNaniteRasterMaterialCacheKey Other) const
Definition NaniteShared.h:626
uint32 bFixedDisplacementFallback
Definition NaniteShared.h:612
uint32 bSplineMesh
Definition NaniteShared.h:610
uint32 bUseWorkGraphSW
Definition NaniteShared.h:613
uint32 bUsePrimitiveShader
Definition NaniteShared.h:602
Definition NaniteShared.h:646
TShaderRef< FMicropolyRasterizeCS > ClusterComputeShader
Definition NaniteShared.h:657
const FMaterialRenderProxy * PixelMaterialProxy
Definition NaniteShared.h:651
bool bFinalized
Definition NaniteShared.h:664
const FMaterialRenderProxy * VertexMaterialProxy
Definition NaniteShared.h:650
TOptional< FDisplacementScaling > DisplacementScaling
Definition NaniteShared.h:661
TShaderRef< FHWRasterizeVS > RasterVertexShader
Definition NaniteShared.h:655
TOptional< uint32 > MaterialBitFlags
Definition NaniteShared.h:660
const FMaterial * VertexMaterial
Definition NaniteShared.h:647
TOptional< FDisplacementFadeRange > DisplacementFadeRange
Definition NaniteShared.h:662
const FMaterialRenderProxy * ComputeMaterialProxy
Definition NaniteShared.h:652
TShaderRef< FHWRasterizeMS > RasterMeshShader
Definition NaniteShared.h:656
const FMaterial * PixelMaterial
Definition NaniteShared.h:648
const FMaterial * ComputeMaterial
Definition NaniteShared.h:649
TShaderRef< FMicropolyRasterizeCS > PatchComputeShader
Definition NaniteShared.h:658
TShaderRef< FHWRasterizePS > RasterPixelShader
Definition NaniteShared.h:654
Definition NaniteShared.h:539
bool bFixedDisplacementFallback
Definition NaniteShared.h:555
bool bSkinnedMesh
Definition NaniteShared.h:550
bool bHasPixelDistance
Definition NaniteShared.h:553
bool GetFallbackPipeline(FNaniteRasterPipeline &OutFallback) const
Definition NaniteShading.cpp:1987
bool bSplineMesh
Definition NaniteShared.h:549
bool bHasDisplacementFadeOut
Definition NaniteShared.h:554
bool bDisplacementEnabled
Definition NaniteShared.h:547
bool bIsTwoSided
Definition NaniteShared.h:545
bool bFirstPersonLerp
Definition NaniteShared.h:558
bool bWPOEnabled
Definition NaniteShared.h:546
bool bCastShadow
Definition NaniteShared.h:556
FORCENOINLINE friend uint32 GetTypeHash(const FNaniteRasterPipeline &Other)
Definition NaniteShared.h:565
bool bVertexUVs
Definition NaniteShared.h:557
uint32 GetPipelineHash() const
Definition NaniteShading.cpp:1935
FDisplacementFadeRange DisplacementFadeRange
Definition NaniteShared.h:543
bool bHasWPODistance
Definition NaniteShared.h:552
bool bPerPixelEval
Definition NaniteShared.h:548
bool bVoxel
Definition NaniteShared.h:551
FDisplacementScaling DisplacementScaling
Definition NaniteShared.h:542
const FMaterialRenderProxy * RasterMaterial
Definition NaniteShared.h:540
static FNaniteRasterPipeline GetFixedFunctionPipeline(uint8 BinMask)
Definition NaniteShading.cpp:1916
Definition NaniteShared.h:776
int32 BinId
Definition NaniteShared.h:777
bool operator!=(const FNaniteShadingBin &Other) const
Definition NaniteShared.h:785
bool IsValid() const
Definition NaniteShared.h:790
uint16 BinIndex
Definition NaniteShared.h:778
bool operator==(const FNaniteShadingBin &Other) const
Definition NaniteShared.h:780
Definition NaniteShared.h:925
uint16 ShadingBin
Definition NaniteShared.h:928
TSharedPtr< FNaniteShadingPipeline > Pipeline
Definition NaniteShared.h:926
EPSOPrecacheResult PSOPrecacheState
Definition NaniteShared.h:932
bool bVisible
Definition NaniteShared.h:929
FUint32Vector4 PassData
Definition NaniteShared.h:927
Definition NaniteShared.h:936
uint32 NumCommands
Definition NaniteShared.h:940
FMetaBufferArray MetaBufferData
Definition NaniteShared.h:945
TArray< FNaniteShadingCommand > Commands
Definition NaniteShared.h:943
UE::Tasks::FTask BuildCommandsTask
Definition NaniteShared.h:948
TArray< int32 > CommandLookup
Definition NaniteShared.h:944
uint32 MaxShadingBin
Definition NaniteShared.h:939
FShaderBundleRHIRef ShaderBundle
Definition NaniteShared.h:942
UE::Tasks::FTask SetupTask
Definition NaniteShared.h:947
uint32 BoundTargetMask
Definition NaniteShared.h:941
Definition NaniteShared.h:869
static uint32 GetKeyHash(KeyInitType Key)
Definition NaniteShared.h:875
static bool Matches(KeyInitType A, KeyInitType B)
Definition NaniteShared.h:870
Definition NaniteShared.h:862
uint16 BinIndex
Definition NaniteShared.h:865
TSharedPtr< FNaniteShadingPipeline > ShadingPipeline
Definition NaniteShared.h:863
uint32 ReferenceCount
Definition NaniteShared.h:864
Definition NaniteShared.h:802
FORCENOINLINE friend uint32 GetTypeHash(const FNaniteShadingPipeline &Other)
Definition NaniteShared.h:855
FRHIWorkGraphShader * WorkGraphShader
Definition NaniteShared.h:811
TPimplPtr< FNaniteLumenCardData, EPimplPtrMode::DeepCopy > LumenCardData
Definition NaniteShared.h:804
TPimplPtr< FNaniteMaterialCacheData, EPimplPtrMode::DeepCopy > MaterialCacheData
Definition NaniteShared.h:805
TPimplPtr< FNaniteBasePassData, EPimplPtrMode::DeepCopy > BasePassData
Definition NaniteShared.h:803
uint16 bPadding
Definition NaniteShared.h:831
uint16 ShadingFlagsHash
Definition NaniteShared.h:834
uint16 bIsMasked
Definition NaniteShared.h:828
uint16 bVoxel
Definition NaniteShared.h:830
uint16 bIsTwoSided
Definition NaniteShared.h:827
uint32 GetPipelineHash() const
Definition NaniteShared.h:837
const FMaterial * Material
Definition NaniteShared.h:809
uint16 bNoDerivativeOps
Definition NaniteShared.h:829
uint32 MaterialBitFlags
Definition NaniteShared.h:820
FRHIComputeShader * ComputeShader
Definition NaniteShared.h:810
const FMaterialRenderProxy * MaterialProxy
Definition NaniteShared.h:808
TPimplPtr< FMeshDrawShaderBindings, EPimplPtrMode::DeepCopy > ShaderBindings
Definition NaniteShared.h:806
uint32 BoundTargetMask
Definition NaniteShared.h:818
uint32 ShaderBindingsHash
Definition NaniteShared.h:819
Definition PrimitiveViewRelevance.h:14
Definition SceneTextures.h:110
Definition Shader.h:1610
Definition ShaderCore.h:544
const EShaderPlatform Platform
Definition ShaderPermutation.h:29
Definition SceneView.h:317
Definition NaniteShared.h:230
FRDGBufferRef IndirectArgs
Definition NaniteShared.h:235
FRDGBufferRef MetaBuffer
Definition NaniteShared.h:234
FRDGBufferRef DataBuffer
Definition NaniteShared.h:233
uint32 BinCount
Definition NaniteShared.h:231
Definition NaniteShared.h:245
TRefCountPtr< FRDGPooledBuffer > StatsRasterizeArgsSWHWBuffer
Definition NaniteShared.h:247
Definition NaniteShared.h:143
FIntRect HZBTestViewRect
Definition NaniteShared.h:161
int32 TargetMipCount
Definition NaniteShared.h:157
uint32 LightingChannelMask
Definition NaniteShared.h:175
int32 TargetLayerIndex
Definition NaniteShared.h:154
FVector2f DynamicDepthCullRange
Definition NaniteShared.h:183
uint32 InstanceOcclusionQueryMask
Definition NaniteShared.h:174
bool bUseCullingViewOverrides
Definition NaniteShared.h:165
bool bUseCurrentPreTranslationForHZB
Definition NaniteShared.h:177
bool bUseLightingChannelMask
Definition NaniteShared.h:176
FViewMatrices ViewMatrices
Definition NaniteShared.h:144
FIntPoint RasterContextSize
Definition NaniteShared.h:147
float LODScaleFactor
Definition NaniteShared.h:150
int32 TargetMipLevel
Definition NaniteShared.h:156
FVector CullingViewOrigin
Definition NaniteShared.h:166
int32 PrevTargetLayerIndex
Definition NaniteShared.h:155
uint32 StreamingPriorityCategory
Definition NaniteShared.h:148
float ViewLODDistanceFactor
Definition NaniteShared.h:151
FIntRect ViewRect
Definition NaniteShared.h:146
float MinBoundsRadius
Definition NaniteShared.h:149
float MaxPixelsPerEdgeMultipler
Definition NaniteShared.h:163
FViewMatrices PrevViewMatrices
Definition NaniteShared.h:145
FPlane GlobalClippingPlane
Definition NaniteShared.h:170
int32 SceneRendererPrimaryViewId
Definition NaniteShared.h:179
float RangeBasedCullingDistance
Definition NaniteShared.h:159
float CullingViewScreenMultipleSq
Definition NaniteShared.h:167
float CullingViewMinRadiusTestFactorSq
Definition NaniteShared.h:168
uint32 Flags
Definition NaniteShared.h:152
Definition NaniteShared.h:35
FMatrix44f SVPositionToTranslatedWorld
Definition NaniteShared.h:36
FVector3f PreViewTranslationLow
Definition NaniteShared.h:69
FVector4f MaterialCacheUnwrapMinAndInvSize
Definition NaniteShared.h:52
FMatrix44f PrevClipToRelativeWorld
Definition NaniteShared.h:47
void UpdateLODScales(const float NaniteMaxPixelsPerEdge, const float MinPixelsPerEdgeHW)
Definition NaniteShared.cpp:90
FMatrix44f ViewToClip
Definition NaniteShared.h:41
FVector2f LODScales
Definition NaniteShared.h:72
uint32 InstanceOcclusionQueryMask
Definition NaniteShared.h:73
FMatrix44f ClipToRelativeWorld
Definition NaniteShared.h:42
uint32 PrevFirstPersonTransformRow2Z
Definition NaniteShared.h:84
FVector4f ViewSizeAndInvSize
Definition NaniteShared.h:50
FVector4f TranslatedGlobalClipPlane
Definition NaniteShared.h:67
float CullingViewScreenMultipleSq
Definition NaniteShared.h:70
float NearPlane
Definition NaniteShared.h:65
FMatrix44f ViewToTranslatedWorld
Definition NaniteShared.h:37
float ViewOriginHighX
Definition NaniteShared.h:55
FVector3f PreViewTranslationHigh
Definition NaniteShared.h:54
FVector3f PrevPreViewTranslationHigh
Definition NaniteShared.h:56
FVector4f ClipSpaceScaleOffset
Definition NaniteShared.h:51
FVector4f MaterialCachePageOffsetAndInvSize
Definition NaniteShared.h:53
FUintVector4 PrevFirstPersonTransformRowsExceptRow2Z
Definition NaniteShared.h:85
FVector3f CullingViewOriginTranslatedWorld
Definition NaniteShared.h:62
FUintVector4 FirstPersonTransformRowsExceptRow2Z
Definition NaniteShared.h:80
FIntVector4 ViewRect
Definition NaniteShared.h:49
FIntVector4 TargetLayerIdX_AndMipLevelY_AndNumMipLevelsZ
Definition NaniteShared.h:76
float ViewOriginHighZ
Definition NaniteShared.h:61
int32 SceneRendererPrimaryViewId
Definition NaniteShared.h:88
uint32 FirstPersonTransformRow2Z
Definition NaniteShared.h:82
FMatrix44f PrevViewToClip
Definition NaniteShared.h:46
float RangeBasedCullingDistance
Definition NaniteShared.h:63
FMatrix44f PrevTranslatedWorldToView
Definition NaniteShared.h:44
FVector3f ViewForward
Definition NaniteShared.h:64
FIntVector4 HZBTestViewRect
Definition NaniteShared.h:78
uint32 StreamingPriorityCategory_AndFlags
Definition NaniteShared.h:74
FMatrix44f TranslatedWorldToClip
Definition NaniteShared.h:40
uint32 LightingChannelMask
Definition NaniteShared.h:87
FVector2f DynamicDepthCullRange
Definition NaniteShared.h:86
FMatrix44f TranslatedWorldToView
Definition NaniteShared.h:39
float CullingViewMinRadiusTestFactorSq
Definition NaniteShared.h:59
float ViewOriginHighY
Definition NaniteShared.h:57
FVector3f PrevPreViewTranslationHZBLow
Definition NaniteShared.h:83
FVector3f PrevPreViewTranslationHZBHigh
Definition NaniteShared.h:81
FVector3f PrevPreViewTranslationLow
Definition NaniteShared.h:58
FMatrix44f PrevTranslatedWorldToClip
Definition NaniteShared.h:45
FVector3f ViewOriginLow
Definition NaniteShared.h:60
Definition NaniteShared.h:221
int32 ModeID
Definition NaniteShared.h:224
FName ModeName
Definition NaniteShared.h:223
uint8 bSkippedTile
Definition NaniteShared.h:226
FRDGTextureRef ModeOutput
Definition NaniteShared.h:222
uint8 bCompositeScene
Definition NaniteShared.h:225
Definition Map.h:111
TTypeTraits< KeyType >::ConstPointerType KeyInitType
Definition Map.h:78
Definition Optional.h:131
Definition PimplPtr.h:50
Definition IntPoint.h:25
static CORE_API const TVector< double > ZeroVector
Definition Vector.h:79