Revision: 16648
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16648
Author: ton
Date: 2008-09-21 14:03:41 +0200 (Sun, 21 Sep 2008)
Log Message:
-----------
Bugfix #17656
- Changed order for applying atmosphere, it does it now before alpha-adding
sky, giving correct transparency
- Added correction for de-premulling and premulling scatter color
Modified Paths:
--------------
trunk/blender/source/blender/render/intern/source/rendercore.c
Modified: trunk/blender/source/blender/render/intern/source/rendercore.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/rendercore.c
2008-09-21 10:31:22 UTC (rev 16647)
+++ trunk/blender/source/blender/render/intern/source/rendercore.c
2008-09-21 12:03:41 UTC (rev 16648)
@@ -713,7 +713,7 @@
if(lar->type==LA_SUN && lar->sunsky) {
/* if it's sky continue and
don't apply atmosphere effect on it */
- if(*zrect >= 9.9e10) {
+ if(*zrect >= 9.9e10 ||
rgbrect[3]==0.0f) {
continue;
}
@@ -721,7 +721,14 @@
float tmp_rgb[3];
VECCOPY(tmp_rgb,
rgbrect);
+ if(rgbrect[3]!=1.0f) {
/* de-premul */
+ float div=
1.0f/rgbrect[3];
+ VECMUL(tmp_rgb,
div);
+ }
shadeAtmPixel(lar->sunsky, tmp_rgb, x, y, *zrect);
+ if(rgbrect[3]!=1.0f) {
/* premul */
+ VECMUL(tmp_rgb,
rgbrect[3]);
+ }
if(done==0) {
VECCOPY(rgb,
tmp_rgb);
@@ -1199,6 +1206,10 @@
}
}
+ /* sun/sky */
+ if(rl->layflag & SCE_LAY_SKY)
+ atm_tile(pa, rl);
+
/* sky before edge */
if(rl->layflag & SCE_LAY_SKY)
sky_tile(pa, rl);
@@ -1208,10 +1219,6 @@
if(R.r.mode & R_EDGE)
edge_enhance_add(pa, rl->rectf, edgerect);
- /* sun/sky */
- if(rl->layflag & SCE_LAY_SKY)
- atm_tile(pa, rl);
-
if(rl->passflag & SCE_PASS_VECTOR)
reset_sky_speed(pa, rl);
@@ -1362,6 +1369,10 @@
}
}
+ /* sun/sky */
+ if(rl->layflag & SCE_LAY_SKY)
+ atm_tile(pa, rl);
+
/* sky before edge */
if(rl->layflag & SCE_LAY_SKY)
sky_tile(pa, rl);
@@ -1372,10 +1383,6 @@
edge_enhance_add(pa, rl->rectf,
edgerect);
}
- /* sun/sky */
- if(rl->layflag & SCE_LAY_SKY)
- atm_tile(pa, rl);
-
if(rl->passflag & SCE_PASS_VECTOR)
reset_sky_speed(pa, rl);
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs