[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14091] trunk/blender/source/blender/ render/intern/source/envmap.c:
Brecht Van Lommel
brechtvanlommel at pandora.be
Thu Mar 13 16:55:58 CET 2008
Revision: 14091
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14091
Author: blendix
Date: 2008-03-13 16:55:35 +0100 (Thu, 13 Mar 2008)
Log Message:
-----------
Fix for bug #8437: white borders in envmap reflection, cause was
change in imagewraposa that de-premuls colors, while envmap code
was expecting premultiplied colors.
Modified Paths:
--------------
trunk/blender/source/blender/render/intern/source/envmap.c
Modified: trunk/blender/source/blender/render/intern/source/envmap.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/envmap.c 2008-03-13 15:40:24 UTC (rev 14090)
+++ trunk/blender/source/blender/render/intern/source/envmap.c 2008-03-13 15:55:35 UTC (rev 14091)
@@ -636,7 +636,7 @@
/* texvec should be the already reflected normal */
EnvMap *env;
ImBuf *ibuf;
- float fac, vec[3], sco[3], dxts[3], dyts[3];
+ float fac, vec[3], sco[3], dxts[3], dyts[3], w[3];
int face, face1;
env= tex->env;
@@ -717,10 +717,16 @@
fac= (texres->ta+texr1.ta+texr2.ta);
if(fac!=0.0) {
fac= 1.0/fac;
+
+ /* weight contributions based on alpha */
+ w[0]= texres->ta*fac;
+ w[1]= texr1.ta*fac;
+ w[2]= texr2.ta*fac;
- texres->tr= fac*(texres->ta*texres->tr + texr1.ta*texr1.tr + texr2.ta*texr2.tr );
- texres->tg= fac*(texres->ta*texres->tg + texr1.ta*texr1.tg + texr2.ta*texr2.tg );
- texres->tb= fac*(texres->ta*texres->tb + texr1.ta*texr1.tb + texr2.ta*texr2.tb );
+ /* interpolate premultiplied result (imagewraposa returns key) */
+ texres->tr= (w[0]*texres->ta*texres->tr + w[1]*texr1.ta*texr1.tr + w[2]*texr2.ta*texr2.tr);
+ texres->tg= (w[0]*texres->ta*texres->tg + w[1]*texr1.ta*texr1.tg + w[2]*texr2.ta*texr2.tg);
+ texres->tb= (w[0]*texres->ta*texres->tb + w[1]*texr1.ta*texr1.tb + w[2]*texr2.ta*texr2.tb);
}
texres->ta= 1.0;
}
More information about the Bf-blender-cvs
mailing list