[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56260] trunk/blender/source/blender/ render/intern/source/bake.c: fix glitch where vertex baking wouldn' t always refresh the mesh.
Campbell Barton
ideasman42 at gmail.com
Wed Apr 24 15:12:29 CEST 2013
Revision: 56260
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56260
Author: campbellbarton
Date: 2013-04-24 13:12:29 +0000 (Wed, 24 Apr 2013)
Log Message:
-----------
fix glitch where vertex baking wouldn't always refresh the mesh.
Modified Paths:
--------------
trunk/blender/source/blender/render/intern/source/bake.c
Modified: trunk/blender/source/blender/render/intern/source/bake.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/bake.c 2013-04-24 12:39:37 UTC (rev 56259)
+++ trunk/blender/source/blender/render/intern/source/bake.c 2013-04-24 13:12:29 UTC (rev 56260)
@@ -53,6 +53,7 @@
#include "BKE_main.h"
#include "BKE_node.h"
#include "BKE_scene.h"
+#include "BKE_library.h"
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
@@ -641,7 +642,7 @@
bs->mloop = me->mloop + bs->mpoly->loopstart;
/* Tag mesh for reevaluation. */
- DAG_id_tag_update(&me->id, 0);
+ me->id.flag |= LIB_DOIT;
}
else {
Image *ima = NULL;
@@ -1000,6 +1001,11 @@
}
}
+ if (R.r.bake_flag & R_BAKE_VCOL) {
+ /* untag all meshes */
+ tag_main_lb(&G.main->mesh, false);
+ }
+
BLI_init_threads(&threads, do_bake_thread, re->r.threads);
handles = MEM_callocN(sizeof(BakeShade) * re->r.threads, "BakeShade");
@@ -1099,6 +1105,19 @@
}
}
+ if (R.r.bake_flag & R_BAKE_VCOL) {
+ /* update all tagged meshes */
+ Object *ob;
+ for (ob = G.main->object.first; ob; ob = ob->id.next) {
+ if (ob->type == OB_MESH) {
+ Mesh *me = ob->data;
+ if (me->id.flag & LIB_DOIT) {
+ DAG_id_tag_update(&ob->id, OB_RECALC_OB | OB_RECALC_DATA);
+ }
+ }
+ }
+ }
+
MEM_freeN(handles);
BLI_end_threads(&threads);
More information about the Bf-blender-cvs
mailing list