declare const _default: "\n// Converts unnormalized direction vector to a cubemap face index [0..5] and uv coordinates within the face in [0..1] range.\n// Additionally offset to a tile in atlas within 3x3 subdivision is provided\nvec2 getCubemapFaceCoordinates(const vec3 dir, out float faceIndex, out vec2 tileOffset)\n{\n vec3 vAbs = abs(dir);\n float ma;\n vec2 uv;\n if (vAbs.z >= vAbs.x && vAbs.z >= vAbs.y) { // front / back\n\n faceIndex = dir.z < 0.0 ? 5.0 : 4.0;\n ma = 0.5 / vAbs.z;\n uv = vec2(dir.z < 0.0 ? -dir.x : dir.x, -dir.y);\n\n tileOffset.x = 2.0;\n tileOffset.y = dir.z < 0.0 ? 1.0 : 0.0;\n\n } else if(vAbs.y >= vAbs.x) { // top index 2, bottom index 3\n\n faceIndex = dir.y < 0.0 ? 3.0 : 2.0;\n ma = 0.5 / vAbs.y;\n uv = vec2(dir.x, dir.y < 0.0 ? -dir.z : dir.z);\n\n tileOffset.x = 1.0;\n tileOffset.y = dir.y < 0.0 ? 1.0 : 0.0;\n\n } else { // left / right\n\n faceIndex = dir.x < 0.0 ? 1.0 : 0.0;\n ma = 0.5 / vAbs.x;\n uv = vec2(dir.x < 0.0 ? dir.z : -dir.z, -dir.y);\n\n tileOffset.x = 0.0;\n tileOffset.y = dir.x < 0.0 ? 1.0 : 0.0;\n\n }\n return uv * ma + 0.5;\n}\n\n// converts unnormalized direction vector to a texture coordinate for a cubemap face stored within texture atlas described by the viewport\nvec2 getCubemapAtlasCoordinates(const vec3 omniAtlasViewport, float shadowEdgePixels, float shadowTextureResolution, const vec3 dir) {\n\n float faceIndex;\n vec2 tileOffset;\n vec2 uv = getCubemapFaceCoordinates(dir, faceIndex, tileOffset);\n\n // move uv coordinates inwards inside to compensate for larger fov when rendering shadow into atlas\n float atlasFaceSize = omniAtlasViewport.z;\n float tileSize = shadowTextureResolution * atlasFaceSize;\n float offset = shadowEdgePixels / tileSize;\n uv = uv * vec2(1.0 - offset * 2.0) + vec2(offset * 1.0);\n\n // scale uv coordinates to cube face area within the viewport\n uv *= atlasFaceSize;\n\n // offset into face of the atlas (3x3 grid)\n uv += tileOffset * atlasFaceSize;\n\n // offset into the atlas viewport\n uv += omniAtlasViewport.xy;\n\n return uv;\n}\n"; export default _default;