X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=gl_rmain.c;h=54159c25531e183819966e955defdb57b299597b;hb=146e92be41a5c709e3aa273115c28c96afe1965d;hp=72f8c7d51c4f737a5f65c4c516a3cf2149672026;hpb=96a91bc930e06aa41e3d9d9df6fb1617e6b5830a;p=xonotic%2Fdarkplaces.git diff --git a/gl_rmain.c b/gl_rmain.c index 72f8c7d5..54159c25 100644 --- a/gl_rmain.c +++ b/gl_rmain.c @@ -912,11 +912,6 @@ static const char *builtinshaderstring = "{\n" " vec3 adir = abs(dir);\n" "# ifndef USESHADOWMAPVSDCT\n" -"# ifdef USESHADOWMAPRECT\n" -"# define cubedir(dx, dy, ox, oy) { tc = vec2(dx, dy); offset = vec2(ox, oy); }\n" -"# else\n" -"# define cubedir(dx, dy, ox, oy) { tc = vec2(dx, dy); offset = vec2(ox/2.0, oy/4.0); }\n" -"# endif\n" " vec2 tc;\n" " vec2 offset;\n" " float ma;\n" @@ -925,14 +920,14 @@ static const char *builtinshaderstring = " if (adir.x > adir.z)\n" " {\n" " ma = adir.x;\n" -" if (dir.x >= 0.0) cubedir(-dir.z, -dir.y, 0.5, 0.5) // +X\n" -" else cubedir( dir.z, -dir.y, 1.5, 0.5) // -X\n" +" if (dir.x >= 0.0) { tc = vec2(-dir.z, -dir.y); offset = vec2(0.5, 0.5); } // +X\n" +" else { tc = vec2( dir.z, -dir.y); offset = vec2(1.5, 0.5); } // -X\n" " }\n" " else\n" " {\n" " ma = adir.z;\n" -" if (dir.z >= 0.0) cubedir( dir.x, -dir.y, 0.5, 2.5) // +Z\n" -" else cubedir(-dir.x, -dir.y, 1.5, 2.5) // -Z\n" +" if (dir.z >= 0.0) { tc = vec2( dir.x, -dir.y); offset = vec2(0.5, 2.5); } // +Z\n" +" else { tc = vec2(-dir.x, -dir.y); offset = vec2(1.5, 2.5); } // -Z\n" " }\n" " }\n" " else\n" @@ -940,28 +935,22 @@ static const char *builtinshaderstring = " if (adir.y > adir.z)\n" " {\n" " ma = adir.y;\n" -" if (dir.y >= 0.0) cubedir( dir.x, dir.z, 0.5, 1.5) // +Y\n" -" else cubedir( dir.x, -dir.z, 1.5, 1.5) // -Y\n" +" if (dir.y >= 0.0) { tc = vec2( dir.x, dir.z); offset = vec2(0.5, 1.5); } // +Y\n" +" else { tc = vec2( dir.x, -dir.z); offset = vec2(1.5, 1.5); } // -Y\n" " }\n" " else\n" " {\n" " ma = adir.z;\n" -" if (dir.z >= 0.0) cubedir( dir.x, -dir.y, 0.5, 2.5) // +Z\n" -" else cubedir(-dir.x, -dir.y, 1.5, 2.5) // -Z\n" +" if (dir.z >= 0.0) { tc = vec2( dir.x, -dir.y); offset = vec2(0.5, 2.5); } // +Z\n" +" else { tc = vec2(-dir.x, -dir.y); offset = vec2(1.5, 2.5); } // -Z\n" " }\n" " }\n" "\n" -"# ifdef USESHADOWMAPRECT\n" -" return vec3(tc * ShadowMap_Parameters.x, ShadowMap_Parameters.w) / ma + vec3(offset * ShadowMap_Parameters.y, ShadowMap_Parameters.z);\n" -"# else\n" -" return vec3(tc * ShadowMap_Parameters.xy, ShadowMap_Parameters.w) / ma + vec3(offset, ShadowMap_Parameters.z);\n" -"# endif\n" +" vec3 stc = vec3(tc * ShadowMap_Parameters.x, ShadowMap_Parameters.w) / ma + vec3(offset * ShadowMap_Parameters.y, ShadowMap_Parameters.z);\n" +" stc.xy *= ShadowMap_TextureScale.xy;\n" +" return stc;\n" "# else\n" -"# ifdef USESHADOWMAPRECT \n" -" return vec3(textureCube(Texture_CubeProjection, dir.xyz).ra * ShadowMap_TextureScale.xy, ShadowMap_Parameters.z + ShadowMap_Parameters.w / max(max(adir.x, adir.y), adir.z));\n" -"# else\n" -" return vec3(textureCube(Texture_CubeProjection, dir.xyz).ra, ShadowMap_Parameters.z + ShadowMap_Parameters.w / max(max(adir.x, adir.y), adir.z));\n" -"# endif\n" +" return vec3(textureCube(Texture_CubeProjection, dir.xyz).ra * ShadowMap_Parameters.xy, ShadowMap_Parameters.z + ShadowMap_Parameters.w / max(max(adir.x, adir.y), adir.z));\n" "# endif\n" "}\n" "#endif // defined(USESHADOWMAPRECT) || defined(USESHADOWMAP2D)\n"