declare const _default: "\n\n#ifndef DITHER_NONE\n    #include \"bayerPS\"\n    #include \"opacityDitherPS\"\n    varying id: f32;\n#endif\n\n#ifdef PICK_PASS\n    #include \"pickPS\"\n#endif\n\n#if defined(SHADOW_PASS) || defined(PICK_PASS) || defined(PREPASS_PASS)\n    uniform alphaClip: f32;\n#endif\n\n#ifdef PREPASS_PASS\n    varying vLinearDepth: f32;\n    #include \"floatAsUintPS\"\n#endif\n\n// Fast approximate e^x based on https://nic.schraudolph.org/pubs/Schraudolph99.pdf\nconst EXP_A: f32      = 12102203.0;   // \u2248 2^23 / ln(2)\nconst EXP_BC_RMS: i32 = 1064866808;   // (127 << 23) - 60801 * 8\nfn fastExp(x: f32) -> f32 {\n    var i: i32 = i32(EXP_A * x) + EXP_BC_RMS;\n    return bitcast<f32>(i);\n}\n\nvarying gaussianUV: vec2f;\nvarying gaussianColor: vec4f;\n\n@fragment\nfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n    var output: FragmentOutput;\n\n    let A: f32 = dot(gaussianUV, gaussianUV);\n    if (A > 1.0) {\n        discard;\n        return output;\n    }\n\n    // evaluate alpha\n    var alpha: f32 = fastExp(-A * 4.0) * gaussianColor.a;\n\n    #if defined(SHADOW_PASS) || defined(PICK_PASS) || defined(PREPASS_PASS)\n        if (alpha < uniform.alphaClip) {\n            discard;\n            return output;\n        }\n    #endif\n\n    #ifdef PICK_PASS\n\n        output.color = getPickOutput();\n\n    #elif SHADOW_PASS\n\n        output.color = vec4f(0.0, 0.0, 0.0, 1.0);\n\n    #elif PREPASS_PASS\n\n        output.color = float2vec4(vLinearDepth);\n\n    #else\n\n        if (alpha < (1.0 / 255.0)) {\n            discard;\n            return output;\n        }\n\n        #ifndef DITHER_NONE\n            opacityDither(&alpha, id * 0.013);\n        #endif\n\n        output.color = vec4f(input.gaussianColor.xyz * alpha, alpha);\n    #endif\n\n    return output;\n}";
export default _default;
