[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54015] trunk/blender/source/blender/ render/intern: fix for glitch with vertex bake:

Campbell Barton ideasman42 at gmail.com
Wed Jan 23 05:22:13 CET 2013


Revision: 54015
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54015
Author:   campbellbarton
Date:     2013-01-23 04:22:02 +0000 (Wed, 23 Jan 2013)
Log Message:
-----------
fix for glitch with vertex bake:
- the mesh would be tagged to update, then updated before bake finished.
- also increase self-shadow offset, in some cases the offset wasn't enough.

Modified Paths:
--------------
    trunk/blender/source/blender/render/intern/raytrace/rayobject_octree.cpp
    trunk/blender/source/blender/render/intern/source/rendercore.c

Modified: trunk/blender/source/blender/render/intern/raytrace/rayobject_octree.cpp
===================================================================
--- trunk/blender/source/blender/render/intern/raytrace/rayobject_octree.cpp	2013-01-23 03:01:43 UTC (rev 54014)
+++ trunk/blender/source/blender/render/intern/raytrace/rayobject_octree.cpp	2013-01-23 04:22:02 UTC (rev 54015)
@@ -667,10 +667,12 @@
 	oc->ocface = NULL;
 	MEM_freeN(oc->ro_nodes);
 	oc->ro_nodes = NULL;
-	
+
+#if 0
 	printf("%f %f - %f\n", oc->min[0], oc->max[0], oc->ocfacx);
 	printf("%f %f - %f\n", oc->min[1], oc->max[1], oc->ocfacy);
 	printf("%f %f - %f\n", oc->min[2], oc->max[2], oc->ocfacz);
+#endif
 }
 
 static void RE_rayobject_octree_bb(RayObject *tree, float *min, float *max)

Modified: trunk/blender/source/blender/render/intern/source/rendercore.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/rendercore.c	2013-01-23 03:01:43 UTC (rev 54014)
+++ trunk/blender/source/blender/render/intern/source/rendercore.c	2013-01-23 04:22:02 UTC (rev 54015)
@@ -2433,7 +2433,7 @@
 
 	/* avoid self shadow with vertex bake from adjacent faces [#33729] */
 	if ((bs->vcol != NULL) && (bs->actob == NULL)) {
-		madd_v3_v3fl(shi->co, vlr->n, 0.00001f);
+		madd_v3_v3fl(shi->co, vlr->n, 0.0001f);
 	}
 
 	if (obi->flag & R_TRANSFORMED)
@@ -2568,9 +2568,6 @@
 					bs->mpoly = me->mpoly + *origindex;
 					bs->vcol = ((MLoopCol*)cdl->data) + bs->mpoly->loopstart;
 					bs->mloop = me->mloop + bs->mpoly->loopstart;
-
-					/* Tag mesh for reevaluation. */
-					DAG_id_tag_update(&me->id, 0);
 				}
 				else {
 					Image *ima = NULL;
@@ -2660,6 +2657,9 @@
 		bs->vcol = basevcol;
 		break;
 	}
+
+	/* needs to be done during baking and not before else the mesh will update before bake starts */
+	DAG_id_tag_update(&bs->obi->ob->id, OB_RECALC_DATA);
 }
 
 /* Bake all vertices of a face. Actually, this still works on a face-by-face




More information about the Bf-blender-cvs mailing list