Fix animated model skinning precision issues

#2460
This commit is contained in:
Wojtek Figat
2024-04-22 13:18:52 +02:00
parent 1072b90c5b
commit 568a69081d
5 changed files with 24 additions and 26 deletions

View File

@@ -10,7 +10,7 @@
/// <summary>
/// Current materials shader version.
/// </summary>
#define MATERIAL_GRAPH_VERSION 161
#define MATERIAL_GRAPH_VERSION 162
class Material;
class GPUShader;

View File

@@ -563,9 +563,10 @@ void MeshData::NormalizeBlendWeights()
ASSERT(Positions.Count() == BlendWeights.Count());
for (int32 i = 0; i < Positions.Count(); i++)
{
const float sum = BlendWeights[i].SumValues();
Float4& weights = BlendWeights.Get()[i];
const float sum = weights.SumValues();
const float invSum = sum > ZeroTolerance ? 1.0f / sum : 0.0f;
BlendWeights[i] *= invSum;
weights *= invSum;
}
}