Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/blender/blenkernel/intern/anim.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c
index 4b0c89f3a7a..1aed26db48d 100644
--- a/source/blender/blenkernel/intern/anim.c
+++ b/source/blender/blenkernel/intern/anim.c
@@ -726,9 +726,15 @@ static DupliObject *new_dupli_object(ListBase *lb, Object *ob, float mat[][4], i
* 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 @@ static void group_duplilist(ListBase *lb, Scene *scene, Object *ob, int persiste
{
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 @@ static void object_duplilist_recursive(ID *id, Scene *scene, Object *ob, ListBas
}
/* 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 @@ static void object_duplilist_recursive(ID *id, Scene *scene, Object *ob, ListBas
}
/* clear persistent id */
- if(level > 0)
+ if (level > 0)
persistent_id[level-1] = 0;
}