Fixed numerous bugs.

This commit is contained in:
Shyotl
2017-03-09 23:49:56 -06:00
parent 6523cf43be
commit 75c47e96b6
14 changed files with 179 additions and 84 deletions

View File

@@ -40,6 +40,7 @@ uniform float max_cof;
uniform float res_scale;
uniform float dof_width;
uniform float dof_height;
uniform float kern_scale;
VARYING vec2 vary_fragcoord;
@@ -53,9 +54,9 @@ vec4 dofSample(sampler2D tex, vec2 tc)
void main()
{
vec2 tc = vary_fragcoord.xy;
vec2 tc = vary_fragcoord.xy * res_scale;
vec4 dof = dofSample(diffuseRect, vary_fragcoord.xy*res_scale);
vec4 dof = dofSample(diffuseRect, tc);
vec4 diff = texture2D(lightMap, vary_fragcoord.xy);
@@ -66,10 +67,10 @@ void main()
float sc = a/res_scale;
vec4 col;
col = texture2D(lightMap, vary_fragcoord.xy+vec2(sc,sc));
col += texture2D(lightMap, vary_fragcoord.xy+vec2(-sc,sc));
col += texture2D(lightMap, vary_fragcoord.xy+vec2(sc,-sc));
col += texture2D(lightMap, vary_fragcoord.xy+vec2(-sc,-sc));
col = texture2D(lightMap, vary_fragcoord.xy+vec2(sc,sc)*kern_scale);
col += texture2D(lightMap, vary_fragcoord.xy+vec2(-sc,sc)*kern_scale);
col += texture2D(lightMap, vary_fragcoord.xy+vec2(sc,-sc)*kern_scale);
col += texture2D(lightMap, vary_fragcoord.xy+vec2(-sc,-sc)*kern_scale);
diff = mix(diff, col*0.25, a);
}

View File

@@ -36,6 +36,7 @@ uniform sampler2D diffuseRect;
uniform mat4 inv_proj;
uniform float max_cof;
uniform float res_scale;
uniform vec2 kern_scale;
VARYING vec2 vary_fragcoord;
@@ -76,7 +77,7 @@ void main()
{
vec2 tc = vary_fragcoord.xy;
vec4 diff = texture2D(diffuseRect, vary_fragcoord.xy);
vec4 diff = texture2D(diffuseRect, tc);
{
float w = 1.0;
@@ -97,7 +98,7 @@ void main()
float samp_x = sc*sin(ang);
float samp_y = sc*cos(ang);
// you could test sample coords against an interesting non-circular aperture shape here, if desired.
dofSampleNear(diff, w, sc, vary_fragcoord.xy + vec2(samp_x,samp_y));
dofSampleNear(diff, w, sc, tc + vec2(samp_x,samp_y) * kern_scale);
}
sc -= 1.0;
}
@@ -114,7 +115,7 @@ void main()
float samp_x = sc*sin(ang);
float samp_y = sc*cos(ang);
// you could test sample coords against an interesting non-circular aperture shape here, if desired.
dofSample(diff, w, sc, vary_fragcoord.xy + vec2(samp_x,samp_y));
dofSample(diff, w, sc, tc + vec2(samp_x,samp_y) * kern_scale);
}
sc -= 1.0;
}

View File

@@ -33,15 +33,16 @@ out vec4 frag_color;
VARYING vec2 vary_fragcoord;
uniform sampler2D depthMapDownsampled;
uniform sampler2D depthMap;
uniform sampler2D diffuseRect;
uniform vec2 kern_scale;
void main()
{
frag_color[0] = 1.0;
frag_color[1] = texture2D(diffuseRect,vary_fragcoord.xy).r;
frag_color[1] = texture2D(diffuseRect,vary_fragcoord.xy * kern_scale).r;
frag_color[2] = 1.0;
frag_color[3] = 1.0;
}

View File

@@ -50,6 +50,8 @@ uniform vec4 shadow_clip;
VARYING vec2 vary_fragcoord;
uniform vec2 kern_scale;
uniform mat4 inv_proj;
uniform vec2 proj_shadow_res;
uniform vec3 sun_dir;
@@ -62,6 +64,7 @@ uniform float shadow_offset;
uniform float spot_shadow_bias;
uniform float spot_shadow_offset;
vec2 encode_normal(vec3 n)
{
float f = sqrt(8 * n.z + 8);
@@ -241,7 +244,7 @@ void main()
}
frag_color[0] = shadow;
frag_color[1] = texture2D(diffuseRect,vary_fragcoord).r;
frag_color[1] = texture2D(diffuseRect,vary_fragcoord.xy * kern_scale).r;
spos = vec4(shadow_pos+norm*spot_shadow_offset, 1.0);