瀏覽代碼

Added packHalfFloat().

Dario Manesku 12 年之前
父節點
當前提交
c01085856c
共有 1 個文件被更改,包括 15 次插入0 次删除
  1. 15 0
      examples/common/shaderlib.sh

+ 15 - 0
examples/common/shaderlib.sh

@@ -250,6 +250,21 @@ float unpackRgbaToFloat(vec4 _rgba)
 	return dot(_rgba, shift);
 }
 
+vec2 packHalfFloat(float _value)
+{
+	const vec2 shift = vec2(256, 1.0);
+	const vec2 mask = vec2(0, 1.0 / 256.0);
+	vec2 comp = fract(_value * shift);
+	comp -= comp.xx * mask;
+	return comp;
+}
+
+float unpackHalfFloat(vec2 _rg)
+{
+	const vec2 shift = vec2(1.0 / 256.0, 1.0);
+	return dot(_rg, shift);
+}
+
 float random(vec2 _uv)
 {
 	return fract(sin(dot(_uv.xy, vec2(12.9898, 78.233) ) ) * 43758.5453);