diff options
-rw-r--r-- | intern/cycles/blender/blender_object.cpp | 9 | ||||
-rw-r--r-- | intern/cycles/render/hair.cpp | 3 | ||||
-rw-r--r-- | intern/cycles/render/mesh.cpp | 2 |
3 files changed, 9 insertions, 5 deletions
diff --git a/intern/cycles/blender/blender_object.cpp b/intern/cycles/blender/blender_object.cpp index 95da4a2df84..4b1c4edef7e 100644 --- a/intern/cycles/blender/blender_object.cpp +++ b/intern/cycles/blender/blender_object.cpp @@ -104,23 +104,22 @@ void BlenderSync::sync_object_motion_init(BL::Object &b_parent, BL::Object &b_ob array<Transform> motion; object->set_motion(motion); - Scene::MotionType need_motion = scene->need_motion(); - if (need_motion == Scene::MOTION_NONE || !object->get_geometry()) { + Geometry *geom = object->get_geometry(); + if (!geom) { return; } - Geometry *geom = object->get_geometry(); - int motion_steps = 0; bool use_motion_blur = false; + Scene::MotionType need_motion = scene->need_motion(); if (need_motion == Scene::MOTION_BLUR) { motion_steps = object_motion_steps(b_parent, b_ob, Object::MAX_MOTION_STEPS); if (motion_steps && object_use_deform_motion(b_parent, b_ob)) { use_motion_blur = true; } } - else { + else if (need_motion != Scene::MOTION_NONE) { motion_steps = 3; } diff --git a/intern/cycles/render/hair.cpp b/intern/cycles/render/hair.cpp index e104455f7dd..e757e3fd3e0 100644 --- a/intern/cycles/render/hair.cpp +++ b/intern/cycles/render/hair.cpp @@ -441,6 +441,9 @@ void Hair::apply_transform(const Transform &tfm, const bool apply_to_motion) curve_radius[i] = radius; } + tag_curve_keys_modified(); + tag_curve_radius_modified(); + if (apply_to_motion) { Attribute *curve_attr = attributes.find(ATTR_STD_MOTION_VERTEX_POSITION); diff --git a/intern/cycles/render/mesh.cpp b/intern/cycles/render/mesh.cpp index 2ecea3101db..9c93f6f881c 100644 --- a/intern/cycles/render/mesh.cpp +++ b/intern/cycles/render/mesh.cpp @@ -508,6 +508,8 @@ void Mesh::apply_transform(const Transform &tfm, const bool apply_to_motion) for (size_t i = 0; i < verts.size(); i++) verts[i] = transform_point(&tfm, verts[i]); + tag_verts_modified(); + if (apply_to_motion) { Attribute *attr = attributes.find(ATTR_STD_MOTION_VERTEX_POSITION); |