UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SkinWeightVertexBuffer.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "RenderResource.h"
7#include "GPUSkinPublicDefs.h"
8#include "SkeletalMeshTypes.h"
11
13struct FSoftSkinVertex;
14
17
19template <bool bExtraBoneInfluences, typename BoneIndexType>
21{
22 enum
23 {
25 };
28
30 {
32 // serialize bone index and weight arrays in order
33 // this is required when serializing as bulk data memory (see TArray::BulkSerialize notes)
35 {
37 {
38 // Older versions use uint8 bone indices
39 uint8 BoneIndex = 0;
40 Ar << BoneIndex;
41 I.InfluenceBones[InfluenceIndex] = BoneIndex;
42 }
43 else
44 {
46 }
47 }
48
50 {
52 }
53
54 return Ar;
55 }
56};
57
64
70
73{
74public:
77
80
83
86
88 ENGINE_API void CleanUp();
89
91 bool IsLookupDataValid() const;
92
93 const uint8* GetLookupData() const
94 {
95 return Data;
96 }
97
99 {
100 return Data;
101 }
102
104
106
107 void SerializeMetaData(FArchive& Ar);
110
111 // FRenderResource interface.
112 virtual void InitRHI(FRHICommandListBase& RHICmdList) override;
113 virtual void ReleaseRHI() override;
114
115 virtual FString GetFriendlyName() const override
116 { return TEXT("SkeletalMesh Vertex Weights Lookup"); }
117
119 inline uint32 GetNumVertices() const
120 { return NumVertices; }
121
123 inline uint32 GetStride() const
124 { return sizeof(uint32); }
125
128 { return NumVertices * GetStride(); }
129
130 // @param guaranteed only to be valid if the vertex buffer is valid
132 { return SRVValue; }
133
136 { bNeedsCPUAccess = bInNeedsCPUAccess; }
137
138 bool GetNeedsCPUAccess() const
139 { return bNeedsCPUAccess; }
140
143
147
150
151protected:
152 // guaranteed only to be valid if the vertex buffer is valid
154
155private:
156 void ResizeBuffer(uint32 InNumVertices);
157
159 ENGINE_API void AllocateData();
160
162 bool bNeedsCPUAccess;
163
166
168 uint8* Data;
169
171 uint32 NumVertices;
172
173 static const EPixelFormat PixelFormat = PF_R32_UINT;
174 static const uint32 PixelFormatStride = 4;
175};
176
178template<typename VertexDataType>
179class FSkinWeightVertexData : public TStaticMeshVertexData<VertexDataType>
180{
181public:
186};
187
190{
191public:
194
197
200
203
205 ENGINE_API void CleanUp();
206
208
210
211 void SerializeMetaData(FArchive& Ar);
214
215 // FRenderResource interface.
216 ENGINE_API virtual void InitRHI(FRHICommandListBase& RHICmdList) override;
217 ENGINE_API virtual void ReleaseRHI() override;
218
219 virtual FString GetFriendlyName() const override
220 { return TEXT("SkeletalMesh Vertex Weights Data"); }
221
223 inline uint32 GetNumVertices() const
224 { return NumVertices; }
225
228 { return NumBoneWeights; }
229
232 { return (Use16BitBoneIndex() ? sizeof(FBoneIndex16) : sizeof(FBoneIndex8)); }
233
235 {
236 return Use16BitBoneWeight() ? sizeof(uint16) : sizeof(uint8);
237 }
238
243
246 { return GetBoneIndexAndWeightByteSize() * MaxBoneInfluences; }
247
250 { return GetBoneIndexByteSize() * MaxBoneInfluences; }
251
254 { return NumBoneWeights * GetBoneIndexAndWeightByteSize(); }
255
256 // @param guaranteed only to be valid if the vertex buffer is valid
258 { return SRVValue; }
259
262 { bNeedsCPUAccess = bInNeedsCPUAccess; }
263
264 inline bool GetNeedsCPUAccess() const
265 { return bNeedsCPUAccess; }
266
267 inline bool GetVariableBonesPerVertex() const
268 { return bVariableBonesPerVertex; }
269
272
274 { return MaxBoneInfluences; }
275
277 { bUse16BitBoneIndex = bInUse16BitBoneIndex; }
278
279 inline bool Use16BitBoneIndex() const
280 { return bUse16BitBoneIndex; }
281
283 { bUse16BitBoneWeight = bInUse16BitBoneWeight; }
284
286 { return bUse16BitBoneWeight; }
287
288
289
297
299
302
306
307 bool IsWeightDataValid() const;
308
309 const uint8* GetWeightData() const
310 {
311 return Data;
312 }
313
315 {
316 return Data;
317 }
318
319protected:
320 // guaranteed only to be valid if the vertex buffer is valid
322
323private:
324 void ResizeBuffer(uint32 InNumWeights, uint32 InNumVertices);
325
326 EPixelFormat GetPixelFormat() const
327 { return bVariableBonesPerVertex ? PF_R8_UINT : PF_R32_UINT; }
328
329 uint32 GetPixelFormatStride() const
330 { return bVariableBonesPerVertex ? 1 : 4; }
331
333 bool bNeedsCPUAccess;
334
335 bool bVariableBonesPerVertex;
336
338 uint32 MaxBoneInfluences;
339
341 bool bUse16BitBoneIndex;
342
344 bool bUse16BitBoneWeight;
345
348
350 uint8* Data;
351
353 uint32 NumVertices;
354
356 uint32 NumBoneWeights;
357
359 ENGINE_API void AllocateData();
360};
361
364{
365public:
368
371
374
377
379 ENGINE_API void CleanUp();
380
381#if WITH_EDITOR
384#endif // WITH_EDITOR
385
390
392
394
395 void SerializeMetaData(FArchive& Ar);
397
399 inline uint32 GetNumVertices() const
400 { return DataVertexBuffer.GetNumVertices(); }
401
404 { return LookupVertexBuffer.GetVertexDataSize() + DataVertexBuffer.GetVertexDataSize(); }
405
407 {
408 DataVertexBuffer.SetNeedsCPUAccess(bInNeedsCPUAccess);
409 LookupVertexBuffer.SetNeedsCPUAccess(bInNeedsCPUAccess);
410 }
411
412 bool GetNeedsCPUAccess() const
413 { return DataVertexBuffer.GetNeedsCPUAccess(); }
414
417
419 { return DataVertexBuffer.GetMaxBoneInfluences(); }
420
423
424 bool Use16BitBoneIndex() const
425 { return DataVertexBuffer.Use16BitBoneIndex(); }
426
429
431 { return DataVertexBuffer.Use16BitBoneWeight(); }
432
434 { return DataVertexBuffer.GetBoneIndexByteSize(); }
435
437 { return DataVertexBuffer.GetBoneWeightByteSize(); }
438
440 { return DataVertexBuffer.GetBoneIndexAndWeightByteSize(); }
441
443 { return DataVertexBuffer.GetVariableBonesPerVertex(); }
444
447
450
452 { return &DataVertexBuffer; }
453
455 { return &DataVertexBuffer; }
456
458 { return &LookupVertexBuffer; }
459
461
464 ENGINE_API bool GetRigidWeightBone(uint32 VertexIndex, int32& OutBoneIndex) const;
466 ENGINE_API void SetBoneIndex(uint32 VertexIndex, uint32 InfluenceIndex, uint32 BoneIndex);
468 ENGINE_API void SetBoneWeight(uint32 VertexIndex, uint32 InfluenceIndex, uint16 BoneWeight);
469 ENGINE_API void ResetVertexBoneWeights(uint32 VertexIndex);
470
474
476 ENGINE_API void SetOwnerName(const FName& OwnerName);
480
483 {
484 DataVertexBuffer.InitRHIForStreaming(RHIInfo.DataVertexBufferRHI, Batcher);
485 LookupVertexBuffer.InitRHIForStreaming(RHIInfo.LookupVertexBufferRHI, Batcher);
486 }
487
493
494private:
496 FSkinWeightDataVertexBuffer DataVertexBuffer;
497
499 FSkinWeightLookupVertexBuffer LookupVertexBuffer;
500};
uint16 FBoneIndexType
Definition BoneIndices.h:7
#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
#define EXTRA_BONE_INFLUENCES
Definition GPUSkinPublicDefs.h:15
#define MAX_INFLUENCES_PER_STREAM
Definition GPUSkinPublicDefs.h:18
#define MAX_TOTAL_INFLUENCES
Definition GPUSkinPublicDefs.h:12
GPUSkinBoneInfluenceType
Definition GPUSkinVertexFactory.h:158
void Init()
Definition LockFreeList.h:4
EPixelFormat
Definition PixelFormat.h:16
@ PF_R8_UINT
Definition PixelFormat.h:74
@ PF_R32_UINT
Definition PixelFormat.h:45
uint8 FBoneIndex8
Definition SkinWeightVertexBuffer.h:15
uint16 FBoneIndex16
Definition SkinWeightVertexBuffer.h:16
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 Archive.h:1208
virtual CORE_API void UsingCustomVersion(const struct FGuid &Guid)
Definition Archive.cpp:590
UE_FORCEINLINE_HINT bool IsLoading() const
Definition Archive.h:236
CORE_API int32 CustomVer(const struct FGuid &Key) const
Definition Archive.cpp:602
Definition NameTypes.h:617
Definition RHIResources.h:1581
Definition RHICommandList.h:455
Definition RHIResourceReplace.h:55
Definition RHIResources.h:3304
Definition SkinWeightVertexBuffer.h:190
bool GetNeedsCPUAccess() const
Definition SkinWeightVertexBuffer.h:264
void SetNeedsCPUAccess(bool bInNeedsCPUAccess)
Definition SkinWeightVertexBuffer.h:261
ENGINE_API bool GetRigidWeightBone(uint32 VertexWeightOffset, uint32 VertexInfluenceCount, int32 &OutBoneIndex) const
Definition SkinWeightVertexBuffer.cpp:488
ENGINE_API ~FSkinWeightDataVertexBuffer()
Definition SkinWeightVertexBuffer.cpp:231
ENGINE_API void SetMetaData(uint32 InNumVertices, uint32 InMaxBoneInfluences, bool bInUse16BitBoneIndex, bool bInUse16BitBoneWeight)
Definition SkinWeightVertexBuffer.cpp:386
ENGINE_API void SetMaxBoneInfluences(uint32 InMaxBoneInfluences)
Definition SkinWeightVertexBuffer.cpp:470
ENGINE_API void CopyDataFromBuffer(const uint8 *InSkinWeightData, uint32 InNumVertices)
Definition SkinWeightVertexBuffer.cpp:613
void SetUse16BitBoneWeight(bool bInUse16BitBoneWeight)
Definition SkinWeightVertexBuffer.h:282
FShaderResourceViewRHIRef SRVValue
Definition SkinWeightVertexBuffer.h:321
const uint8 * GetWeightData() const
Definition SkinWeightVertexBuffer.h:309
uint32 GetVertexDataSize() const
Definition SkinWeightVertexBuffer.h:253
bool Use16BitBoneIndex() const
Definition SkinWeightVertexBuffer.h:279
ENGINE_API void CleanUp()
Definition SkinWeightVertexBuffer.cpp:247
uint32 GetNumBoneWeights() const
Definition SkinWeightVertexBuffer.h:227
ENGINE_API uint16 GetBoneWeight(uint32 VertexWeightOffset, uint32 VertexInfluenceCount, uint32 InfluenceIndex) const
Definition SkinWeightVertexBuffer.cpp:558
uint32 GetConstantInfluencesBoneWeightsOffset() const
Definition SkinWeightVertexBuffer.h:249
uint32 GetBoneIndexByteSize() const
Definition SkinWeightVertexBuffer.h:231
void ReleaseRHIForStreaming(FRHIResourceReplaceBatcher &Batcher)
Definition SkinWeightVertexBuffer.cpp:419
ENGINE_API GPUSkinBoneInfluenceType GetBoneInfluenceType() const
uint32 GetBoneIndexAndWeightByteSize() const
Definition SkinWeightVertexBuffer.h:239
FRHIShaderResourceView * GetSRV() const
Definition SkinWeightVertexBuffer.h:257
bool IsWeightDataValid() const
Definition SkinWeightVertexBuffer.cpp:427
ENGINE_API void ResetVertexBoneWeights(uint32 VertexWeightOffset, uint32 VertexInfluenceCount)
Definition SkinWeightVertexBuffer.cpp:605
uint8 * GetWeightData()
Definition SkinWeightVertexBuffer.h:314
ENGINE_API FSkinWeightDataVertexBuffer()
Definition SkinWeightVertexBuffer.cpp:204
FBufferRHIRef CreateRHIBuffer(FRHICommandListBase &RHICmdList)
Definition SkinWeightVertexBuffer.cpp:405
void SerializeMetaData(FArchive &Ar)
Definition SkinWeightVertexBuffer.cpp:348
uint32 GetNumVertices() const
Definition SkinWeightVertexBuffer.h:223
bool Use16BitBoneWeight() const
Definition SkinWeightVertexBuffer.h:285
void InitRHIForStreaming(FRHIBuffer *IntermediateBuffer, FRHIResourceReplaceBatcher &Batcher)
Definition SkinWeightVertexBuffer.cpp:411
ENGINE_API void SetBoneIndex(uint32 VertexWeightOffset, uint32 VertexInfluenceCount, uint32 InfluenceIndex, uint32 BoneIndex)
Definition SkinWeightVertexBuffer.cpp:537
virtual ENGINE_API void InitRHI(FRHICommandListBase &RHICmdList) override
Definition SkinWeightVertexBuffer.cpp:432
void SetUse16BitBoneIndex(bool bInUse16BitBoneIndex)
Definition SkinWeightVertexBuffer.h:276
bool GetVariableBonesPerVertex() const
Definition SkinWeightVertexBuffer.h:267
uint32 GetMaxBoneInfluences() const
Definition SkinWeightVertexBuffer.h:273
ENGINE_API uint32 GetBoneIndex(uint32 VertexWeightOffset, uint32 VertexInfluenceCount, uint32 InfluenceIndex) const
Definition SkinWeightVertexBuffer.cpp:516
uint32 GetConstantInfluencesVertexStride() const
Definition SkinWeightVertexBuffer.h:245
ENGINE_API void SetBoneWeight(uint32 VertexWeightOffset, uint32 VertexInfluenceCount, uint32 InfluenceIndex, uint16 BoneWeight)
Definition SkinWeightVertexBuffer.cpp:581
uint32 GetBoneWeightByteSize() const
Definition SkinWeightVertexBuffer.h:234
void CopyMetaData(const FSkinWeightDataVertexBuffer &Other)
Definition SkinWeightVertexBuffer.cpp:396
virtual FString GetFriendlyName() const override
Definition SkinWeightVertexBuffer.h:219
virtual ENGINE_API void ReleaseRHI() override
Definition SkinWeightVertexBuffer.cpp:455
friend FArchive & operator<<(FArchive &Ar, FSkinWeightDataVertexBuffer &VertexBuffer)
Definition SkinWeightVertexBuffer.cpp:274
ENGINE_API FSkinWeightDataVertexBuffer & operator=(const FSkinWeightDataVertexBuffer &Other)
Definition SkinWeightVertexBuffer.cpp:236
Definition SkinWeightVertexBuffer.h:73
void SetWeightOffsetAndInfluenceCount(uint32 VertexIndex, uint32 WeightOffset, uint32 InfluenceCount)
Definition SkinWeightVertexBuffer.cpp:188
FRHIShaderResourceView * GetSRV() const
Definition SkinWeightVertexBuffer.h:131
void CopyMetaData(const FSkinWeightLookupVertexBuffer &Other)
Definition SkinWeightVertexBuffer.cpp:121
uint32 GetVertexDataSize() const
Definition SkinWeightVertexBuffer.h:127
void InitRHIForStreaming(FRHIBuffer *IntermediateBuffer, FRHIResourceReplaceBatcher &Batcher)
Definition SkinWeightVertexBuffer.cpp:164
bool GetNeedsCPUAccess() const
Definition SkinWeightVertexBuffer.h:138
ENGINE_API FSkinWeightLookupVertexBuffer & operator=(const FSkinWeightLookupVertexBuffer &Other)
Definition SkinWeightVertexBuffer.cpp:39
FBufferRHIRef CreateRHIBuffer(FRHICommandListBase &RHICmdList)
Definition SkinWeightVertexBuffer.cpp:195
uint32 GetNumVertices() const
Definition SkinWeightVertexBuffer.h:119
uint8 * GetLookupData()
Definition SkinWeightVertexBuffer.h:98
ENGINE_API FSkinWeightLookupVertexBuffer()
Definition SkinWeightVertexBuffer.cpp:17
bool IsLookupDataValid() const
Definition SkinWeightVertexBuffer.cpp:55
const uint8 * GetLookupData() const
Definition SkinWeightVertexBuffer.h:93
virtual FString GetFriendlyName() const override
Definition SkinWeightVertexBuffer.h:115
ENGINE_API void SetMetaData(uint32 InNumVertices)
Definition SkinWeightVertexBuffer.cpp:116
ENGINE_API ~FSkinWeightLookupVertexBuffer()
Definition SkinWeightVertexBuffer.cpp:34
void GetWeightOffsetAndInfluenceCount(uint32 VertexIndex, uint32 &OutWeightOffset, uint32 &OutInfluenceCount) const
Definition SkinWeightVertexBuffer.cpp:180
uint32 GetStride() const
Definition SkinWeightVertexBuffer.h:123
friend FArchive & operator<<(FArchive &Ar, FSkinWeightLookupVertexBuffer &VertexBuffer)
Definition SkinWeightVertexBuffer.cpp:73
ENGINE_API void CleanUp()
Definition SkinWeightVertexBuffer.cpp:46
virtual void InitRHI(FRHICommandListBase &RHICmdList) override
Definition SkinWeightVertexBuffer.cpp:134
void SerializeMetaData(FArchive &Ar)
Definition SkinWeightVertexBuffer.cpp:107
void SetNeedsCPUAccess(bool bInNeedsCPUAccess)
Definition SkinWeightVertexBuffer.h:135
void ReleaseRHIForStreaming(FRHIResourceReplaceBatcher &Batcher)
Definition SkinWeightVertexBuffer.cpp:172
virtual void ReleaseRHI() override
Definition SkinWeightVertexBuffer.cpp:157
FShaderResourceViewRHIRef SRVValue
Definition SkinWeightVertexBuffer.h:153
Definition SkinWeightVertexBuffer.h:364
ENGINE_API FSkinWeightVertexBuffer & operator=(const FSkinWeightVertexBuffer &Other)
Definition SkinWeightVertexBuffer.cpp:651
const FSkinWeightLookupVertexBuffer * GetLookupVertexBuffer() const
Definition SkinWeightVertexBuffer.h:457
void InitRHIForStreaming(const FSkinWeightRHIInfo &RHIInfo, FRHIResourceReplaceBatcher &Batcher)
Definition SkinWeightVertexBuffer.h:482
ENGINE_API void ReleaseResources()
Definition SkinWeightVertexBuffer.cpp:815
bool Use16BitBoneWeight() const
Definition SkinWeightVertexBuffer.h:430
ENGINE_API void CleanUp()
Definition SkinWeightVertexBuffer.cpp:666
uint32 GetMaxBoneInfluences() const
Definition SkinWeightVertexBuffer.h:418
uint32 GetNumVertices() const
Definition SkinWeightVertexBuffer.h:399
void SerializeMetaData(FArchive &Ar)
Definition SkinWeightVertexBuffer.cpp:704
ENGINE_API void CopySkinWeightRawDataFromBuffer(const uint8 *InSkinWeightData, uint32 InNumVertices)
Definition SkinWeightVertexBuffer.cpp:944
bool Use16BitBoneIndex() const
Definition SkinWeightVertexBuffer.h:424
void SetUse16BitBoneIndex(bool bInUse16BitBoneIndex)
Definition SkinWeightVertexBuffer.h:421
ENGINE_API friend FArchive & operator<<(FArchive &Ar, FSkinWeightVertexBuffer &VertexBuffer)
Definition SkinWeightVertexBuffer.cpp:686
ENGINE_API FSkinWeightInfo GetVertexSkinWeights(uint32 VertexIndex) const
Definition SkinWeightVertexBuffer.cpp:934
ENGINE_API void SetOwnerName(const FName &OwnerName)
Definition SkinWeightVertexBuffer.cpp:797
const FSkinWeightDataVertexBuffer * GetDataVertexBuffer() const
Definition SkinWeightVertexBuffer.h:454
uint32 GetVertexDataSize() const
Definition SkinWeightVertexBuffer.h:403
ENGINE_API void BeginInitResources()
Definition SkinWeightVertexBuffer.cpp:803
uint32 GetBoneWeightByteSize() const
Definition SkinWeightVertexBuffer.h:436
ENGINE_API ~FSkinWeightVertexBuffer()
Definition SkinWeightVertexBuffer.cpp:646
ENGINE_API void ResetVertexBoneWeights(uint32 VertexIndex)
Definition SkinWeightVertexBuffer.cpp:789
ENGINE_API bool GetRigidWeightBone(uint32 VertexIndex, int32 &OutBoneIndex) const
Definition SkinWeightVertexBuffer.cpp:749
void ReleaseRHIForStreaming(FRHIResourceReplaceBatcher &Batcher)
Definition SkinWeightVertexBuffer.h:488
uint32 GetConstantInfluencesVertexStride() const
Definition SkinWeightVertexBuffer.h:445
ENGINE_API uint32 GetBoneIndex(uint32 VertexIndex, uint32 InfluenceIndex) const
Definition SkinWeightVertexBuffer.cpp:757
ENGINE_API GPUSkinBoneInfluenceType GetBoneInfluenceType() const
Definition SkinWeightVertexBuffer.cpp:724
void SetNeedsCPUAccess(bool bInNeedsCPUAccess)
Definition SkinWeightVertexBuffer.h:406
ENGINE_API void SetBoneIndex(uint32 VertexIndex, uint32 InfluenceIndex, uint32 BoneIndex)
Definition SkinWeightVertexBuffer.cpp:765
ENGINE_API void SetBoneWeight(uint32 VertexIndex, uint32 InfluenceIndex, uint16 BoneWeight)
Definition SkinWeightVertexBuffer.cpp:781
ENGINE_API void RebuildLookupVertexBuffer()
Definition SkinWeightVertexBuffer.cpp:672
ENGINE_API uint16 GetBoneWeight(uint32 VertexIndex, uint32 InfluenceIndex) const
Definition SkinWeightVertexBuffer.cpp:773
FSkinWeightRHIInfo CreateRHIBuffer(FRHICommandListBase &RHICmdList)
Definition SkinWeightVertexBuffer.cpp:716
ENGINE_API void GetVertexInfluenceOffsetCount(uint32 VertexIndex, uint32 &VertexWeightOffset, uint32 &VertexInfluenceCount) const
Definition SkinWeightVertexBuffer.cpp:736
ENGINE_API void BeginReleaseResources()
Definition SkinWeightVertexBuffer.cpp:809
ENGINE_API FSkinWeightVertexBuffer()
Definition SkinWeightVertexBuffer.cpp:629
bool GetVariableBonesPerVertex() const
Definition SkinWeightVertexBuffer.h:442
uint32 GetBoneIndexByteSize() const
Definition SkinWeightVertexBuffer.h:433
uint32 GetConstantInfluencesBoneWeightsOffset() const
Definition SkinWeightVertexBuffer.h:448
bool GetNeedsCPUAccess() const
Definition SkinWeightVertexBuffer.h:412
uint32 GetBoneIndexAndWeightByteSize() const
Definition SkinWeightVertexBuffer.h:439
ENGINE_API void GetSkinWeights(TArray< FSkinWeightInfo > &OutVertices) const
Definition SkinWeightVertexBuffer.cpp:921
void CopyMetaData(const FSkinWeightVertexBuffer &Other)
Definition SkinWeightVertexBuffer.cpp:710
FSkinWeightDataVertexBuffer * GetDataVertexBuffer()
Definition SkinWeightVertexBuffer.h:451
void SetUse16BitBoneWeight(bool bInUse16BitBoneWeight)
Definition SkinWeightVertexBuffer.h:427
void SetMaxBoneInfluences(uint32 InMaxBoneInfluences)
Definition SkinWeightVertexBuffer.h:415
Definition SkinWeightVertexBuffer.h:180
FSkinWeightVertexData(bool InNeedsCPUAccess=false)
Definition SkinWeightVertexBuffer.h:182
Definition StaticMeshVertexDataInterface.h:22
Definition RenderResource.h:474
Definition Array.h:670
Definition StaticMeshVertexData.h:13
CORE_API static const FGuid GUID
Definition AnimObjectVersion.h:65
@ IncreaseBoneIndexLimitPerChunk
Definition AnimObjectVersion.h:25
Definition SkinWeightVertexBuffer.h:60
FBoneIndexType InfluenceBones[MAX_TOTAL_INFLUENCES]
Definition SkinWeightVertexBuffer.h:61
uint16 InfluenceWeights[MAX_TOTAL_INFLUENCES]
Definition SkinWeightVertexBuffer.h:62
Definition SkinWeightVertexBuffer.h:66
FBufferRHIRef LookupVertexBufferRHI
Definition SkinWeightVertexBuffer.h:68
FBufferRHIRef DataVertexBufferRHI
Definition SkinWeightVertexBuffer.h:67
Definition SkeletalMeshTypes.h:57
Definition SkinWeightVertexBuffer.h:21
@ NumInfluences
Definition SkinWeightVertexBuffer.h:24
friend FArchive & operator<<(FArchive &Ar, TLegacySkinWeightInfo &I)
Definition SkinWeightVertexBuffer.h:29
uint8 InfluenceWeights[NumInfluences]
Definition SkinWeightVertexBuffer.h:27
BoneIndexType InfluenceBones[NumInfluences]
Definition SkinWeightVertexBuffer.h:26