declare const _default: "\n#if SH_BANDS > 0\n\nvar shTexture0: texture_2d<u32>;\nvar shTexture1: texture_2d<u32>;\nvar shTexture2: texture_2d<u32>;\n\nfn unpack8888s(bits: u32) -> vec4f {\n    let unpacked_u = (vec4<u32>(bits) >> vec4<u32>(0u, 8u, 16u, 24u)) & vec4<u32>(0xffu);\n    return vec4f(unpacked_u) * (8.0 / 255.0) - 4.0;\n}\n\nfn readSHData(source: ptr<function, SplatSource>, sh: ptr<function, array<vec3f, 15>>, scale: ptr<function, f32>) {\n    // read the sh coefficients\n    let shData0: vec4<u32> = textureLoad(shTexture0, source.uv, 0);\n    let shData1: vec4<u32> = textureLoad(shTexture1, source.uv, 0);\n    let shData2: vec4<u32> = textureLoad(shTexture2, source.uv, 0);\n\n    let r0 = unpack8888s(shData0.x);\n    let r1 = unpack8888s(shData0.y);\n    let r2 = unpack8888s(shData0.z);\n    let r3 = unpack8888s(shData0.w);\n\n    let g0 = unpack8888s(shData1.x);\n    let g1 = unpack8888s(shData1.y);\n    let g2 = unpack8888s(shData1.z);\n    let g3 = unpack8888s(shData1.w);\n\n    let b0 = unpack8888s(shData2.x);\n    let b1 = unpack8888s(shData2.y);\n    let b2 = unpack8888s(shData2.z);\n    let b3 = unpack8888s(shData2.w);\n\n    sh[0] =  vec3f(r0.x, g0.x, b0.x);\n    sh[1] =  vec3f(r0.y, g0.y, b0.y);\n    sh[2] =  vec3f(r0.z, g0.z, b0.z);\n    sh[3] =  vec3f(r0.w, g0.w, b0.w);\n    sh[4] =  vec3f(r1.x, g1.x, b1.x);\n    sh[5] =  vec3f(r1.y, g1.y, b1.y);\n    sh[6] =  vec3f(r1.z, g1.z, b1.z);\n    sh[7] =  vec3f(r1.w, g1.w, b1.w);\n    sh[8] =  vec3f(r2.x, g2.x, b2.x);\n    sh[9] =  vec3f(r2.y, g2.y, b2.y);\n    sh[10] = vec3f(r2.z, g2.z, b2.z);\n    sh[11] = vec3f(r2.w, g2.w, b2.w);\n    sh[12] = vec3f(r3.x, g3.x, b3.x);\n    sh[13] = vec3f(r3.y, g3.y, b3.y);\n    sh[14] = vec3f(r3.z, g3.z, b3.z);\n\n    *scale = 1.0;\n}\n\n#endif\n";
export default _default;
