[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26868] trunk/blender/source/blender/ render/intern/source/shadeoutput.c: Fix #20391: onlyshadow material doesn' t render transparent shadows.

Brecht Van Lommel brecht at blender.org
Sat Feb 13 14:17:15 CET 2010


Revision: 26868
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26868
Author:   blendix
Date:     2010-02-13 14:17:15 +0100 (Sat, 13 Feb 2010)

Log Message:
-----------
Fix #20391: onlyshadow material doesn't render transparent shadows.
Fix #21033: AO + onlyshadow problem. Reverting to the old behavior which
I don't really understand, but at least it's compatible.

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	2010-02-13 13:09:30 UTC (rev 26867)
+++ trunk/blender/source/blender/render/intern/source/shadeoutput.c	2010-02-13 13:17:15 UTC (rev 26868)
@@ -1527,7 +1527,7 @@
 				lamp_get_shadow(lar, shi, inpr, shadfac, shi->depth);
 
 				ir+= 1.0f;
-				accum+= (1.0f-visifac) + (visifac)*shadfac[3];
+				accum+= (1.0f-visifac) + (visifac)*rgb_to_grayscale(shadfac)*shadfac[3];
 			}
 		}
 		if(ir>0.0f) {
@@ -1544,15 +1544,17 @@
 		if(R.wrld.mode & WO_AMB_OCC) {
 			f= R.wrld.aoenergy*shi->amb;
 
-			if(R.wrld.aomix==WO_AOADD)
-				shr->alpha += f*(1.0f - rgb_to_grayscale(shi->ao));
+			if(R.wrld.aomix==WO_AOADD) {
+				f= f*(1.0f - rgb_to_grayscale(shi->ao));
+				shr->alpha= (shr->alpha + f)*f;
+			}
 			else
 				shr->alpha= (1.0f - f)*shr->alpha + f*(1.0f - (1.0f - shr->alpha)*rgb_to_grayscale(shi->ao));
 		}
 
 		if(R.wrld.mode & WO_ENV_LIGHT) {
-			f= R.wrld.ao_env_energy*shi->amb;
-			shr->alpha += f*(1.0f - rgb_to_grayscale(shi->env));
+			f= R.wrld.ao_env_energy*shi->amb*(1.0f - rgb_to_grayscale(shi->env));
+			shr->alpha= (shr->alpha + f)*f;
 		}
 	}
 }





More information about the Bf-blender-cvs mailing list