export declare const speckleDepthNormalFrag = "\n#if __VERSION__ == 100\n #extension GL_EXT_draw_buffers : require\n#endif\n\n#if DEPTH_PACKING == 3200\n\tuniform float opacity;\n#endif\n#ifdef LINEAR_DEPTH\n varying vec4 vViewPosition;\n\tuniform float near;\n\tuniform float far;\n#endif\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n#include \nvarying vec2 vHighPrecisionZW;\nvarying vec3 vNormal;\n\n#if __VERSION__ == 300\n layout(location = 1) out vec4 gNormal;\n#endif\n\nvoid main() {\n\t#include \n\tvec4 diffuseColor = vec4( 1.0 );\n\t#if DEPTH_PACKING == 3200\n\t\tdiffuseColor.a = opacity;\n\t#endif\n\t#include \n\t#include \n\t// #include \n\t#ifdef USE_ALPHATEST\n\t\tif ( diffuseColor.a < alphaTest ) discard;\n\t\t/** This is a workaround for rejecting shadows for certain materials, since three.js gave me no choice*/\n\t\t#ifdef ALPHATEST_REJECTION\n\t\t\tif (alphaTest > 0. ) discard;\n\t\t#endif\n\t#endif\n\t#include \n vec3 normal = normalize( vNormal );\n\n /** Output view space normals*/\n \n vec4 outNormal = vec4( packNormalToRGB( normal ), 1.0 );\n vec4 outDepth;\n\t// Higher precision equivalent of gl_FragCoord.z. This assumes depthRange has been left to its default values.\n\t#ifdef LINEAR_DEPTH\n\t\t/** View z is negative moving away from the camera */\n\t\toutDepth = packDepthToRGBA((vViewPosition.z + near) / (near - far));\n\t#else\n\t\tfloat fragCoordZ = (0.5 * vHighPrecisionZW[0] / vHighPrecisionZW[1] + 0.5);\n\t\t#if DEPTH_PACKING == 3200\n\t\t\toutDepth = vec4( vec3( 1.0 - fragCoordZ ), opacity );\n\t\t#elif DEPTH_PACKING == 3201\n\t\t\toutDepth = packDepthToRGBA( fragCoordZ );\n\t\t#endif\n\t#endif\n #if __VERSION__ == 300\n pc_fragColor = outDepth;\n gNormal = outNormal;\n #else\n gl_FragData[0] = outDepth;\n gl_FragData[1] = outNormal;\n #endif\n}\n";