[Bf-blender-cvs] [5e55fc2] master: Fix T40051: Inconsistent dupli vert/face handling of group member types

Campbell Barton noreply at git.blender.org
Wed May 7 09:12:08 CEST 2014


Commit: 5e55fc21b78a9a6070b951bccf10a539b06f8e97
Author: Campbell Barton
Date:   Wed May 7 17:11:33 2014 +1000
https://developer.blender.org/rB5e55fc21b78a9a6070b951bccf10a539b06f8e97

Fix T40051: Inconsistent dupli vert/face handling of group member types

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

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

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

diff --git a/source/blender/blenkernel/intern/object_dupli.c b/source/blender/blenkernel/intern/object_dupli.c
index 30e2cc2..84e626a 100644
--- a/source/blender/blenkernel/intern/object_dupli.c
+++ b/source/blender/blenkernel/intern/object_dupli.c
@@ -301,6 +301,18 @@ static void make_duplis_group(const DupliContext *ctx)
 		if (go->ob != ob) {
 			float mat[4][4];
 
+			/* Special case for instancing dupli-groups, see: T40051
+			 * this object may be instanced via dupli-verts/faces, in this case we don't want to render
+			 * (blender convention), but _do_ show in the viewport.
+			 *
+			 * Regular objects work fine but not if we're instancing dupli-groups,
+			 * because the rules for rendering aren't applied to objects they instance.
+			 * We could recursively pass down the 'hide' flag instead, but that seems unnecessary.
+			 */
+			if (for_render && go->ob->parent && go->ob->parent->transflag & (OB_DUPLIVERTS | OB_DUPLIFACES)) {
+				continue;
+			}
+
 			/* group dupli offset, should apply after everything else */
 			mul_m4_m4m4(mat, group_mat, go->ob->obmat);




More information about the Bf-blender-cvs mailing list