[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33325] trunk/blender/source/blender/ render/intern/source/shadeoutput.c: Fix #24855: disabling shadows didn' t disable AO/env with ray transparency

Brecht Van Lommel brechtvanlommel at pandora.be
Fri Nov 26 04:50:15 CET 2010


Revision: 33325
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33325
Author:   blendix
Date:     2010-11-26 04:50:14 +0100 (Fri, 26 Nov 2010)

Log Message:
-----------
Fix #24855: disabling shadows didn't disable AO/env with ray transparency
and AO multiply mode.

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-11-26 03:37:08 UTC (rev 33324)
+++ trunk/blender/source/blender/render/intern/source/shadeoutput.c	2010-11-26 03:50:14 UTC (rev 33325)
@@ -1646,12 +1646,14 @@
 	if(R.wrld.mode & (WO_AMB_OCC|WO_ENV_LIGHT|WO_INDIRECT_LIGHT)) {
 		if(((passflag & SCE_PASS_COMBINED) && (shi->combinedflag & (SCE_PASS_AO|SCE_PASS_ENVIRONMENT|SCE_PASS_INDIRECT)))
 			|| (passflag & (SCE_PASS_AO|SCE_PASS_ENVIRONMENT|SCE_PASS_INDIRECT))) {
-			/* AO was calculated for scanline already */
-			if(shi->depth || shi->volume_depth)
-				ambient_occlusion(shi);
-			VECCOPY(shr->ao, shi->ao);
-			VECCOPY(shr->env, shi->env); // XXX multiply
-			VECCOPY(shr->indirect, shi->indirect); // XXX multiply
+			if(R.r.mode & R_SHADOW) {
+				/* AO was calculated for scanline already */
+				if(shi->depth || shi->volume_depth)
+					ambient_occlusion(shi);
+				VECCOPY(shr->ao, shi->ao);
+				VECCOPY(shr->env, shi->env); // XXX multiply
+				VECCOPY(shr->indirect, shi->indirect); // XXX multiply
+			}
 		}
 	}
 	
@@ -1767,18 +1769,20 @@
 	
 	/* from now stuff everything in shr->combined: ambient, AO, radio, ramps, exposure */
 	if(!(ma->sss_flag & MA_DIFF_SSS) || !sss_pass_done(&R, ma)) {
-		/* add AO in combined? */
-		if(R.wrld.mode & WO_AMB_OCC)
-			if(shi->combinedflag & SCE_PASS_AO)
-				ambient_occlusion_apply(shi, shr);
+		if(R.r.mode & R_SHADOW) {
+			/* add AO in combined? */
+			if(R.wrld.mode & WO_AMB_OCC)
+				if(shi->combinedflag & SCE_PASS_AO)
+					ambient_occlusion_apply(shi, shr);
 
-		if(R.wrld.mode & WO_ENV_LIGHT)
-			if(shi->combinedflag & SCE_PASS_ENVIRONMENT)
-				environment_lighting_apply(shi, shr);
+			if(R.wrld.mode & WO_ENV_LIGHT)
+				if(shi->combinedflag & SCE_PASS_ENVIRONMENT)
+					environment_lighting_apply(shi, shr);
 
-		if(R.wrld.mode & WO_INDIRECT_LIGHT)
-			if(shi->combinedflag & SCE_PASS_INDIRECT)
-				indirect_lighting_apply(shi, shr);
+			if(R.wrld.mode & WO_INDIRECT_LIGHT)
+				if(shi->combinedflag & SCE_PASS_INDIRECT)
+					indirect_lighting_apply(shi, shr);
+		}
 		
 		shr->combined[0]+= shi->ambr;
 		shr->combined[1]+= shi->ambg;





More information about the Bf-blender-cvs mailing list