[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [52018] trunk/blender/source/blender/ blenkernel/intern/anim.c: Fix #33082: dupliverted metaball showing wrong in cycles render and metaball

Brecht Van Lommel brechtvanlommel at pandora.be
Fri Nov 9 04:10:16 CET 2012


Revision: 52018
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=52018
Author:   blendix
Date:     2012-11-09 03:10:15 +0000 (Fri, 09 Nov 2012)
Log Message:
-----------
Fix #33082: dupliverted metaball showing wrong in cycles render and metaball
edit mode. I've made it follow blender internal now, but this system should
really be improved once, metaballs that are in linked dupligroups will never
show up.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/anim.c

Modified: trunk/blender/source/blender/blenkernel/intern/anim.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/anim.c	2012-11-09 03:08:02 UTC (rev 52017)
+++ trunk/blender/source/blender/blenkernel/intern/anim.c	2012-11-09 03:10:15 UTC (rev 52018)
@@ -726,9 +726,15 @@
 	 * dupli object between frames, which is needed for motion blur. last level
 	 * goes first in the array. */
 	dob->persistent_id[0] = index;
-	for(i = 1; i < level; i++)
+	for (i = 1; i < level; i++)
 		dob->persistent_id[i] = persistent_id[level-1-i];
 	
+	/* metaballs never draw in duplis, they are instead merged into one by the basis
+	 * mball outside of the group. this does mean that if that mball is not in the
+	 * scene, they will not show up at all, limitation that should be solved once. */
+	if (ob->type == OB_MBALL)
+		dob->no_draw = TRUE;
+	
 	return dob;
 }
 
@@ -781,9 +787,6 @@
 			{
 				dob->no_draw = TRUE;
 			}
-			else {
-				dob->no_draw = FALSE;
-			}
 
 			if (go->ob->transflag & OB_DUPLI) {
 				copy_m4_m4(dob->ob->obmat, dob->mat);
@@ -1643,7 +1646,7 @@
 	}
 
 	/* keep track of persistent id */
-	if(level > 0)
+	if (level > 0)
 		persistent_id[level-1] = index;
 
 	if (ob->transflag & OB_DUPLIPARTS) {
@@ -1690,7 +1693,7 @@
 	}
 
 	/* clear persistent id */
-	if(level > 0)
+	if (level > 0)
 		persistent_id[level-1] = 0;
 }
 




More information about the Bf-blender-cvs mailing list