[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