[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26213] branches/render25/source/blender/ render/intern/source/rendercore.c: Render branch: fix halo rendering bug in hairball.blend.

Brecht Van Lommel brecht at blender.org
Sat Jan 23 18:26:40 CET 2010


Revision: 26213
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26213
Author:   blendix
Date:     2010-01-23 18:26:39 +0100 (Sat, 23 Jan 2010)

Log Message:
-----------
Render branch: fix halo rendering bug in hairball.blend.

Modified Paths:
--------------
    branches/render25/source/blender/render/intern/source/rendercore.c

Modified: branches/render25/source/blender/render/intern/source/rendercore.c
===================================================================
--- branches/render25/source/blender/render/intern/source/rendercore.c	2010-01-23 15:45:01 UTC (rev 26212)
+++ branches/render25/source/blender/render/intern/source/rendercore.c	2010-01-23 17:26:39 UTC (rev 26213)
@@ -102,6 +102,7 @@
 {
 	float col[4], accol[4], fac;
 	int amount, amountm, zz, flarec, sample, fullsample, mask=0;
+	int osa= (re->params.osa)? re->params.osa: 1;
 	
 	fullsample= (totsample > 1);
 	amount= 0;
@@ -123,7 +124,7 @@
 							pxf_add_alpha_fac(rlpp[sample]->rectf + od*4, col, har->add);
 				}
 				else {
-					fac= ((float)amountm)/(float)re->params.osa;
+					fac= ((float)amountm)/(float)osa;
 					accol[0]+= fac*col[0];
 					accol[1]+= fac*col[1];
 					accol[2]+= fac*col[2];
@@ -137,11 +138,11 @@
 	}
 
 	/* now do the sky sub-pixels */
-	amount= re->params.osa-amount;
+	amount= osa-amount;
 	if(amount) {
 		if(shadeHaloFloat(re, har, col, 0x7FFFFF, dist, xn, yn, flarec)) {
 			if(!fullsample) {
-				fac= ((float)amount)/(float)re->params.osa;
+				fac= ((float)amount)/(float)osa;
 				accol[0]+= fac*col[0];
 				accol[1]+= fac*col[1];
 				accol[2]+= fac*col[2];
@@ -484,7 +485,7 @@
 	
 }
 
-/******************************* Solid Shade *************************************/
+/************************* Solid and ZTransp Shade ****************************/
 
 static int pixel_row_compare(const void *a1, const void *a2)
 {
@@ -673,8 +674,6 @@
 		ShadeInput *shi= ssamp->shi;
 		float col[4];
 
-		printf("post lamphalo\n");
-
 		/* weak shadeinput setup */
 		memset(&shi->primitive, 0, sizeof(shi->primitive));
 		camera_raster_to_view(&re->cam, shi->geometry.view, x, y);
@@ -714,13 +713,6 @@
 
 	if((re->params.flag & R_LAMPHALO) && (ssamp->shi->shading.layflag & SCE_LAY_HALO))
 		pixel_row_shade_lamphalo(re, samp_shr, ssamp, osa, x, y);
-
-#if 0
-	if(layflag & SCE_LAY_SKY) {
-		pixel_row_shade_atmosphere(re, samp_shr, x, y);
-		pixel_row_shade_environment(re, samp_shr, x, y, ssamp->shi->shading.thread);
-	}
-#endif
 }
 
 static void zbuf_shade_all(Render *re, RenderPart *pa, RenderLayer *rl, APixstr* APixbuf, APixstrand *APixbufstrand, ListBase *apsmbase, StrandShadeCache *sscache)
@@ -870,7 +862,7 @@
 		if(rl->layflag & (SCE_LAY_SOLID|SCE_LAY_ZTRA|SCE_LAY_STRAND))
 			zbuf_rasterize(re, pa, rl, &psmlist, edgerect);
 
-		/* halo before ztra, because ztra fills in zbuffer now */
+		/* halo is now after solid and ztra */
 		if(re->params.flag & R_HALO)
 			if(rl->layflag & SCE_LAY_HALO)
 				halo_tile(re, pa, rl);





More information about the Bf-blender-cvs mailing list