[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [37045] branches/cycles/intern/cycles/ blender: Cycles: fix instanced mesh sync being a bit too slow.
Brecht Van Lommel
brechtvanlommel at pandora.be
Tue May 31 12:57:43 CEST 2011
Revision: 37045
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37045
Author: blendix
Date: 2011-05-31 10:57:43 +0000 (Tue, 31 May 2011)
Log Message:
-----------
Cycles: fix instanced mesh sync being a bit too slow.
Modified Paths:
--------------
branches/cycles/intern/cycles/blender/blender_mesh.cpp
branches/cycles/intern/cycles/blender/blender_object.cpp
branches/cycles/intern/cycles/blender/blender_sync.h
Modified: branches/cycles/intern/cycles/blender/blender_mesh.cpp
===================================================================
--- branches/cycles/intern/cycles/blender/blender_mesh.cpp 2011-05-31 10:41:01 UTC (rev 37044)
+++ branches/cycles/intern/cycles/blender/blender_mesh.cpp 2011-05-31 10:57:43 UTC (rev 37045)
@@ -252,6 +252,12 @@
}
}
+ /* ensure we only sync instanced meshes once */
+ if(mesh_synced.find(mesh) != mesh_synced.end())
+ return mesh;
+
+ mesh_synced.insert(mesh);
+
/* create derived mesh */
BL::Mesh b_mesh = object_to_mesh(b_ob, b_scene, true, !preview);
/* todo: this will crash on non-mesh types! */
Modified: branches/cycles/intern/cycles/blender/blender_object.cpp
===================================================================
--- branches/cycles/intern/cycles/blender/blender_object.cpp 2011-05-31 10:41:01 UTC (rev 37044)
+++ branches/cycles/intern/cycles/blender/blender_object.cpp 2011-05-31 10:57:43 UTC (rev 37045)
@@ -139,6 +139,7 @@
light_map.pre_sync();
mesh_map.pre_sync();
object_map.pre_sync();
+ mesh_synced.clear();
/* object loop */
BL::Scene::objects_iterator b_ob;
@@ -177,6 +178,7 @@
scene->mesh_manager->tag_update(scene);
if(object_map.post_sync())
scene->object_manager->tag_update(scene);
+ mesh_synced.clear();
}
CCL_NAMESPACE_END
Modified: branches/cycles/intern/cycles/blender/blender_sync.h
===================================================================
--- branches/cycles/intern/cycles/blender/blender_sync.h 2011-05-31 10:41:01 UTC (rev 37044)
+++ branches/cycles/intern/cycles/blender/blender_sync.h 2011-05-31 10:57:43 UTC (rev 37045)
@@ -92,6 +92,7 @@
id_map<ObjectKey, Object> object_map;
id_map<void*, Mesh> mesh_map;
id_map<ObjectKey, Light> light_map;
+ set<Mesh*> mesh_synced;
void *world_map;
bool world_recalc;
More information about the Bf-blender-cvs
mailing list