Revision: 36344
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36344
Author:   lmg
Date:     2011-04-26 15:29:12 +0000 (Tue, 26 Apr 2011)
Log Message:
-----------
fixed some issues with the new "shadow only + shading" code.
patch from MiikaH.

Modified Paths:
--------------
    trunk/blender/source/blender/render/intern/source/shadeoutput.c

Modified: trunk/blender/source/blender/render/intern/source/shadeoutput.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/shadeoutput.c     
2011-04-26 13:51:56 UTC (rev 36343)
+++ trunk/blender/source/blender/render/intern/source/shadeoutput.c     
2011-04-26 15:29:12 UTC (rev 36344)
@@ -1523,19 +1523,19 @@
                        
                        if(lar->shb || (lar->mode & LA_SHAD_RAY)) {
                                visifac= lamp_get_visibility(lar, shi->co, lv, 
&lampdist);
+                               ir+= 1.0f;
+
                                if(visifac <= 0.0f) {
-                                       if (shi->mat->shadowonly_flag == 
MA_SO_OLD) {
-                                               ir+= 1.0f;
+                                       if (shi->mat->shadowonly_flag == 
MA_SO_OLD)
                                                accum+= 1.0f;
-                                       }
+
                                        continue;
                                }
                                inpr= INPR(shi->vn, lv);
                                if(inpr <= 0.0f) {
-                                       if (shi->mat->shadowonly_flag == 
MA_SO_OLD) {
-                                               ir+= 1.0f;
+                                       if (shi->mat->shadowonly_flag == 
MA_SO_OLD)
                                                accum+= 1.0f;
-                                       }
+
                                        continue;
                                }
 
@@ -1543,11 +1543,9 @@
 
                                if (shi->mat->shadowonly_flag == MA_SO_OLD) {
                                        /* Old "Shadows Only" */
-                                       ir+= 1.0f;
                                        accum+= (1.0f-visifac) + 
(visifac)*rgb_to_grayscale(shadfac)*shadfac[3];
                                }
                                else {
-                                       ir+= lar->energy;
                                        shaded += 
rgb_to_grayscale(shadfac)*shadfac[3] * visifac * lar->energy;
 
                                        if (shi->mat->shadowonly_flag == 
MA_SO_SHADOW) {
@@ -1563,9 +1561,6 @@
                                accum = 1.0f - accum/ir;
                        }
                        else {
-                               shaded/= ir;
-                               lightness/= ir;
-
                                if (shi->mat->shadowonly_flag == MA_SO_SHADOW) {
                                        if (lightness > 0.0f) {
                                                /* Get shadow value from 
between 0.0f and non-shadowed lightness */
@@ -1581,10 +1576,11 @@
                        }}
 
                        shr->alpha= (shi->alpha)*(accum);
+                       if (shr->alpha<0.0f) shr->alpha=0.0f;
                }
                else {
                        /* If "fully shaded", use full alpha even on areas that 
have no lights */
-                       if (shi->mat->shadowonly_flag == MA_SO_SHADED) 
shr->alpha=1.0f;
+                       if (shi->mat->shadowonly_flag == MA_SO_SHADED) 
shr->alpha=shi->alpha;
                        else shr->alpha= 0.f;
                }
        }

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to