소스 검색

added de/encodeFloatRGBA glsl helper functions

Alexander Rose 6 년 전
부모
커밋
0bfb05decc
2개의 변경된 파일13개의 추가작업 그리고 0개의 파일을 삭제
  1. 5 0
      src/mol-gl/shader/utils/decode-float-rgba.glsl
  2. 8 0
      src/mol-gl/shader/utils/encode-float-rgba.glsl

+ 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)