[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [13309] trunk/blender/source/blender/ render/intern/source: Two fixes for yesterday commit, new Mist pass:

Ton Roosendaal ton at blender.org
Sun Jan 20 15:50:30 CET 2008


Revision: 13309
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=13309
Author:   ton
Date:     2008-01-20 15:50:30 +0100 (Sun, 20 Jan 2008)

Log Message:
-----------
Two fixes for yesterday commit, new Mist pass:

- non OSA case didn't work
- ztransp adding was accidentally using an incorrect alpha value

NOTE: allmost all pass types rendered in OSA with a filter (not box!) were
incorrectly added on solid layers. Like diffuse, AO, etc.

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

Modified: trunk/blender/source/blender/render/intern/source/rendercore.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/rendercore.c	2008-01-20 13:52:54 UTC (rev 13308)
+++ trunk/blender/source/blender/render/intern/source/rendercore.c	2008-01-20 14:50:30 UTC (rev 13309)
@@ -484,6 +484,10 @@
 					*fp= (float)shi->obr->ob->index;
 				}
 				break;
+			case SCE_PASS_MIST:
+				fp= rpass->rect + offset;
+				*fp= shr->mist;
+				break;
 		}
 		if(col) {
 			fp= rpass->rect + pixsize*offset;

Modified: trunk/blender/source/blender/render/intern/source/zbuf.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/zbuf.c	2008-01-20 13:52:54 UTC (rev 13308)
+++ trunk/blender/source/blender/render/intern/source/zbuf.c	2008-01-20 14:50:30 UTC (rev 13309)
@@ -3790,6 +3790,7 @@
 						add_transp_speed(rl, od, ssamp.shr[0].winspeed, pass[3], rdrect);
 				}
 				else {
+					float alpha= 0.0f;
 					short filled, *sp= (short *)(ztramask+od);
 					
 					/* for each mask-sample we alpha-under colors. then in end it's added using filter */
@@ -3812,17 +3813,21 @@
 						}
 					}
 					
+					/* note; cannot use pass[3] for alpha due to filtermask */
 					for(a=0; a<R.osa; a++) {
 						add_filt_fmask(1<<a, samp_shr[a].combined, pass, rr->rectx);
+						alpha+= samp_shr[a].combined[3];
 					}
 					
 					if(addpassflag) {
+						alpha*= sampalpha;
+						
 						/* merge all in one, and then add */
 						merge_transp_passes(rl, samp_shr);
-						add_transp_passes(rl, od, samp_shr, pass[3]);
+						add_transp_passes(rl, od, samp_shr, alpha);
 
 						if(addpassflag & SCE_PASS_VECTOR)
-							add_transp_speed(rl, od, samp_shr[0].winspeed, pass[3], rdrect);
+							add_transp_speed(rl, od, samp_shr[0].winspeed, alpha, rdrect);
 					}
 				}
 			}





More information about the Bf-blender-cvs mailing list