7#include "Containers/Map.h"
9#include "NaniteDefinitions.h"
46 const bool bEnableAsync =
true;
47 bool bForceFullUpload =
false;
48 bool bDefragging =
false;
74#if WITH_DEBUG_VIEW_MODES
88 InitPrimitiveDataTask,
89 AllocMaterialBufferTask,
90 UploadPrimitiveDataTask,
91 UploadMaterialDataTask,
95 #if WITH_DEBUG_VIEW_MODES
102 struct FPackedPrimitiveData
104 uint32 MaterialBufferOffset;
105 uint32 MaterialMaxIndex : 8;
107 uint32 bHasUVDensities : 1;
114 struct FPrimitiveData
118 uint32 MaterialBufferSizeDwords = 0;
119 uint8 NumMaterials = 0;
120 uint8 NumMeshPasses = 0;
121 uint8 MeshPassMask = 0;
122 bool bHasUVDensities =
false;
128 FPackedPrimitiveData Pack()
const
130 FPackedPrimitiveData
Output;
131 Output.MaterialBufferOffset = MaterialBufferOffset;
132 Output.MaterialMaxIndex = NumMaterials - 1;
133 Output.MeshPassMask = MeshPassMask;
134 Output.bHasUVDensities = bHasUVDensities;
137 Output.OverlayColor = OverlayColor;
143 class FMaterialBuffers
155 static constexpr int32 MaterialScatterStride = 2;
160 bool IsEnabled()
const {
return MaterialBuffers.
IsValid(); }
161 void SetEnabled(
bool bEnabled);
163 void FinishMaterialBufferUpload(
167 bool ProcessBufferDefragmentation();
177#if WITH_DEBUG_VIEW_MODES
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_SCENE_EXTENSION_UPDATER(ClassName, SceneExtensionClassName)
Definition SceneExtensions.h:390
#define DECLARE_SCENE_EXTENSION_RENDERER(ClassName, SceneExtensionClassName)
Definition SceneExtensions.h:394
#define DECLARE_SCENE_EXTENSION(ModuleExport, ClassName)
Definition SceneExtensions.h:384
Definition PrimitiveSceneInfo.h:266
Definition RenderGraphResources.h:1321
Definition RenderGraphBuilder.h:49
Definition ScenePrimitiveUpdates.h:129
Definition ScenePrimitiveUpdates.h:116
Definition SceneRendering.h:2023
Definition ScenePrivate.h:2875
Definition SpanAllocator.h:15
Definition SceneExtensions.h:69
Definition SceneExtensions.h:45
Definition SceneExtensions.h:24
ISceneExtension(FScene &InScene)
Definition SceneExtensions.h:29
Definition NaniteMaterialsSceneExtension.h:52
virtual void UpdateSceneUniformBuffer(FRDGBuilder &GraphBuilder, FSceneUniformBuffer &Buffer) override
Definition NaniteMaterialsSceneExtension.cpp:793
FRenderer(FSceneRendererBase &InSceneRenderer, FMaterialsSceneExtension &InSceneData)
Definition NaniteMaterialsSceneExtension.h:56
Definition NaniteMaterialsSceneExtension.h:27
virtual void PostSceneUpdate(FRDGBuilder &GraphBuilder, const FScenePostUpdateChangeSet &ChangeSet) override
Definition NaniteMaterialsSceneExtension.cpp:432
virtual void End()
Definition NaniteMaterialsSceneExtension.cpp:368
virtual void PreSceneUpdate(FRDGBuilder &GraphBuilder, const FScenePreUpdateChangeSet &ChangeSet, FSceneUniformBuffer &SceneUniforms) override
Definition NaniteMaterialsSceneExtension.cpp:375
void PostCacheNaniteMaterialBins(FRDGBuilder &GraphBuilder, const TConstArrayView< FPrimitiveSceneInfo * > &SceneInfosWithStaticDrawListUpdate)
Definition NaniteMaterialsSceneExtension.cpp:546
Definition NaniteMaterialsSceneExtension.h:20
virtual ISceneExtensionUpdater * CreateUpdater() override
Definition NaniteMaterialsSceneExtension.cpp:96
virtual ISceneExtensionRenderer * CreateRenderer(FSceneRendererBase &InSceneRenderer, const FEngineShowFlags &EngineShowFlags) override
Definition NaniteMaterialsSceneExtension.cpp:101
virtual void InitExtension(FScene &InScene) override
Definition NaniteMaterialsSceneExtension.cpp:89
void PostBuildNaniteShadingCommands(FRDGBuilder &GraphBuilder, const UE::Tasks::FTask &BuildDependency, ENaniteMeshPass::Type MeshPass)
Definition NaniteMaterialsSceneExtension.cpp:306
static bool ShouldCreateExtension(FScene &InScene)
Definition NaniteMaterialsSceneExtension.cpp:84
Definition SparseArray.h:524
Definition StaticArray.h:26
Definition UniquePtr.h:107
bool IsValid() const
Definition UniquePtr.h:280
Definition RendererPrivateUtils.h:242
Definition RendererPrivateUtils.h:191
Type
Definition PrimitiveSceneInfo.h:245
Definition SkinnedMeshComponent.h:50
bool Wait(const TaskCollectionType &Tasks, FTimespan InTimeout=FTimespan::MaxValue())
Definition Task.h:381
Definition ShowFlags.h:56