"vec3 GetShadowMapTC2D(vec3 dir)\n"
"{\n"
" vec3 adir = abs(dir);\n"
-" float ma = max(max(adir.x, adir.y), adir.z);\n"
-" vec4 proj = vec4(dir.zyx, 0.5), projy = vec4(dir.xzy, 1.5), projz = vec4(dir, 2.5);\n"
-" proj = adir.y >= ma ? projy : proj;\n"
-" proj = adir.z >= ma ? projz : proj;\n"
+" float ma = adir.z;\n"
+" vec4 proj = vec4(dir, 2.5);\n"
+" if (adir.x > ma) { ma = adir.x; proj = vec4(dir.zyx, 0.5); }\n"
+" if (adir.y > ma) { ma = adir.y; proj = vec4(dir.xzy, 1.5); }\n"
" vec3 stc = vec3(proj.xy * ShadowMap_Parameters.x, ShadowMap_Parameters.w) / ma;\n"
" stc += vec3(vec2(proj.z < 0.0 ? 1.5 : 0.5, proj.w) * ShadowMap_Parameters.y, ShadowMap_Parameters.z);\n"
" return stc;\n"
"float3 GetShadowMapTC2D(float3 dir, float4 ShadowMap_Parameters)\n"
"{\n"
" float3 adir = abs(dir);\n"
-" float ma = max(max(adir.x, adir.y), adir.z);\n"
-" float4 proj = float4(dir.zyx, 0.5), projy = float4(dir.xzy, 1.5), projz = float4(dir, 2.5);\n"
-" proj = adir.y >= ma ? projy : proj;\n"
-" proj = adir.z >= ma ? projz : proj;\n"
+" float ma = adir.z;\n"
+" float4 proj = float4(dir, 2.5);\n"
+" if (adir.x > ma) { ma = adir.x; proj = float4(dir.zyx, 0.5); }\n"
+" if (adir.y > ma) { ma = adir.y; proj = float4(dir.xzy, 1.5); }\n"
" float3 stc = float3(proj.xy * ShadowMap_Parameters.x, ShadowMap_Parameters.w) / ma;\n"
" stc += float3(vec2(proj.z < 0.0 ? 1.5 : 0.5, proj.w) * ShadowMap_Parameters.y, ShadowMap_Parameters.z);\n"
" return stc;\n"