From 87fec7783eb3d416f2ffb5aa3cdc1b2c78acfc75 Mon Sep 17 00:00:00 2001 From: ackwell Date: Tue, 4 Jun 2024 12:10:45 +1000 Subject: [PATCH] Fix blend weight adjustment getting stuck on near-bounds values --- Penumbra/Import/Models/Import/VertexAttribute.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Penumbra/Import/Models/Import/VertexAttribute.cs b/Penumbra/Import/Models/Import/VertexAttribute.cs index a4651776..af401ec1 100644 --- a/Penumbra/Import/Models/Import/VertexAttribute.cs +++ b/Penumbra/Import/Models/Import/VertexAttribute.cs @@ -150,6 +150,12 @@ public class VertexAttribute { var convertedValues = byteValues.Select(value => value * (1f / 255f)).ToArray(); var closestIndex = Enumerable.Range(0, 4) + .Where(index => { + var byteValue = byteValues[index]; + if (adjustment < 0) return byteValue > 0; + if (adjustment > 0) return byteValue < 255; + return true; + }) .Select(index => (index, delta: Math.Abs(originalValues[index] - convertedValues[index]))) .MinBy(x => x.delta) .index;