[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60829] trunk/blender/intern/cycles/ blender: Fix cycles mesh synchronization being too slow with vector blur and duplis .
Brecht Van Lommel
brechtvanlommel at pandora.be
Thu Oct 17 18:05:57 CEST 2013
Revision: 60829
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60829
Author: blendix
Date: 2013-10-17 16:05:57 +0000 (Thu, 17 Oct 2013)
Log Message:
-----------
Fix cycles mesh synchronization being too slow with vector blur and duplis.
Modified Paths:
--------------
trunk/blender/intern/cycles/blender/blender_mesh.cpp
trunk/blender/intern/cycles/blender/blender_object.cpp
trunk/blender/intern/cycles/blender/blender_sync.h
Modified: trunk/blender/intern/cycles/blender/blender_mesh.cpp
===================================================================
--- trunk/blender/intern/cycles/blender/blender_mesh.cpp 2013-10-17 15:51:12 UTC (rev 60828)
+++ trunk/blender/intern/cycles/blender/blender_mesh.cpp 2013-10-17 16:05:57 UTC (rev 60829)
@@ -539,6 +539,12 @@
if(!size || !ccl::BKE_object_is_deform_modified(b_ob, b_scene, preview))
return;
+ /* ensure we only sync instanced meshes once */
+ if(mesh_motion_synced.find(mesh) != mesh_motion_synced.end())
+ return;
+
+ mesh_motion_synced.insert(mesh);
+
/* get derived mesh */
BL::Mesh b_mesh = object_to_mesh(b_data, b_ob, b_scene, true, !preview, false);
Modified: trunk/blender/intern/cycles/blender/blender_object.cpp
===================================================================
--- trunk/blender/intern/cycles/blender/blender_object.cpp 2013-10-17 15:51:12 UTC (rev 60828)
+++ trunk/blender/intern/cycles/blender/blender_object.cpp 2013-10-17 16:05:57 UTC (rev 60829)
@@ -405,6 +405,9 @@
mesh_synced.clear();
particle_system_map.pre_sync();
}
+ else {
+ mesh_motion_synced.clear();
+ }
/* object loop */
BL::Scene::objects_iterator b_ob;
@@ -492,6 +495,9 @@
scene->particle_system_manager->tag_update(scene);
mesh_synced.clear();
}
+
+ if(motion)
+ mesh_motion_synced.clear();
}
void BlenderSync::sync_motion(BL::SpaceView3D b_v3d, BL::Object b_override)
Modified: trunk/blender/intern/cycles/blender/blender_sync.h
===================================================================
--- trunk/blender/intern/cycles/blender/blender_sync.h 2013-10-17 15:51:12 UTC (rev 60828)
+++ trunk/blender/intern/cycles/blender/blender_sync.h 2013-10-17 16:05:57 UTC (rev 60829)
@@ -108,6 +108,7 @@
id_map<ObjectKey, Light> light_map;
id_map<ParticleSystemKey, ParticleSystem> particle_system_map;
set<Mesh*> mesh_synced;
+ set<Mesh*> mesh_motion_synced;
void *world_map;
bool world_recalc;
More information about the Bf-blender-cvs
mailing list