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 /source/blender/blenkernel/intern | |
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.
Diffstat (limited to 'source/blender/blenkernel/intern')
-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) { |