From af6f1bc0508f9d986a110c76bdd90b6496f46647 Mon Sep 17 00:00:00 2001 From: eihrul Date: Fri, 5 Feb 2010 22:32:56 +0000 Subject: [PATCH] don't shift the shadowmapping focus based on view angle when r_shadows_focus is used git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@9941 d7cf8633-e32d-0410-b094-e92efae38249 --- r_shadow.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/r_shadow.c b/r_shadow.c index c6168127..5e817fbe 100644 --- a/r_shadow.c +++ b/r_shadow.c @@ -4249,6 +4249,8 @@ void R_Shadow_PrepareModelShadows(void) VectorMA(shadoworigin, shadowfocus[1], r_refdef.view.up, shadoworigin); VectorMA(shadoworigin, -shadowfocus[2], r_refdef.view.forward, shadoworigin); VectorAdd(shadoworigin, r_refdef.view.origin, shadoworigin); + if (shadowfocus[0] || shadowfocus[1] || shadowfocus[2]) + dot1 = 1; VectorMA(shadoworigin, (1.0f - fabs(dot1)) * radius, shadowforward, shadoworigin); shadowmins[0] = shadoworigin[0] - r_shadows_throwdistance.value * fabs(shadowdir[0]) - radius * (fabs(shadowforward[0]) + fabs(shadowright[0])); @@ -4348,6 +4350,8 @@ void R_DrawModelShadowMaps(void) VectorMA(r_refdef.view.up, -dot2, shadowdir, shadowforward); VectorNormalize(shadowforward); VectorM(scale, shadowforward, &m[0]); + if (shadowfocus[0] || shadowfocus[1] || shadowfocus[2]) + dot1 = 1; m[3] = fabs(dot1) * 0.5f - DotProduct(shadoworigin, &m[0]); CrossProduct(shadowdir, shadowforward, shadowright); VectorM(scale, shadowright, &m[4]); -- 2.39.2