Rendering学習日記

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

matid

各オブジェクトのジオメトリがmatidを持っているかどうかを調べてみた。
なるほど、本家のチュートリアル参考になりました。これでメタセコイアpythonを使って、cgkitのシーン出力できそうです。ありがとうございます。

>>> from cgkit.all import *
>>> load("sample.obj")
>>> listWorld()
Root
+---obj1 (TriMesh/TriMeshGeom)
+---obj2 (TriMesh/TriMeshGeom)
+---obj3 (TriMesh/TriMeshGeom)
>>> objs=["obj1","obj2","obj3"]
>>> model=worldObjects(objs)
>>> model
[, 0x0330E8A0>, ]
>>> for s in model[0].geom.iterSlots():print s
...
N
cog
faces
inertiatensor
matid
st
verts
>>> for s in model[1].geom.iterSlots():print s
...
N
cog
faces
inertiatensor
st
verts
>>> for s in model[2].geom.iterSlots():print s
...
N
cog
faces
inertiatensor
st
verts
>>>
  • -
  • -

matidを確かめる

>>> model[0].geom.hasSlot("matid")
True
>>> model[1].geom.hasSlot("matid")
False
>>> model[2].geom.hasSlot("matid")
False
>>>
  • -
  • -

Metasequoia→OBJ→python cgkit 完成!!

メタセコイアのPythonを使って、cgkitのシーンファイルを作成するスクリプトを作ってみた。メタセコイア・ドキュメント内のオブジェクトは三角形化しておく。カメラ位置を決めて、metasequoia pythonスクリプトを起動。マテリアル数と、オブジェクト数を確認し、カメラ位置を元にcgkitのシーンファイルを出力する。
meka_out2.jpg
ライトについては適当。スポットライト1つとポイントライト2つの計3つ。
シェーダを書き換えたり、レイトレーシングなど、レンダリングの細かい設定は後で、好きなように調整できる。カメラ位置を調整しながら、3Delightでレンダリング、便利になりました。

メタセコイアから別途、OBJ出力しておかなければならない。オプションはすべてチェックを入れておく。また、テクスチャ画像ファイルは、cgkitシーンファイルと同じところにおいておかなくてはいけない。

OBJMaterialを利用しているので、Viewer.pyでのOpenGLビューワではテクスチャは表示されない。毎回レンダリングすることになります。サクッと表示されるとうれしいですね。後は出力サイズを調整したり、試していくことで勉強になります。
  • -
  • -
<< 14/17 >>