diff --git a/intern/cycles/blender/pointcloud.cpp b/intern/cycles/blender/pointcloud.cpp index 0af298097a3..7a4403f4885 100644 --- a/intern/cycles/blender/pointcloud.cpp +++ b/intern/cycles/blender/pointcloud.cpp @@ -207,6 +207,8 @@ void BlenderSync::sync_pointcloud(PointCloud *pointcloud, BObjectInfo &b_ob_info need_motion, motion_scale); + pointcloud->clear_non_sockets(); + /* Update original sockets. */ for (const SocketType &socket : new_pointcloud.type->inputs) { /* Those sockets are updated in sync_object, so do not modify them. */ diff --git a/intern/cycles/scene/pointcloud.cpp b/intern/cycles/scene/pointcloud.cpp index 2eab02541fa..eeea83d55f6 100644 --- a/intern/cycles/scene/pointcloud.cpp +++ b/intern/cycles/scene/pointcloud.cpp @@ -113,6 +113,11 @@ void PointCloud::reserve(const int numpoints) attributes.resize(true); } +void PointCloud::clear_non_sockets() +{ + Geometry::clear(true); +} + void PointCloud::clear(const bool preserve_shaders) { Geometry::clear(preserve_shaders); diff --git a/intern/cycles/scene/pointcloud.h b/intern/cycles/scene/pointcloud.h index f50c33b83f6..f18ce986a34 100644 --- a/intern/cycles/scene/pointcloud.h +++ b/intern/cycles/scene/pointcloud.h @@ -48,6 +48,7 @@ class PointCloud : public Geometry { ~PointCloud() override; /* Geometry */ + void clear_non_sockets(); void clear(const bool preserve_shaders = false) override; void resize(const int numpoints);