在搅拌机中快速添加大量网格图元

时间:2018-02-16 00:06:12

标签: python blender

我正在尝试使用其Python接口将数万个网格基元添加到blender中的场景中。我一直在使用以下效果:

for i in range(10000):
    bpy.ops.mesh.primitive_cube_add(radius=1, location=(i, i, i))

但这种方法需要很长时间。有没有更有效的方法呢?

1 个答案:

答案 0 :(得分:1)

bottom

在我的机器上花大约15秒钟。如果您不需要具有唯一的多维数据集(即,不打算单独修改其几何),则可以将同一网格附加到多个对象。有可能更快的方法,如创建单个网格和点云,并使用dupliverts(在点云的每个顶点复制子对象)。

只有点和dupliverts的例子(正如预期的那样,片刻完成,但当然不是一回事):

import bpy
from mathutils import Vector;

n = "cube";
bpy.ops.mesh.primitive_cube_add(radius=1);
orig_cube = bpy.context.active_object;

for i in range(10000):
    m = orig_cube.data.copy();
    o = bpy.data.objects.new(n, m);
    o.location = Vector((i, i, i));
    bpy.context.scene.objects.link(o);

bpy.ops.object.delete();