[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