diff --git a/examples/common/shaderlib.sh b/examples/common/shaderlib.sh index 08a5447a..253cdf7f 100644 --- a/examples/common/shaderlib.sh +++ b/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);