Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--intern/cycles/blender/blender_object.cpp9
-rw-r--r--intern/cycles/render/hair.cpp3
-rw-r--r--intern/cycles/render/mesh.cpp2
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);