Browse Source

added de/encodeFloatRGBA glsl helper functions

Alexander Rose 6 years ago
parent
commit
0bfb05decc

+ 5 - 0
src/mol-gl/shader/utils/decode-float-rgba.glsl

@@ -0,0 +1,5 @@
+float decodeFloatRGBA(vec4 rgba) {
+  return dot(rgba, vec4(1.0, 1/255.0, 1/65025.0, 1/16581375.0));
+}
+
+#pragma glslify: export(decodeFloatRGBA)

+ 8 - 0
src/mol-gl/shader/utils/encode-float-rgba.glsl

@@ -0,0 +1,8 @@
+vec4 encodeFloatRGBA(float v) {
+  vec4 enc = vec4(1.0, 255.0, 65025.0, 16581375.0) * v;
+  enc = frac(enc);
+  enc -= enc.yzww * float4(1.0/255.0,1.0/255.0,1.0/255.0,0.0);
+  return enc;
+}
+
+#pragma glslify: export(encodeFloatRGBA)