Blender是faster with one object,它有一百万个顶点,而不是1000个对象,每个对象有1000个顶点。使用bmesh在一个网格对象中添加多个多维数据集,而不是创建多个多维数据集并将它们连接在一起。在
另一个需要考虑的是use of operators,每个操作符调用都会进行场景更新和重画,通过直接处理网格数据,然后进行一次更新,可以防止大量不必要的更新。在
使用随机颜色而不是ct图像,下面的脚本在大约10%的时间内运行。我也做了更大的立方体,如果初始立方体太小,删除双精度可以合并比你想要的更多,你可以总是缩小后建立网格。在import bpy
import bmesh
import mathutils
import numpy as np
# replace these two lines with your data filling code
x_size = y_size = z_size = 10
data = np.random.rand(x_size, y_size, z_size)
me = bpy.data.meshes.new("Mesh_new")
scene = bpy.context.scene
obj = bpy.data.objects.new("CT_Scan_new", me)
scene.objects.link(obj)
scene.objects.active = obj
obj.select = True
bm = bmesh.new()
for yy in range(y_s