[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [14108] trunk/blender/source/blender/ render/intern:

Brecht Van Lommel brechtvanlommel at pandora.be
Fri Mar 14 11:56:09 CET 2008


Revision: 14108
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14108
Author:   blendix
Date:     2008-03-14 11:56:09 +0100 (Fri, 14 Mar 2008)

Log Message:
-----------

Bugfix: baking selected to active did not include materials with
Traceable disabled.

Modified Paths:
--------------
    trunk/blender/source/blender/render/intern/include/render_types.h
    trunk/blender/source/blender/render/intern/source/convertblender.c
    trunk/blender/source/blender/render/intern/source/rayshade.c

Modified: trunk/blender/source/blender/render/intern/include/render_types.h
===================================================================
--- trunk/blender/source/blender/render/intern/include/render_types.h	2008-03-14 10:43:26 UTC (rev 14107)
+++ trunk/blender/source/blender/render/intern/include/render_types.h	2008-03-14 10:56:09 UTC (rev 14108)
@@ -497,6 +497,7 @@
 #define R_GLOB_NOPUNOFLIP	16
 #define R_NEED_TANGENT	32
 #define R_SKIP_MULTIRES	64
+#define R_BAKE_TRACE	128
 
 /* vlakren->flag (vlak = face in dutch) char!!! */
 #define R_SMOOTH		1

Modified: trunk/blender/source/blender/render/intern/source/convertblender.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/convertblender.c	2008-03-14 10:43:26 UTC (rev 14107)
+++ trunk/blender/source/blender/render/intern/source/convertblender.c	2008-03-14 10:56:09 UTC (rev 14108)
@@ -5318,7 +5318,6 @@
 	ListBase oldtable= {NULL, NULL}, newtable= {NULL, NULL};
 	ListBase strandsurface;
 	int step;
-	ModifierData *md = NULL;
 	
 	re->i.infostr= "Calculating previous vectors";
 	re->r.mode |= R_SPEED;
@@ -5453,6 +5452,8 @@
 	re->excludeob= actob;
 	if(type == RE_BAKE_LIGHT)
 		re->flag |= R_SKIP_MULTIRES;
+	if(actob)
+		re->flag |= R_BAKE_TRACE;
 
 	if(type==RE_BAKE_NORMALS && re->r.bake_normal_space==R_BAKE_SPACE_TANGENT)
 		re->flag |= R_NEED_TANGENT;

Modified: trunk/blender/source/blender/render/intern/source/rayshade.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/rayshade.c	2008-03-14 10:43:26 UTC (rev 14107)
+++ trunk/blender/source/blender/render/intern/source/rayshade.c	2008-03-14 10:56:09 UTC (rev 14108)
@@ -82,6 +82,11 @@
 	ObjectInstanceRen *obi= RAY_OBJECT_GET((Render*)is->userdata, ob);
 	VlakRen *vlr = (VlakRen*)face;
 
+	/* for baking selected to active non-traceable materials might still
+	 * be in the raytree */
+	if(!(vlr->mat->mode & MA_TRACEBLE))
+		return 0;
+
 	/* I know... cpu cycle waste, might do smarter once */
 	if(is->mode==RE_RAY_MIRROR)
 		return !(vlr->mat->mode & MA_ONLYCAST);
@@ -125,7 +130,8 @@
 		for(v=0;v<obr->totvlak;v++) {
 			if((v & 255)==0) vlr= obr->vlaknodes[v>>8].vlak;
 			else vlr++;
-			if(vlr->mat->mode & MA_TRACEBLE) {	
+			/* baking selected to active needs non-traceable too */
+			if((re->flag & R_BAKE_TRACE) || (vlr->mat->mode & MA_TRACEBLE)) {	
 				if((vlr->mat->mode & MA_WIRE)==0) {	
 					VECCOPY(co1, vlr->v1->co);
 					VECCOPY(co2, vlr->v2->co);
@@ -186,7 +192,7 @@
 			}
 			else vlr++;
 			
-			if(vlr->mat->mode & MA_TRACEBLE)
+			if((re->flag & R_BAKE_TRACE) || (vlr->mat->mode & MA_TRACEBLE))
 				if((vlr->mat->mode & MA_WIRE)==0)
 					RE_ray_tree_add_face(re->raytree, RAY_OBJECT_SET(re, obi), vlr);
 		}





More information about the Bf-blender-cvs mailing list