=Rendering Bugfix=
authorJoseph Eagar <joeedh@gmail.com>
Mon, 23 Jul 2007 02:28:47 +0000 (02:28 +0000)
committerJoseph Eagar <joeedh@gmail.com>
Mon, 23 Jul 2007 02:28:47 +0000 (02:28 +0000)
For some odd reason, shadow calculation was skipped if diffuse was 0.0.  This
however would cause errors where specularity would ignore shadows.  After all,
just because the shaded diffuse of a point is fully black, doesn't mean
the specularity highlight doesn't include that point.

Ton: you might want to look at this, though it's just a one-liner.

source/blender/render/intern/source/shadeoutput.c

index 7dd7383c60c7c3a2450d0cb7c64b4dde18ff4f5d..2bddc86e3f83cbf073da8d6d712d62d9201f4251 100644 (file)
@@ -1235,7 +1235,7 @@ static void shade_one_light(LampRen *lar, ShadeInput *shi, ShadeResult *shr, int
        /* shadow and spec, (visifac==0 outside spot) */
        if(visifac> 0.0f) {
                
-               if(i>0.0f && (R.r.mode & R_SHADOW)) {
+               if((R.r.mode & R_SHADOW)) {
                        if(ma->mode & MA_SHADOW) {
                                if(lar->shb || (lar->mode & LA_SHAD_RAY)) {
                                        
@@ -1259,7 +1259,7 @@ static void shade_one_light(LampRen *lar, ShadeInput *shi, ShadeResult *shr, int
                        }
                }
                
-               /* in case 'no diffuse' we still do most calculus, spec can be in shadow */
+               /* in case 'no diffuse' we still do most calculus, spec can be in shadow.*/
                if(!(lar->mode & LA_NO_DIFF)) {
                        if(i>0.0f) {
                                if(ma->mode & MA_SHADOW_TRA)