[iortcw] 171/497: All: Rend2: Add fourth cascade for sun shadows and adjust sun shadow cvar defaults
This is an automated email from the git hooks/post-receive script. smcv pushed a commit to annotated tag 1.42d in repository iortcw. commit d17523d351ec3d55a576cd3c64532d662b5e157c Author: m4n4t4...@gmail.com Date: Fri Aug 1 19:23:06 2014 + All: Rend2: Add fourth cascade for sun shadows and adjust sun shadow cvar defaults --- MP/code/rend2/glsl/shadowmask_fp.glsl | 91 ++ MP/code/rend2/tr_backend.c| 25 +++-- MP/code/rend2/tr_bsp.c| 3 + MP/code/rend2/tr_fbo.c| 2 +- MP/code/rend2/tr_glsl.c | 6 +- MP/code/rend2/tr_image.c | 7 +- MP/code/rend2/tr_init.c | 6 +- MP/code/rend2/tr_local.h | 11 ++- MP/code/rend2/tr_main.c | 175 +++--- MP/code/rend2/tr_scene.c | 27 +- SP/code/rend2/glsl/shadowmask_fp.glsl | 91 ++ SP/code/rend2/tr_backend.c| 25 +++-- SP/code/rend2/tr_bsp.c| 3 + SP/code/rend2/tr_fbo.c| 2 +- SP/code/rend2/tr_glsl.c | 6 +- SP/code/rend2/tr_image.c | 7 +- SP/code/rend2/tr_init.c | 6 +- SP/code/rend2/tr_local.h | 11 ++- SP/code/rend2/tr_main.c | 175 +++--- SP/code/rend2/tr_scene.c | 27 +- 20 files changed, 478 insertions(+), 228 deletions(-) diff --git a/MP/code/rend2/glsl/shadowmask_fp.glsl b/MP/code/rend2/glsl/shadowmask_fp.glsl index b489fef..8a5597a 100644 --- a/MP/code/rend2/glsl/shadowmask_fp.glsl +++ b/MP/code/rend2/glsl/shadowmask_fp.glsl @@ -1,15 +1,17 @@ uniform sampler2D u_ScreenDepthMap; -uniform sampler2D u_ShadowMap; +uniform sampler2DShadow u_ShadowMap; #if defined(USE_SHADOW_CASCADE) -uniform sampler2D u_ShadowMap2; -uniform sampler2D u_ShadowMap3; +uniform sampler2DShadow u_ShadowMap2; +uniform sampler2DShadow u_ShadowMap3; +uniform sampler2DShadow u_ShadowMap4; #endif uniform mat4 u_ShadowMvp; #if defined(USE_SHADOW_CASCADE) uniform mat4 u_ShadowMvp2; uniform mat4 u_ShadowMvp3; +uniform mat4 u_ShadowMvp4; #endif uniform vec3 u_ViewOrigin; @@ -39,94 +41,103 @@ float random( const vec2 p ) return mod( 123456789., 1e-7 + 256. * dot(p,r) ); } -float PCF(const sampler2D shadowmap, const vec2 st, const float dist) +float PCF(const sampler2DShadow shadowmap, const vec2 st, const float dist) { float mult; float scale = 2.0 / r_shadowMapSize; +#if 0 + // from http://http.developer.nvidia.com/GPUGems/gpugems_ch11.html + vec2 offset = vec2(greaterThan(fract(var_DepthTex.xy * r_FBufScale * 0.5), vec2(0.25))); + offset.y += offset.x; + if (offset.y > 1.1) offset.y = 0.0; + + mult = shadow2D(shadowmap, vec3(st + (offset + vec2(-1.5, 0.5)) * scale, dist)).r ++ shadow2D(shadowmap, vec3(st + (offset + vec2( 0.5, 0.5)) * scale, dist)).r ++ shadow2D(shadowmap, vec3(st + (offset + vec2(-1.5, -1.5)) * scale, dist)).r ++ shadow2D(shadowmap, vec3(st + (offset + vec2( 0.5, -1.5)) * scale, dist)).r; + + mult *= 0.25; +#endif + #if defined(USE_SHADOW_FILTER) float r = random(var_DepthTex.xy); float sinr = sin(r) * scale; float cosr = cos(r) * scale; mat2 rmat = mat2(cosr, sinr, -sinr, cosr); - mult = step(dist, texture2D(shadowmap, st + rmat * vec2(-0.7055767, 0.196515)).r); - mult += step(dist, texture2D(shadowmap, st + rmat * vec2(0.3524343, -0.7791386)).r); - mult += step(dist, texture2D(shadowmap, st + rmat * vec2(0.2391056, 0.9189604)).r); + mult = shadow2D(shadowmap, vec3(st + rmat * vec2(-0.7055767, 0.196515), dist)).r; + mult += shadow2D(shadowmap, vec3(st + rmat * vec2(0.3524343, -0.7791386), dist)).r; + mult += shadow2D(shadowmap, vec3(st + rmat * vec2(0.2391056, 0.9189604), dist)).r; #if defined(USE_SHADOW_FILTER2) - mult += step(dist, texture2D(shadowmap, st + rmat * vec2(-0.07580382, -0.09224417)).r); - mult += step(dist, texture2D(shadowmap, st + rmat * vec2(0.5784913, -0.002528916)).r); - mult += step(dist, texture2D(shadowmap, st + rmat * vec2(0.192888, 0.4064181)).r); - mult += step(dist, texture2D(shadowmap, st + rmat * vec2(-0.6335801, -0.5247476)).r); - mult += step(dist, texture2D(shadowmap, st + rmat * vec2(-0.5579782, 0.7491854)).r); - mult += step(dist, texture2D(shadowmap, st + rmat * vec2(0.7320465, 0.6317794)).r); + mult += shadow2D(shadowmap, vec3(st + rmat * vec2(-0.07580382, -0.09224417), dist)).r; + mult += shadow2D(shadowmap, vec3(st + rmat * vec2(0.5784913, -0.002528916), dist)).r; + mult += shadow2D(shadowmap, vec3(st + rmat * vec2(0.192888, 0.4064181), dist)).r; + mult += shadow2D(shadowmap, vec3(st + rmat * vec2(-0.6335801, -0.5247476), dist)).r; + mult += shadow2
[iortcw] 171/497: All: Rend2: Add fourth cascade for sun shadows and adjust sun shadow cvar defaults
This is an automated email from the git hooks/post-receive script. smcv pushed a commit to annotated tag 1.42d in repository iortcw. commit d17523d351ec3d55a576cd3c64532d662b5e157c Author: m4n4t4...@gmail.com Date: Fri Aug 1 19:23:06 2014 + All: Rend2: Add fourth cascade for sun shadows and adjust sun shadow cvar defaults --- MP/code/rend2/glsl/shadowmask_fp.glsl | 91 ++ MP/code/rend2/tr_backend.c| 25 +++-- MP/code/rend2/tr_bsp.c| 3 + MP/code/rend2/tr_fbo.c| 2 +- MP/code/rend2/tr_glsl.c | 6 +- MP/code/rend2/tr_image.c | 7 +- MP/code/rend2/tr_init.c | 6 +- MP/code/rend2/tr_local.h | 11 ++- MP/code/rend2/tr_main.c | 175 +++--- MP/code/rend2/tr_scene.c | 27 +- SP/code/rend2/glsl/shadowmask_fp.glsl | 91 ++ SP/code/rend2/tr_backend.c| 25 +++-- SP/code/rend2/tr_bsp.c| 3 + SP/code/rend2/tr_fbo.c| 2 +- SP/code/rend2/tr_glsl.c | 6 +- SP/code/rend2/tr_image.c | 7 +- SP/code/rend2/tr_init.c | 6 +- SP/code/rend2/tr_local.h | 11 ++- SP/code/rend2/tr_main.c | 175 +++--- SP/code/rend2/tr_scene.c | 27 +- 20 files changed, 478 insertions(+), 228 deletions(-) diff --git a/MP/code/rend2/glsl/shadowmask_fp.glsl b/MP/code/rend2/glsl/shadowmask_fp.glsl index b489fef..8a5597a 100644 --- a/MP/code/rend2/glsl/shadowmask_fp.glsl +++ b/MP/code/rend2/glsl/shadowmask_fp.glsl @@ -1,15 +1,17 @@ uniform sampler2D u_ScreenDepthMap; -uniform sampler2D u_ShadowMap; +uniform sampler2DShadow u_ShadowMap; #if defined(USE_SHADOW_CASCADE) -uniform sampler2D u_ShadowMap2; -uniform sampler2D u_ShadowMap3; +uniform sampler2DShadow u_ShadowMap2; +uniform sampler2DShadow u_ShadowMap3; +uniform sampler2DShadow u_ShadowMap4; #endif uniform mat4 u_ShadowMvp; #if defined(USE_SHADOW_CASCADE) uniform mat4 u_ShadowMvp2; uniform mat4 u_ShadowMvp3; +uniform mat4 u_ShadowMvp4; #endif uniform vec3 u_ViewOrigin; @@ -39,94 +41,103 @@ float random( const vec2 p ) return mod( 123456789., 1e-7 + 256. * dot(p,r) ); } -float PCF(const sampler2D shadowmap, const vec2 st, const float dist) +float PCF(const sampler2DShadow shadowmap, const vec2 st, const float dist) { float mult; float scale = 2.0 / r_shadowMapSize; +#if 0 + // from http://http.developer.nvidia.com/GPUGems/gpugems_ch11.html + vec2 offset = vec2(greaterThan(fract(var_DepthTex.xy * r_FBufScale * 0.5), vec2(0.25))); + offset.y += offset.x; + if (offset.y > 1.1) offset.y = 0.0; + + mult = shadow2D(shadowmap, vec3(st + (offset + vec2(-1.5, 0.5)) * scale, dist)).r ++ shadow2D(shadowmap, vec3(st + (offset + vec2( 0.5, 0.5)) * scale, dist)).r ++ shadow2D(shadowmap, vec3(st + (offset + vec2(-1.5, -1.5)) * scale, dist)).r ++ shadow2D(shadowmap, vec3(st + (offset + vec2( 0.5, -1.5)) * scale, dist)).r; + + mult *= 0.25; +#endif + #if defined(USE_SHADOW_FILTER) float r = random(var_DepthTex.xy); float sinr = sin(r) * scale; float cosr = cos(r) * scale; mat2 rmat = mat2(cosr, sinr, -sinr, cosr); - mult = step(dist, texture2D(shadowmap, st + rmat * vec2(-0.7055767, 0.196515)).r); - mult += step(dist, texture2D(shadowmap, st + rmat * vec2(0.3524343, -0.7791386)).r); - mult += step(dist, texture2D(shadowmap, st + rmat * vec2(0.2391056, 0.9189604)).r); + mult = shadow2D(shadowmap, vec3(st + rmat * vec2(-0.7055767, 0.196515), dist)).r; + mult += shadow2D(shadowmap, vec3(st + rmat * vec2(0.3524343, -0.7791386), dist)).r; + mult += shadow2D(shadowmap, vec3(st + rmat * vec2(0.2391056, 0.9189604), dist)).r; #if defined(USE_SHADOW_FILTER2) - mult += step(dist, texture2D(shadowmap, st + rmat * vec2(-0.07580382, -0.09224417)).r); - mult += step(dist, texture2D(shadowmap, st + rmat * vec2(0.5784913, -0.002528916)).r); - mult += step(dist, texture2D(shadowmap, st + rmat * vec2(0.192888, 0.4064181)).r); - mult += step(dist, texture2D(shadowmap, st + rmat * vec2(-0.6335801, -0.5247476)).r); - mult += step(dist, texture2D(shadowmap, st + rmat * vec2(-0.5579782, 0.7491854)).r); - mult += step(dist, texture2D(shadowmap, st + rmat * vec2(0.7320465, 0.6317794)).r); + mult += shadow2D(shadowmap, vec3(st + rmat * vec2(-0.07580382, -0.09224417), dist)).r; + mult += shadow2D(shadowmap, vec3(st + rmat * vec2(0.5784913, -0.002528916), dist)).r; + mult += shadow2D(shadowmap, vec3(st + rmat * vec2(0.192888, 0.4064181), dist)).r; + mult += shadow2D(shadowmap, vec3(st + rmat * vec2(-0.6335801, -0.5247476), dist)).r; + mult += shadow2