電子竹林:Blog2

Tech関係、はてなダイアリーから移転済み...

BlenderのPython処理スピードに関する下調べ その2

概略

  • bpy.ops.mesh.primitive_xxx_add、それぞれについてスピードを見てみる…が、予想通りメッシュ数に比例な感じ

詳細

  • cube以外の他のmesh.primitiveについても、次のように実行してスピードの違いを見てみる
import bpy
import time
def addOps200Time(addOps):
  ''' return sec for 200 times bpy.ops.mesh.primitive_xxx_add '''
  bpy.ops.object.select_all(action='SELECT')   
  bpy.ops.object.delete(True) # delete all
  start = time.time()
  for z in range(0,10,5): # x2
    for y in range(0,40,4): # x10
      for x in range(0,40,4): # x10
        addOps(location=(x,y,z))
  return(time.time()-start)

print(addOps200Time(bpy.ops.mesh.primitive_cube_add))
print(addOps200Time(bpy.ops.mesh.primitive_cylinder_add))
print(addOps200Time(bpy.ops.mesh.primitive_ico_sphere_add))
print(addOps200Time(bpy.ops.mesh.primitive_uv_sphere_add))
print(addOps200Time(bpy.ops.mesh.primitive_cone_add))
print(addOps200Time(bpy.ops.mesh.primitive_torus_add))
print(addOps200Time(bpy.ops.mesh.primitive_monkey_add))
'''

f:id:zom-1:20191225145754p:plain:w400

  • 結果として立方体 4.48 s、円柱4.99 s、ico球 4.93 s、UV球 6.81 s、 三角錐 3.00 s、ドーナツ 5.97 s、猿 5.19 sとこれは単にメッシュ数とほぼ比例関係か。
  • あんまり意味なかったが、サイズや回転や拡大のオペレーションはどの位の時間かかるかはちょっと気になる。