declare const _default: "\n\nvec3 getShadowSampleCoord$LIGHT(mat4 shadowTransform, vec4 shadowParams, vec3 worldPosition, vec3 lightPos, inout vec3 lightDir, vec3 lightDirNorm, vec3 normal) {\n\n    vec3 surfacePosition = worldPosition;\n\n#ifdef SHADOW_SAMPLE_POINT\n    #ifdef SHADOW_SAMPLE_NORMAL_OFFSET\n        float distScale = length(lightDir);\n        surfacePosition = surfacePosition + normal * shadowParams.y * clamp(1.0 - dot(normal, -lightDirNorm), 0.0, 1.0) * distScale;\n        lightDir = surfacePosition - lightPos;\n        return lightDir;\n    #endif\n#else\n    #ifdef SHADOW_SAMPLE_SOURCE_ZBUFFER\n        #ifdef SHADOW_SAMPLE_NORMAL_OFFSET\n            surfacePosition = surfacePosition + normal * shadowParams.y;\n        #endif\n    #else\n        #ifdef SHADOW_SAMPLE_NORMAL_OFFSET\n            #ifdef SHADOW_SAMPLE_ORTHO\n                float distScale = 1.0;\n            #else\n                float distScale = abs(dot(vPositionW - lightPos, lightDirNorm));\n            #endif\n            surfacePosition = surfacePosition + normal * shadowParams.y * clamp(1.0 - dot(normal, -lightDirNorm), 0.0, 1.0) * distScale;\n        #endif\n    #endif\n\n    vec4 positionInShadowSpace = shadowTransform * vec4(surfacePosition, 1.0);\n    #ifdef SHADOW_SAMPLE_ORTHO\n        positionInShadowSpace.z = saturate(positionInShadowSpace.z) - 0.0001;\n    #else\n        #ifdef SHADOW_SAMPLE_SOURCE_ZBUFFER\n            positionInShadowSpace.xyz /= positionInShadowSpace.w;\n        #else\n            positionInShadowSpace.xy /= positionInShadowSpace.w;\n            positionInShadowSpace.z = length(lightDir) * shadowParams.w;\n        #endif\n    #endif\n\n    #ifdef SHADOW_SAMPLE_Z_BIAS\n        positionInShadowSpace.z += getShadowBias(shadowParams.x, shadowParams.z);\n    #endif\n    surfacePosition = positionInShadowSpace.xyz;\n#endif\n\n    return surfacePosition;\n}\n";
export default _default;
