Rendering学習日記

日々、3DCGの世界は進歩しています。勉強して理解したことをまとめていきます。RenderMan互換レンダラーやグローバル・イルミネーション。いろんなことに好奇心を持って、面白くなる。目指せShader書き!!
ありがとうございます。

Metasequoia Pythonで平面をつくる その2

新規オブジェクトで平面を作っていく。
インデックスが-1
[-1] ドキュメントに登録されていないオブジェクトということでしょうか。
# 基本図形、新規オブジェクトで平面をつくる
doc = MQSystem.getDocument()

obj = MQSystem.newObject() #新規オブジェクト
out = MQSystem.println
out(obj.name)
a=doc.getObjectIndex(obj) #オブジェクトのインデックスを取得

obj.name="plane_%d" % a #オブジェクト名をつける

v = []
v.append( obj.addVertex(200,0,200)) #面の向きはカメラから見て反時計回り
v.append( obj.addVertex(-200,0,200))
v.append( obj.addVertex(-200,0,-200))
v.append( obj.addVertex(200,0,-200))

obj.addFace(v)
doc.addObject( obj )

num = doc.numObject #オブジェクトの数
out("オブジェクトの数 %d" % num)  #オブジェクトの数を表示


-1となるのがわかりました。
doc.addObject( obj )
でシーンにオブジェクトを追加(ドキュメントに登録)した後に、
a=doc.getObjectIndex(obj) #オブジェクトのインデックスを取得
を行えば、aは1となりますね。

obj.name="plane_%d" % a #オブジェクト名をつける

plane_1と表示されます。
オブジェクトのインデックス番号が1なのは、最初にあるobj1がインデックス番号0だからですね。

くりかえしくりかえし、基礎基本の勉強です。
ありがとうございます。
  • -
  • -