export declare const apply_fog = "\nfloat viewZ = depthToViewZ(uIsOrtho, fragmentDepth, uNear, uFar);\nfloat fogFactor = smoothstep(uFogNear, uFogFar, abs(viewZ));\nfloat fogAlpha = (1.0 - fogFactor) * gl_FragColor.a;\nfloat preFogAlpha = gl_FragColor.a;\nif (!uTransparentBackground) {\n    if (gl_FragColor.a < 1.0) {\n        // transparent objects are blended with background color\n        gl_FragColor.a = fogAlpha;\n    } else {\n        // mix opaque objects with background color\n        gl_FragColor.rgb = mix(gl_FragColor.rgb, uFogColor, fogFactor);\n    }\n} else {\n    // pre-multiplied alpha expected for transparent background\n    gl_FragColor.rgb *= fogAlpha;\n    gl_FragColor.a = fogAlpha;\n}\n";
