#if defined(VARIANT_HAS_SHADOWING) highp vec4 computeLightSpacePosition(highp vec3 p, const highp vec3 n, const highp vec3 dir, const highp vec2 b, highp_mat4 lightFromWorldMatrix) { #if !defined(VARIANT_HAS_VSM) highp vec3 L_right = vec3(lightFromWorldMatrix[0][0], lightFromWorldMatrix[1][0], lightFromWorldMatrix[2][0]); highp vec3 L_up = vec3(lightFromWorldMatrix[0][1], lightFromWorldMatrix[1][1], lightFromWorldMatrix[2][1]); highp float n_Lx = dot(n, L_right); highp float n_Ly = dot(n, L_up); p += n * (abs(n_Lx * b.x) + abs(n_Ly * b.y)); #endif return mulMat4x4Float3(lightFromWorldMatrix, p); } #endif