playcanvas
Version:
PlayCanvas WebGL game engine
3 lines (2 loc) • 1.34 kB
TypeScript
declare const _default: "\nfn pack8888(v: vec4f) -> u32 {\n let t = vec4u(v * 255.0) << vec4u(24u, 16u, 8u, 0u);\n return t.x | t.y | t.z | t.w;\n}\n\nfn pack101010(v: vec3f) -> u32 {\n let t = vec3u(v * vec3f(1023.0, 1023.0, 1023.0)) << vec3u(20u, 10u, 0u);\n return t.x | t.y | t.z;\n}\n\nfn pack111110(v: vec3f) -> u32 {\n let t = vec3u(v * vec3f(2047.0, 2047.0, 1023.0)) << vec3u(21u, 10u, 0u);\n return t.x | t.y | t.z;\n}\n\nfn unpack8888(v: u32) -> vec4f {\n return vec4f((vec4u(v) >> vec4u(24u, 16u, 8u, 0u)) & vec4u(0xffu)) / 255.0;\n}\n\nfn unpack101010(v: u32) -> vec3f {\n return vec3f((vec3u(v) >> vec3u(20u, 10u, 0u)) & vec3u(0x3ffu)) / 1023.0;\n}\n\nfn unpack111110(v: u32) -> vec3f {\n return vec3f((vec3u(v) >> vec3u(21u, 10u, 0u)) & vec3u(0x7ffu, 0x7ffu, 0x3ffu)) / vec3f(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\nfn resolveCodebook(s: vec3f, codebook: ptr<uniform, array<vec4f, 64>>) -> vec3f {\n let idx = vec3u(s * 255.0);\n let v = vec3f(\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;