diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-04-03 16:37:30 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-04-03 16:38:17 +0300 |
commit | b1995e645177fa7f5f5ef8d5c7596cd037dbcc30 (patch) | |
tree | 26ceef51d9ec18955d4edd3bbec94c3daeebdd2e | |
parent | 2f8b7030d439644bab94fe601066e7a1c848367a (diff) |
Fix T63217: Curve Modifier skipped in Cycles
Only mesh objects have all modifiers applied on the evaluated
object's data, other object types are to apply modifiers during
the conversion process.
-rw-r--r-- | source/blender/blenkernel/intern/mesh_convert.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/mesh_convert.c b/source/blender/blenkernel/intern/mesh_convert.c index f9ab61f1a31..664698afa38 100644 --- a/source/blender/blenkernel/intern/mesh_convert.c +++ b/source/blender/blenkernel/intern/mesh_convert.c @@ -872,7 +872,16 @@ Mesh *BKE_mesh_new_from_object( Object object_for_eval = *object_eval; if (object_eval == object_input) { - effective_apply_modifiers = false; + /* Evaluated mesh contains all modifiers applied already. + * The other types of object has them applied, but are stored in other + * data structures than a mesh. So need to apply modifiers again on a + * temporary copy before converting result to mesh. */ + if (object_for_eval.type == OB_MESH) { + effective_apply_modifiers = false; + } + else { + effective_apply_modifiers = true; + } } else { if (apply_modifiers) { |