declare const _default: "\n    #if SH_BANDS == 1\n        #define SH_COEFFS 3\n    #elif SH_BANDS == 2\n        #define SH_COEFFS 8\n    #elif SH_BANDS == 3\n        #define SH_COEFFS 15\n    #else\n        #define SH_COEFFS 0\n    #endif\n\n    #if SH_BANDS > 0\n\n    const float SH_C1 = 0.4886025119029199f;\n\n    #if SH_BANDS > 1\n        const float SH_C2_0 = 1.0925484305920792f;\n        const float SH_C2_1 = -1.0925484305920792f;\n        const float SH_C2_2 = 0.31539156525252005f;\n        const float SH_C2_3 = -1.0925484305920792f;\n        const float SH_C2_4 = 0.5462742152960396f;\n    #endif\n\n    #if SH_BANDS > 2\n        const float SH_C3_0 = -0.5900435899266435f;\n        const float SH_C3_1 = 2.890611442640554f;\n        const float SH_C3_2 = -0.4570457994644658f;\n        const float SH_C3_3 = 0.3731763325901154f;\n        const float SH_C3_4 = -0.4570457994644658f;\n        const float SH_C3_5 = 1.445305721320277f;\n        const float SH_C3_6 = -0.5900435899266435f;\n    #endif\n\n    // see https://github.com/graphdeco-inria/gaussian-splatting/blob/main/utils/sh_utils.py\n    vec3 evalSH(in vec3 sh[SH_COEFFS], in vec3 dir) {\n        float x = dir.x;\n        float y = dir.y;\n        float z = dir.z;\n\n        // 1st degree\n        vec3 result = SH_C1 * (-sh[0] * y + sh[1] * z - sh[2] * x);\n\n        #if SH_BANDS > 1\n            // 2nd degree\n            float xx = x * x;\n            float yy = y * y;\n            float zz = z * z;\n            float xy = x * y;\n            float yz = y * z;\n            float xz = x * z;\n\n            result +=\n                sh[3] * (SH_C2_0 * xy) +\n                sh[4] * (SH_C2_1 * yz) +\n                sh[5] * (SH_C2_2 * (2.0 * zz - xx - yy)) +\n                sh[6] * (SH_C2_3 * xz) +\n                sh[7] * (SH_C2_4 * (xx - yy));\n        #endif\n\n        #if SH_BANDS > 2\n            // 3rd degree\n            result +=\n                sh[8]  * (SH_C3_0 * y * (3.0 * xx - yy)) +\n                sh[9]  * (SH_C3_1 * xy * z) +\n                sh[10] * (SH_C3_2 * y * (4.0 * zz - xx - yy)) +\n                sh[11] * (SH_C3_3 * z * (2.0 * zz - 3.0 * xx - 3.0 * yy)) +\n                sh[12] * (SH_C3_4 * x * (4.0 * zz - xx - yy)) +\n                sh[13] * (SH_C3_5 * z * (xx - yy)) +\n                sh[14] * (SH_C3_6 * x * (xx - 3.0 * yy));\n        #endif\n\n        return result;\n    }\n    #endif\n";
export default _default;
