diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-04-01 16:53:40 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2016-04-01 16:53:40 +0300 |
commit | 9ca925669301f75878c15c5b75730a0f58d135cc (patch) | |
tree | 802bdc77c6ae6c2a2b6eea6986faaa7349c26861 /source/blender/blenkernel | |
parent | f318e8322f2e339ce6e918fca9146334f84f6990 (diff) |
Cycles: Support deformation motion blur for curves deformed by taper
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/intern/object.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c index f81f13ec3a9..d78b49b9f9a 100644 --- a/source/blender/blenkernel/intern/object.c +++ b/source/blender/blenkernel/intern/object.c @@ -3653,6 +3653,14 @@ static bool object_moves_in_time(Object *object) return false; } +static bool object_deforms_in_time(Object *object) +{ + if (BKE_key_from_object(object) != NULL) { + return true; + } + return object_moves_in_time(object); +} + static bool constructive_modifier_is_deform_modified(ModifierData *md) { /* TODO(sergey): Consider generalizing this a bit so all modifier logic @@ -3712,8 +3720,16 @@ int BKE_object_is_deform_modified(Scene *scene, Object *ob) int flag = 0; const bool is_modifier_animated = modifiers_has_animation_check(ob); - if (BKE_key_from_object(ob)) + if (BKE_key_from_object(ob)) { flag |= eModifierMode_Realtime | eModifierMode_Render; + } + + if (ob->type == OB_CURVE) { + Curve *cu = (Curve *)ob->data; + if (cu->taperobj != NULL && object_deforms_in_time(cu->taperobj)) { + flag |= eModifierMode_Realtime | eModifierMode_Render; + } + } /* cloth */ for (md = modifiers_getVirtualModifierList(ob, &virtualModifierData); |