[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22886] branches/blender2.5/blender/source /blender/render/intern: * Fixes for shading objects inside volumes

Matt Ebb matt at mke3.net
Sun Aug 30 09:07:02 CEST 2009


Revision: 22886
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22886
Author:   broken
Date:     2009-08-30 09:07:02 +0200 (Sun, 30 Aug 2009)

Log Message:
-----------
* Fixes for shading objects inside volumes

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/render/intern/include/render_types.h
    branches/blender2.5/blender/source/blender/render/intern/source/convertblender.c
    branches/blender2.5/blender/source/blender/render/intern/source/volumetric.c

Modified: branches/blender2.5/blender/source/blender/render/intern/include/render_types.h
===================================================================
--- branches/blender2.5/blender/source/blender/render/intern/include/render_types.h	2009-08-30 06:42:53 UTC (rev 22885)
+++ branches/blender2.5/blender/source/blender/render/intern/include/render_types.h	2009-08-30 07:07:02 UTC (rev 22886)
@@ -419,6 +419,7 @@
 typedef struct MatInside {
 	struct MatInside *next, *prev;
 	struct Material *ma;
+	struct ObjectInstanceRen *obi;
 } MatInside;
 
 typedef struct VolPrecachePart

Modified: branches/blender2.5/blender/source/blender/render/intern/source/convertblender.c
===================================================================
--- branches/blender2.5/blender/source/blender/render/intern/source/convertblender.c	2009-08-30 06:42:53 UTC (rev 22885)
+++ branches/blender2.5/blender/source/blender/render/intern/source/convertblender.c	2009-08-30 07:07:02 UTC (rev 22886)
@@ -2999,6 +2999,7 @@
 					
 					mi = MEM_mallocN(sizeof(MatInside), "camera inside material");
 					mi->ma = vo->ma;
+					mi->obi = obi;
 					
 					BLI_addtail(&(re->render_volumes_inside), mi);
 				}

Modified: branches/blender2.5/blender/source/blender/render/intern/source/volumetric.c
===================================================================
--- branches/blender2.5/blender/source/blender/render/intern/source/volumetric.c	2009-08-30 06:42:53 UTC (rev 22885)
+++ branches/blender2.5/blender/source/blender/render/intern/source/volumetric.c	2009-08-30 07:07:02 UTC (rev 22886)
@@ -674,15 +674,25 @@
 {
 	MatInside *m;
 	Material *mat_backup;
+	ObjectInstanceRen *obi_backup;
+	float prev_alpha = shr->alpha;
 	
 	//if (BLI_countlist(&R.render_volumes_inside) == 0) return;
 	
 	/* XXX: extend to multiple volumes perhaps later */
 	mat_backup = shi->mat;
+	obi_backup = shi->obi;
+	
 	m = R.render_volumes_inside.first;
 	shi->mat = m->ma;
+	shi->obi = m->obi;
+	shi->obr = m->obi->obr;
 	
 	volume_trace(shi, shr, VOL_SHADE_INSIDE);
-
+	shr->alpha += prev_alpha;
+	CLAMP(shr->alpha, 0.f, 1.f);
+	
 	shi->mat = mat_backup;
+	shi->obi = obi_backup;
+	shi->obr = obi_backup->obr;
 }
\ No newline at end of file





More information about the Bf-blender-cvs mailing list