[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