[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [13370] trunk/blender/source/blender/ render/intern/source/strand.c:
Brecht Van Lommel
brechtvanlommel at pandora.be
Wed Jan 23 15:30:55 CET 2008
Revision: 13370
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=13370
Author: blendix
Date: 2008-01-23 15:30:55 +0100 (Wed, 23 Jan 2008)
Log Message:
-----------
Bugfix for strand pass adding with non-box filter, same bug as
existed in ztransp.
Modified Paths:
--------------
trunk/blender/source/blender/render/intern/source/strand.c
Modified: trunk/blender/source/blender/render/intern/source/strand.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/strand.c 2008-01-23 14:15:34 UTC (rev 13369)
+++ trunk/blender/source/blender/render/intern/source/strand.c 2008-01-23 14:30:55 UTC (rev 13370)
@@ -890,11 +890,12 @@
{
RenderResult *rr= pa->result;
ShadeResult *shr, *shrrect= spart->result;
- float *passrect= pass;
+ float *passrect= pass, alpha, sampalpha;
long *rdrect;
int osa, x, y, a, crop= 0, offs=0, od;
osa= (re->osa? re->osa: 1);
+ sampalpha= 1.0f/osa;
/* filtered render, for now we assume only 1 filter size */
if(pa->crop) {
@@ -928,21 +929,28 @@
add_transp_speed(rl, od, NULL, 0.0f, rdrect);
}
else {
+ alpha= 0.0f;
+
if(re->osa == 0) {
addAlphaUnderFloat(pass, shr->combined);
}
else {
- for(a=0; a<re->osa; a++)
+ /* note; cannot use pass[3] for alpha due to filtermask */
+ for(a=0; a<re->osa; a++) {
add_filt_fmask(1<<a, shr[a].combined, pass, rr->rectx);
+ alpha += shr[a].combined[3];
+ }
}
if(spart->addpassflag) {
+ alpha *= sampalpha;
+
/* merge all in one, and then add */
merge_transp_passes(rl, shr);
- add_transp_passes(rl, od, shr, pass[3]);
+ add_transp_passes(rl, od, shr, alpha);
if(spart->addpassflag & SCE_PASS_VECTOR)
- add_transp_speed(rl, od, shr->winspeed, pass[3], rdrect);
+ add_transp_speed(rl, od, shr->winspeed, alpha, rdrect);
}
}
}
More information about the Bf-blender-cvs
mailing list