From 0bfb05deccc04aabe27d56db90de87c9b5fc5910 Mon Sep 17 00:00:00 2001 From: Alexander Rose <alex.rose@rcsb.org> Date: Tue, 29 May 2018 18:33:01 -0700 Subject: [PATCH] added de/encodeFloatRGBA glsl helper functions --- src/mol-gl/shader/utils/decode-float-rgba.glsl | 5 +++++ src/mol-gl/shader/utils/encode-float-rgba.glsl | 8 ++++++++ 2 files changed, 13 insertions(+) create mode 100644 src/mol-gl/shader/utils/decode-float-rgba.glsl create mode 100644 src/mol-gl/shader/utils/encode-float-rgba.glsl diff --git a/src/mol-gl/shader/utils/decode-float-rgba.glsl b/src/mol-gl/shader/utils/decode-float-rgba.glsl new file mode 100644 index 000000000..b55b14bf5 --- /dev/null +++ b/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) \ No newline at end of file diff --git a/src/mol-gl/shader/utils/encode-float-rgba.glsl b/src/mol-gl/shader/utils/encode-float-rgba.glsl new file mode 100644 index 000000000..6ad94bfb1 --- /dev/null +++ b/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) \ No newline at end of file -- GitLab