このスクリプトを実行すると:
import bpy, time
t0 = time.time()
for i in range(1000):
bpy.ops.mesh.primitive_uv_sphere_add()
if i % 100 == 0:
print(time.time()-t0)
t0 = time.time()
これは出力です(指数関数的成長対時間):
1.1920928955078125e-05
0.44658803939819336
0.46373510360717773
0.5661759376525879
0.7258329391479492
0.9994637966156006
1.381392002105713
1.8257861137390137
2.4634311199188232
3.2817111015319824
なぜこれが起こるのですか?より良いアプローチはありますか?
十分なメモリを備えたサーバーでこれを実行していますが、Blender が拡張してそのほとんどを使用できることを知っています (レンダリングで使用します)。