[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33371] trunk/blender/source/blender/ render/intern/source: Fix:
Matt Ebb
matt at mke3.net
Mon Nov 29 02:05:20 CET 2010
Revision: 33371
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33371
Author: broken
Date: 2010-11-29 02:05:20 +0100 (Mon, 29 Nov 2010)
Log Message:
-----------
Fix:
[#24170] Camera inside volume error
[#24838] Light inside Volume material drops on it's walls - it may be double
Problem in a previous bugfix commit, reverted back, the original bug is still fixed too.
Modified Paths:
--------------
trunk/blender/source/blender/render/intern/source/shadeinput.c
trunk/blender/source/blender/render/intern/source/volumetric.c
Modified: trunk/blender/source/blender/render/intern/source/shadeinput.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/shadeinput.c 2010-11-29 00:18:26 UTC (rev 33370)
+++ trunk/blender/source/blender/render/intern/source/shadeinput.c 2010-11-29 01:05:20 UTC (rev 33371)
@@ -141,7 +141,12 @@
if((shi->mat->mode & MA_TRANSP) && (shi->mat->mode & MA_RAYTRANSP))
if((shi->layflag & SCE_LAY_SKY) && (R.r.alphamode==R_ADDSKY))
shr->alpha= 1.0f;
- }
+ }
+
+ if(R.r.mode & R_RAYTRACE) {
+ if (R.render_volumes_inside.first)
+ shade_volume_inside(shi, shr);
+ }
}
@@ -163,11 +168,8 @@
shade_input_init_material(shi);
if (shi->mat->material_type == MA_TYPE_VOLUME) {
- if(R.r.mode & R_RAYTRACE) {
- if (R.render_volumes_inside.first)
- shade_volume_inside(shi, shr);
- else
- shade_volume_outside(shi, shr);
+ if(R.r.mode & R_RAYTRACE) {
+ shade_volume_outside(shi, shr);
}
} else { /* MA_TYPE_SURFACE, MA_TYPE_WIRE */
shade_material_loop(shi, shr);
Modified: trunk/blender/source/blender/render/intern/source/volumetric.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/volumetric.c 2010-11-29 00:18:26 UTC (rev 33370)
+++ trunk/blender/source/blender/render/intern/source/volumetric.c 2010-11-29 01:05:20 UTC (rev 33371)
@@ -784,6 +784,7 @@
MatInside *m;
Material *mat_backup;
ObjectInstanceRen *obi_backup;
+ float prev_alpha = shr->alpha;
/* XXX: extend to multiple volumes perhaps later */
mat_backup = shi->mat;
@@ -794,11 +795,14 @@
shi->obi = m->obi;
shi->obr = m->obi->obr;
- memset(shr, 0, sizeof(ShadeResult));
+ volume_trace(shi, shr, VOL_SHADE_INSIDE);
- volume_trace(shi, shr, VOL_SHADE_INSIDE);
+ shr->alpha = shr->alpha + prev_alpha;
+ CLAMP(shr->alpha, 0.0, 1.0);
shi->mat = mat_backup;
shi->obi = obi_backup;
shi->obr = obi_backup->obr;
}
+
+
More information about the Bf-blender-cvs
mailing list