1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| /**
| * Packs a depth value into a vec3 that can be represented by unsigned bytes.
| *
| * @name czm_packDepth
| * @glslFunction
| *
| * @param {float} depth The floating-point depth.
| * @returns {vec3} The packed depth.
| */
| vec4 czm_packDepth(float depth)
| {
| // See Aras Pranckevičius' post Encoding Floats to RGBA
| // http://aras-p.info/blog/2009/07/30/encoding-floats-to-rgba-the-final/
| vec4 enc = vec4(1.0, 255.0, 65025.0, 16581375.0) * depth;
| enc = fract(enc);
| enc -= enc.yzww * vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0);
| return enc;
| }
|
|