[iortcw] 171/497: All: Rend2: Add fourth cascade for sun shadows and adjust sun shadow cvar defaults

2017-09-08 Thread Simon McVittie
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

2016-09-21 Thread Simon McVittie
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