我基本上使用原始UV球体构建3D散点图,并且在尝试一次创建超过几百个点时遇到内存问题。我的笔记本电脑配备2.1Ghz处理器,但我想知道是否有更好的方式来写这个:
import bpy
import random
while count < 5:
bpy.ops.mesh.primitive_uv_sphere_add(size=.3,\
location=(random.randint(-9,9), random.randint(-9,9),\
random.randint(-9,9)), rotation=(0,0,0))
count += 1
我意识到,通过这样一个简单的脚本,任何性能提升都可以忽略不计,但无论如何都想给它一个机会。
答案 0 :(得分:2)
一些可能的建议
bpy.ops.object.duplicate_move(OBJECT_OT_duplicate=(linked:false, TRANSFORM_OT_translate=(transform)
编辑:
每次将bpy.ops。*称为重绘功能时,都会进行进一步的研究。一位用户记录了产生紫外球的时间呈指数增长。
CoDEmanX向其他用户提供了以下代码段。
import bpy
bpy.ops.object.select_all(action='DESELECT')
bpy.ops.mesh.primitive_uv_sphere_add()
sphere = bpy.context.object
for i in range(-1000, 1000, 2):
ob = sphere.copy()
ob.location.y = i
#ob.data = sphere.data.copy() # uncomment this, if you want full copies and no linked duplicates
bpy.context.scene.objects.link(ob)
bpy.context.scene.update()
然后只是调整代码来设置对象位置
obj.location = location_dict[i]