]> git.xonotic.org Git - xonotic/darkplaces.git/commitdiff
shorter non-VSDCT GetShadowMapTC
authoreihrul <eihrul@d7cf8633-e32d-0410-b094-e92efae38249>
Sun, 7 Feb 2010 22:54:30 +0000 (22:54 +0000)
committereihrul <eihrul@d7cf8633-e32d-0410-b094-e92efae38249>
Sun, 7 Feb 2010 22:54:30 +0000 (22:54 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@9945 d7cf8633-e32d-0410-b094-e92efae38249

gl_rmain.c

index aa551f3028624e8fed61add9aa5cb8329842def8..a5f3513f3a671cf574328fa2fa14614ba79eb738 100644 (file)
@@ -1074,10 +1074,10 @@ static const char *builtinshaderstring =
 "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"
@@ -2200,10 +2200,10 @@ const char *builtincgshaderstring =
 "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"