[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14080] trunk/blender/source/blender/ render/intern/source:
Brecht Van Lommel
brechtvanlommel at pandora.be
Thu Mar 13 10:58:22 CET 2008
Revision: 14080
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14080
Author: blendix
Date: 2008-03-13 10:58:21 +0100 (Thu, 13 Mar 2008)
Log Message:
-----------
Fix for bug #8502: AO was being computed unnecessarily if it was
excluded from the combined pass and the AO pass was disabled.
Modified Paths:
--------------
trunk/blender/source/blender/render/intern/source/shadeinput.c
trunk/blender/source/blender/render/intern/source/shadeoutput.c
Modified: trunk/blender/source/blender/render/intern/source/shadeinput.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/shadeinput.c 2008-03-13 03:32:23 UTC (rev 14079)
+++ trunk/blender/source/blender/render/intern/source/shadeinput.c 2008-03-13 09:58:21 UTC (rev 14080)
@@ -1255,12 +1255,15 @@
if(!(R.r.mode & R_RAYTRACE) && !(R.wrld.ao_gather_method == WO_AOGATHER_APPROX))
return;
- if(R.wrld.mode & WO_AMB_OCC)
- if(ssamp->shi[0].passflag & (SCE_PASS_COMBINED|SCE_PASS_AO))
+ if(R.wrld.mode & WO_AMB_OCC) {
+ shi= &ssamp->shi[0];
+
+ if(((shi->passflag & SCE_PASS_COMBINED) && (shi->combinedflag & SCE_PASS_AO))
+ || (shi->passflag & SCE_PASS_AO))
for(sample=0, shi= ssamp->shi; sample<ssamp->tot; shi++, sample++)
if(!(shi->mode & MA_SHLESS))
ambient_occlusion(shi); /* stores in shi->ao[] */
-
+ }
}
Modified: trunk/blender/source/blender/render/intern/source/shadeoutput.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/shadeoutput.c 2008-03-13 03:32:23 UTC (rev 14079)
+++ trunk/blender/source/blender/render/intern/source/shadeoutput.c 2008-03-13 09:58:21 UTC (rev 14080)
@@ -1578,7 +1578,8 @@
/* AO pass */
if(R.wrld.mode & WO_AMB_OCC) {
- if(passflag & (SCE_PASS_COMBINED|SCE_PASS_AO)) {
+ if(((passflag & SCE_PASS_COMBINED) && (shi->combinedflag & SCE_PASS_AO))
+ || (passflag & SCE_PASS_AO)) {
/* AO was calculated for scanline already */
if(shi->depth)
ambient_occlusion(shi);
More information about the Bf-blender-cvs
mailing list