[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15563] trunk/blender/source/blender/ render/intern/source/zbuf.c: Bugfix #17323

Ton Roosendaal ton at blender.org
Mon Jul 14 11:37:06 CEST 2008


Revision: 15563
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15563
Author:   ton
Date:     2008-07-14 11:37:06 +0200 (Mon, 14 Jul 2008)

Log Message:
-----------
Bugfix #17323

Ztransp OSA render did not include z values anymore in pass... this is
not good Z anyway (aliased), but at least it's back now.

Note: for composites using Z values: use FSA for superior results.

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

Modified: trunk/blender/source/blender/render/intern/source/zbuf.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/zbuf.c	2008-07-14 01:44:05 UTC (rev 15562)
+++ trunk/blender/source/blender/render/intern/source/zbuf.c	2008-07-14 09:37:06 UTC (rev 15563)
@@ -3545,7 +3545,7 @@
 	
 	for(rpass= rl->passes.first; rpass; rpass= rpass->next) {
 		float *col= NULL;
-		int pixsize= 0;
+		int pixsize= 3;
 		
 		switch(rpass->passtype) {
 			case SCE_PASS_RGBA:
@@ -3580,6 +3580,10 @@
 				col= &shr->mist;
 				pixsize= 1;
 				break;
+			case SCE_PASS_Z:
+				col= &shr->z;
+				pixsize= 1;
+				break;
 			case SCE_PASS_VECTOR:
 				
 				{
@@ -3612,14 +3616,18 @@
 			
 			for(samp= 1; samp<R.osa; samp++, fp+=delta) {
 				col[0]+= fp[0];
-				col[1]+= fp[1];
-				col[2]+= fp[2];
-				if(pixsize) col[3]+= fp[3];
+				if(pixsize>1) {
+					col[1]+= fp[1];
+					col[2]+= fp[2];
+					if(pixsize==4) col[3]+= fp[3];
+				}
 			}
 			col[0]*= weight;
-			col[1]*= weight;
-			col[2]*= weight;
-			if(pixsize) col[3]*= weight;
+			if(pixsize>1) {
+				col[1]*= weight;
+				col[2]*= weight;
+				if(pixsize==4) col[3]*= weight;
+			}
 		}
 	}
 				
@@ -3973,7 +3981,7 @@
 
 	/* general shader info, passes */
 	shade_sample_initialize(&ssamp, pa, rl);
-	addpassflag= rl->passflag & ~(SCE_PASS_Z|SCE_PASS_COMBINED);
+	addpassflag= rl->passflag & ~(SCE_PASS_COMBINED);
 	addzbuf= rl->passflag & SCE_PASS_Z;
 	
 	if(R.osa)





More information about the Bf-blender-cvs mailing list