From 9f9183ff73b1a85afff14a7c7f8ec053f30e01f9 Mon Sep 17 00:00:00 2001 From: scrawl Date: Mon, 23 Jul 2012 18:25:20 +0200 Subject: [PATCH] depth bias --- files/materials/shadows.h | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/files/materials/shadows.h b/files/materials/shadows.h index 9127d28f7..769a4fea7 100644 --- a/files/materials/shadows.h +++ b/files/materials/shadows.h @@ -1,13 +1,15 @@ +#define FIXED_BIAS 0.005 + float depthShadowPCF (shTexture2D shadowMap, float4 shadowMapPos, float2 offset) { shadowMapPos /= shadowMapPos.w; float3 o = float3(offset.xy, -offset.x) * 0.3; //float3 o = float3(0,0,0); - float c = (shadowMapPos.z <= shSample(shadowMap, shadowMapPos.xy - o.xy).r) ? 1 : 0; // top left - c += (shadowMapPos.z <= shSample(shadowMap, shadowMapPos.xy + o.xy).r) ? 1 : 0; // bottom right - c += (shadowMapPos.z <= shSample(shadowMap, shadowMapPos.xy + o.zy).r) ? 1 : 0; // bottom left - c += (shadowMapPos.z <= shSample(shadowMap, shadowMapPos.xy - o.zy).r) ? 1 : 0; // top right + float c = (shadowMapPos.z <= FIXED_BIAS + shSample(shadowMap, shadowMapPos.xy - o.xy).r) ? 1 : 0; // top left + c += (shadowMapPos.z <= FIXED_BIAS + shSample(shadowMap, shadowMapPos.xy + o.xy).r) ? 1 : 0; // bottom right + c += (shadowMapPos.z <= FIXED_BIAS + shSample(shadowMap, shadowMapPos.xy + o.zy).r) ? 1 : 0; // bottom left + c += (shadowMapPos.z <= FIXED_BIAS + shSample(shadowMap, shadowMapPos.xy - o.zy).r) ? 1 : 0; // top right return c / 4; }