[Bf-blender-cvs] [79f15f68c5c] tmp-workbench-rewrite2: Fix workbench_float_pair encode/decode

Miguel Pozo noreply at git.blender.org
Fri Oct 7 15:49:23 CEST 2022


Commit: 79f15f68c5cd2c8229e203d0f9472281d3464a3e
Author: Miguel Pozo
Date:   Fri Oct 7 15:49:14 2022 +0200
Branches: tmp-workbench-rewrite2
https://developer.blender.org/rB79f15f68c5cd2c8229e203d0f9472281d3464a3e

Fix workbench_float_pair encode/decode

Set them into the 0-1 range so they fit in unorm textures.

===================================================================

M	source/blender/draw/engines/workbench/shaders/workbench_common_lib.glsl

===================================================================

diff --git a/source/blender/draw/engines/workbench/shaders/workbench_common_lib.glsl b/source/blender/draw/engines/workbench/shaders/workbench_common_lib.glsl
index 9b142fe56b5..e59d9352bd3 100644
--- a/source/blender/draw/engines/workbench/shaders/workbench_common_lib.glsl
+++ b/source/blender/draw/engines/workbench/shaders/workbench_common_lib.glsl
@@ -41,7 +41,7 @@ float workbench_float_pair_encode(float v1, float v2)
   const int v2_mask = 0x7;
   int iv1 = int(v1 * float(v1_mask));
   int iv2 = int(v2 * float(v2_mask)) << int(ROUGHNESS_BITS);
-  return float(iv1 | iv2);
+  return float(iv1 | iv2) / 255.0;
 }
 
 void workbench_float_pair_decode(float data, out float v1, out float v2)
@@ -51,7 +51,7 @@ void workbench_float_pair_decode(float data, out float v1, out float v2)
   /* Same as above because some compiler are very dumb and think we use medium int. */
   const int v1_mask = 0x1F;
   const int v2_mask = 0x7;
-  int idata = int(data);
+  int idata = int(data * 255.0);
   v1 = float(idata & v1_mask) * (1.0 / float(v1_mask));
   v2 = float(idata >> int(ROUGHNESS_BITS)) * (1.0 / float(v2_mask));
 }



More information about the Bf-blender-cvs mailing list