[Bf-blender-cvs] [b1995e64517] master: Fix T63217: Curve Modifier skipped in Cycles

Sergey Sharybin noreply at git.blender.org
Wed Apr 3 15:38:23 CEST 2019


Commit: b1995e645177fa7f5f5ef8d5c7596cd037dbcc30
Author: Sergey Sharybin
Date:   Wed Apr 3 15:37:30 2019 +0200
Branches: master
https://developer.blender.org/rBb1995e645177fa7f5f5ef8d5c7596cd037dbcc30

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.

===================================================================

M	source/blender/blenkernel/intern/mesh_convert.c

===================================================================

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) {



More information about the Bf-blender-cvs mailing list