UNPKG

playcanvas

Version:

Open-source WebGL/WebGPU 3D engine for the web

3 lines (2 loc) 1.23 kB
declare const _default: "\nuint pack8888(vec4 v) {\n uvec4 t = uvec4(v * 255.0) << uvec4(24u, 16u, 8u, 0u);\n return t.x | t.y | t.z | t.w;\n}\n\nuint pack101010(vec3 v) {\n uvec3 t = uvec3(v * 1023.0) << uvec3(20u, 10u, 0u);\n return t.x | t.y | t.z;\n}\n\nuint pack111110(vec3 v) {\n uvec3 t = uvec3(v * vec3(2047.0, 2047.0, 1023.0)) << uvec3(21u, 10u, 0u);\n return t.x | t.y | t.z;\n}\n\nvec4 unpack8888(uint v) {\n return vec4((uvec4(v) >> uvec4(24u, 16u, 8u, 0u)) & 0xffu) / 255.0;\n}\n\nvec3 unpack101010(uint v) {\n return vec3((uvec3(v) >> uvec3(20u, 10u, 0u)) & 0x3ffu) / 1023.0;\n}\n\nvec3 unpack111110(uint v) {\n return vec3((uvec3(v) >> uvec3(21u, 10u, 0u)) & uvec3(0x7ffu, 0x7ffu, 0x3ffu)) / vec3(2047.0, 2047.0, 1023.0);\n}\n\n// resolve the sample using the supplied codebook and return a normalized value relative to codebook min and max\nvec3 resolveCodebook(vec3 s, vec4 codebook[64]) {\n uvec3 idx = uvec3(s * 255.0);\n vec3 v = vec3(\n codebook[idx.x >> 2u][idx.x & 3u],\n codebook[idx.y >> 2u][idx.y & 3u],\n codebook[idx.z >> 2u][idx.z & 3u]\n );\n return (v - codebook[0].x) / (codebook[63].w - codebook[0].x);\n}\n"; export default _default;