7#include "Containers/Map.h"
11#include "SkinningDefinitions.h"
20class FSkinnedSceneProxy;
44 const bool bEnableAsync =
true;
45 bool bForceFullUpload =
false;
46 bool bDefragging =
false;
88 UploadHierarchyDataTask,
89 UploadTransformDataTask,
99 uint32 InstanceSceneDataOffset = 0;
100 uint32 NumInstanceSceneDataEntries = 0;
102 uint32 ObjectSpaceBufferCount = 0;
104 uint32 HierarchyBufferCount = 0;
106 uint32 TransformBufferCount = 0;
107 uint16 MaxTransformCount = 0;
108 uint16 MaxHierarchyCount = 0;
109 uint16 MaxObjectSpaceCount = 0;
110 uint8 MaxInfluenceCount = 0;
111 uint8 UniqueAnimationCount = 1;
112 uint8 bHasScale : 1 =
false;
113 uint8 bIsBatched : 1 =
false;
126 Output.HierarchyBufferOffset = HierarchyBufferOffset;
127 Output.TransformBufferOffset = TransformBufferOffset;
128 Output.ObjectSpaceBufferOffset = ObjectSpaceBufferOffset !=
INDEX_NONE ? ObjectSpaceBufferOffset : 0;
129 Output.MaxTransformCount = MaxTransformCount;
130 Output.MaxInfluenceCount = MaxInfluenceCount;
131 Output.UniqueAnimationCount = UniqueAnimationCount;
132 Output.bHasScale = bHasScale;
157 bool IsEnabled()
const {
return Buffers.
IsValid(); }
158 void SetEnabled(
bool bEnabled);
161 void FinishSkinningBufferUpload(
166 void PerformSkinning(
171 bool ProcessBufferDefragmentation();
176 void WaitForHeaderDataUpdateTasks()
const;
189 bool Tick(
float DeltaTime);
193 float DeltaTime = 0.0f;
#define check(expr)
Definition AssertionMacros.h:314
@ 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 RenderGraphBuilder.h:49
Definition RefCounting.h:213
Definition ScenePrimitiveUpdates.h:129
Definition ScenePrimitiveUpdates.h:116
Definition SceneRendering.h:2023
Definition ScenePrivate.h:2875
Definition SkinningSceneExtensionProxy.h:17
Definition SkinningSceneExtension.h:50
FRenderer(FSceneRendererBase &InSceneRenderer, FSkinningSceneExtension &InSceneData)
Definition SkinningSceneExtension.h:54
virtual void UpdateViewData(FRDGBuilder &GraphBuilder, const FRendererViewDataManager &ViewDataManager) override
Definition SkinningSceneExtension.cpp:1294
virtual void UpdateSceneUniformBuffer(FRDGBuilder &GraphBuilder, FSceneUniformBuffer &Buffer) override
Definition SkinningSceneExtension.cpp:1351
Definition SkinningSceneExtension.h:27
virtual void End()
Definition SkinningSceneExtension.cpp:668
virtual void PostSceneUpdate(FRDGBuilder &GraphBuilder, const FScenePostUpdateChangeSet &ChangeSet) override
Definition SkinningSceneExtension.cpp:742
virtual void PreSceneUpdate(FRDGBuilder &GraphBuilder, const FScenePreUpdateChangeSet &ChangeSet, FSceneUniformBuffer &SceneUniforms) override
Definition SkinningSceneExtension.cpp:675
void PostMeshUpdate(FRDGBuilder &GraphBuilder, const TConstArrayView< FPrimitiveSceneInfo * > &SceneInfosWithStaticDrawListUpdate)
Definition SkinningSceneExtension.cpp:820
Definition SkinningSceneExtension.h:22
static RENDERER_API const FSkinningTransformProvider::FProviderId & GetAnimRuntimeProviderId()
Definition SkinningSceneExtension.cpp:1386
virtual void InitExtension(FScene &InScene) override
Definition SkinningSceneExtension.cpp:179
static RENDERER_API void ProvideAnimRuntimeTransforms(FSkinningTransformProvider::FProviderContext &Context)
Definition SkinningSceneExtension.cpp:1476
static RENDERER_API const FSkinningTransformProvider::FProviderId & GetRefPoseProviderId()
Definition SkinningSceneExtension.cpp:1381
virtual ISceneExtensionUpdater * CreateUpdater() override
Definition SkinningSceneExtension.cpp:205
virtual ~FSkinningSceneExtension()
Definition SkinningSceneExtension.cpp:174
static bool ShouldCreateExtension(FScene &InScene)
Definition SkinningSceneExtension.cpp:158
RENDERER_API void GetSkinnedPrimitives(TArray< FPrimitiveSceneInfo * > &OutPrimitives) const
Definition SkinningSceneExtension.cpp:1361
static RENDERER_API void ProvideRefPoseTransforms(FSkinningTransformProvider::FProviderContext &Context)
Definition SkinningSceneExtension.cpp:1391
virtual ISceneExtensionRenderer * CreateRenderer(FSceneRendererBase &InSceneRenderer, const FEngineShowFlags &EngineShowFlags) override
Definition SkinningSceneExtension.cpp:210
Definition SpanAllocator.h:15
Definition SceneExtensions.h:69
Definition SceneExtensions.h:45
Definition SceneExtensions.h:24
Definition UnrealString.h.inl:34
Definition RefCounting.h:454
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
bool Wait(const TaskCollectionType &Tasks, FTimespan InTimeout=FTimespan::MaxValue())
Definition Task.h:381
Definition ShowFlags.h:56
Definition SkinningTransformProvider.h:81
Definition WeakObjectPtrTemplates.h:25
static CORE_API const TVector< double > ZeroVector
Definition Vector.h:79