From cd5d7d2bed506df6f5773564338f8de9e8f03d84 Mon Sep 17 00:00:00 2001 From: Ben Staddon Date: Wed, 6 Sep 2017 21:55:41 +0100 Subject: [PATCH] Adjust float (un)packing functions to be slightly more accurate (#4316) --- .../client/model/pipeline/LightUtil.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/minecraftforge/client/model/pipeline/LightUtil.java b/src/main/java/net/minecraftforge/client/model/pipeline/LightUtil.java index 86a84eb623..a9d69395eb 100644 --- a/src/main/java/net/minecraftforge/client/model/pipeline/LightUtil.java +++ b/src/main/java/net/minecraftforge/client/model/pipeline/LightUtil.java @@ -194,15 +194,15 @@ public class LightUtil } else if(type == VertexFormatElement.EnumType.BYTE) { - to[i] = ((float)(byte)bits) / mask * 2; + to[i] = ((float)(byte)bits) / (mask >> 1); } else if(type == VertexFormatElement.EnumType.SHORT) { - to[i] = ((float)(short)bits) / mask * 2; + to[i] = ((float)(short)bits) / (mask >> 1); } else if(type == VertexFormatElement.EnumType.INT) { - to[i] = ((float)(bits & 0xFFFFFFFFL)) / 0xFFFFFFFFL * 2; + to[i] = (float)((double)(bits & 0xFFFFFFFFL) / (0xFFFFFFFFL >> 1)); } } else @@ -239,11 +239,11 @@ public class LightUtil type == VertexFormatElement.EnumType.UINT ) { - bits = (int)(f * mask); + bits = Math.round(f * mask); } else { - bits = (int)(f * mask / 2); + bits = Math.round(f * (mask >> 1)); } to[index] &= ~(mask << (offset * 8)); to[index] |= (((bits & mask) << (offset * 8)));