Shadow: Better bias.

This commit is contained in:
Vincent Lejeune 2014-02-09 19:42:22 +01:00
parent f0ef8e9913
commit 63db565fd7

View File

@ -19,8 +19,6 @@ out vec4 Diff;
out vec4 Spec;
out vec4 SpecularMap;
const float tolerance_z = 0.001;
vec3 DecodeNormal(vec2 n)
{
float z = dot(n, n) * 2. - 1.;
@ -76,8 +74,11 @@ void main() {
// shadowcoord.xy += vec2(dx, dy);*/
float shadowmapz = 2. * texture(shadowtex, shadowtexcoord).x - 1.;
float bias = 0.002 * tan(acos(NdotL)); // According to the slope
// bias += smoothstep(0.001, 0.1, moved) * 0.014; // According to the warping
bias = clamp(bias, 0.001, 0.014);
if (shadowmapz > shadowcoord.z - tolerance_z)
if (shadowmapz > shadowcoord.z + bias)
{
Diff = vec4(NdotL * col, 1.);
Spec = vec4(Specular * col, 1.);
@ -92,12 +93,6 @@ void main() {
// float moved = (abs(dx) + abs(dy)) * 0.5;
// float bias = 0.002 * tan(acos(NdotL)); // According to the slope
// bias += smoothstep(0.001, 0.1, moved) * 0.014; // According to the warping
// bias = clamp(bias, 0.001, 0.014);
// float avi = 0.002;
// float abi = 0.0025;