declare const _default: "\n\n#if SH_BANDS > 0\n\n// unpack signed 11 10 11 bits\nvec3 unpack111011s(uint bits) {\n    return vec3((uvec3(bits) >> uvec3(21u, 11u, 0u)) & uvec3(0x7ffu, 0x3ffu, 0x7ffu)) / vec3(2047.0, 1023.0, 2047.0) * 2.0 - 1.0;\n}\n\n// fetch quantized spherical harmonic coefficients\nvoid fetchScale(in uvec4 t, out float scale, out vec3 a, out vec3 b, out vec3 c) {\n    scale = uintBitsToFloat(t.x);\n    a = unpack111011s(t.y);\n    b = unpack111011s(t.z);\n    c = unpack111011s(t.w);\n}\n\n// fetch quantized spherical harmonic coefficients\nvoid fetch(in uvec4 t, out vec3 a, out vec3 b, out vec3 c, out vec3 d) {\n    a = unpack111011s(t.x);\n    b = unpack111011s(t.y);\n    c = unpack111011s(t.z);\n    d = unpack111011s(t.w);\n}\n\nvoid fetch(in uint t, out vec3 a) {\n    a = unpack111011s(t);\n}\n\n#if SH_BANDS == 1\n    uniform highp usampler2D splatSH_1to3;\n    void readSHData(in SplatSource source, out vec3 sh[3], out float scale) {\n        fetchScale(texelFetch(splatSH_1to3, source.uv, 0), scale, sh[0], sh[1], sh[2]);\n    }\n#elif SH_BANDS == 2\n    uniform highp usampler2D splatSH_1to3;\n    uniform highp usampler2D splatSH_4to7;\n    uniform highp usampler2D splatSH_8;\n    void readSHData(in SplatSource source, out vec3 sh[8], out float scale) {\n        fetchScale(texelFetch(splatSH_1to3, source.uv, 0), scale, sh[0], sh[1], sh[2]);\n        fetch(texelFetch(splatSH_4to7, source.uv, 0), sh[3], sh[4], sh[5], sh[6]);\n        fetch(texelFetch(splatSH_8, source.uv, 0).x, sh[7]);\n    }\n#else\n    uniform highp usampler2D splatSH_1to3;\n    uniform highp usampler2D splatSH_4to7;\n    uniform highp usampler2D splatSH_8to11;\n    uniform highp usampler2D splatSH_12to15;\n    void readSHData(in SplatSource source, out vec3 sh[15], out float scale) {\n        fetchScale(texelFetch(splatSH_1to3, source.uv, 0), scale, sh[0], sh[1], sh[2]);\n        fetch(texelFetch(splatSH_4to7, source.uv, 0), sh[3], sh[4], sh[5], sh[6]);\n        fetch(texelFetch(splatSH_8to11, source.uv, 0), sh[7], sh[8], sh[9], sh[10]);\n        fetch(texelFetch(splatSH_12to15, source.uv, 0), sh[11], sh[12], sh[13], sh[14]);\n    }\n#endif\n\n#endif\n";
export default _default;
