diff options
Diffstat (limited to 'intern/cycles/blender/object.cpp')
-rw-r--r-- | intern/cycles/blender/object.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/intern/cycles/blender/object.cpp b/intern/cycles/blender/object.cpp index 9919b9d1836..3800ea0ecd2 100644 --- a/intern/cycles/blender/object.cpp +++ b/intern/cycles/blender/object.cpp @@ -161,6 +161,11 @@ Object *BlenderSync::sync_object(BL::Depsgraph &b_depsgraph, if (is_instance) { persistent_id_array = b_instance.persistent_id(); persistent_id = persistent_id_array.data; + if (!b_ob_info.is_real_object_data()) { + /* Remember which object data the geometry is coming from, so that we can sync it when the + * object has changed. */ + instance_geometries_by_object[b_ob_info.real_object.ptr.data].insert(b_ob_info.object_data); + } } /* light is handled separately */ @@ -560,6 +565,7 @@ void BlenderSync::sync_objects(BL::Depsgraph &b_depsgraph, else { geometry_motion_synced.clear(); } + instance_geometries_by_object.clear(); /* initialize culling */ BlenderObjectCulling culling(scene, b_scene); |