declare const _default: "\nuniform highp sampler2D uSceneDepthMap;\n\n#if defined(SCENE_DEPTHMAP_LINEAR) && defined(SCENE_DEPTHMAP_PACKED)\n #include \"floatAsUintPS\"\n#endif\n\n#ifndef SCREENSIZE\n #define SCREENSIZE\n uniform vec4 screen_size;\n#endif\n\n#ifndef VIEWMATRIX\n #define VIEWMATRIX\n uniform mat4 matrix_view;\n#endif\n\n#ifndef LINEARIZE_DEPTH\n #define LINEARIZE_DEPTH\n \n #ifndef CAMERAPLANES\n #define CAMERAPLANES\n uniform vec4 camera_params; // x: 1 / camera_far, y: camera_far, z: camera_near, w: is_ortho\n #endif\n\n float linearizeDepth(float z) {\n if (camera_params.w == 0.0)\n return (camera_params.z * camera_params.y) / (camera_params.y + z * (camera_params.z - camera_params.y));\n else\n return camera_params.z + z * (camera_params.y - camera_params.z);\n }\n#endif\n\nfloat delinearizeDepth(float linearDepth) {\n if (camera_params.w == 0.0) {\n return (camera_params.y * (camera_params.z - linearDepth)) / (linearDepth * (camera_params.z - camera_params.y));\n } else {\n return (linearDepth - camera_params.z) / (camera_params.y - camera_params.z);\n }\n}\n\n// Retrieves rendered linear camera depth by UV\nfloat getLinearScreenDepth(vec2 uv) {\n #ifdef SCENE_DEPTHMAP_LINEAR\n #ifdef SCENE_DEPTHMAP_PACKED\n\n // the depth is a float bit-packed into an RGBA8 texel, so it has to be read without\n // any filtering to keep the individual bytes intact\n ivec2 texel = ivec2(uv * vec2(textureSize(uSceneDepthMap, 0)));\n return uint2float(texelFetch(uSceneDepthMap, texel, 0));\n #elif defined(SCENE_DEPTHMAP_RECIPROCAL)\n\n // a coverage weighted average of the reciprocals of the depths, inverted back into a\n // depth. Zero is a pixel nothing was rendered to, which reads as the far clip.\n float recip = texture2D(uSceneDepthMap, uv).r;\n return recip > 0.0 ? 1.0 / recip : camera_params.y;\n #else\n return texture2D(uSceneDepthMap, uv).r;\n #endif\n #else\n return linearizeDepth(texture2D(uSceneDepthMap, uv).r);\n #endif\n}\n\n#ifndef VERTEXSHADER\n // Retrieves rendered linear camera depth under the current pixel\n float getLinearScreenDepth() {\n vec2 uv = gl_FragCoord.xy * screen_size.zw;\n return getLinearScreenDepth(uv);\n }\n#endif\n\n// Generates linear camera depth for the given world position\nfloat getLinearDepth(vec3 pos) {\n return -(matrix_view * vec4(pos, 1.0)).z;\n}\n"; export default _default;