Fixed numerous bugs.
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user