<< 5/6 >>
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のシーンファイルを出力する。
ライトについては適当。スポットライト1つとポイントライト2つの計3つ。
シェーダを書き換えたり、レイトレーシングなど、レンダリングの細かい設定は後で、好きなように調整できる。カメラ位置を調整しながら、3Delightでレンダリング、便利になりました。
メタセコイアから別途、OBJ出力しておかなければならない。オプションはすべてチェックを入れておく。また、テクスチャ画像ファイルは、cgkitシーンファイルと同じところにおいておかなくてはいけない。
OBJMaterialを利用しているので、Viewer.pyでのOpenGLビューワではテクスチャは表示されない。毎回レンダリングすることになります。サクッと表示されるとうれしいですね。後は出力サイズを調整したり、試していくことで勉強になります。
メタセコイア python cgkit出力
metasequoia pythonでcgkitのシーンファイルを出力するテストをしてみる。影や光の具合は、レンダリングして調整していく必要がある。
メタセコイアのサンプル、tankをOBJで出す。三角形化しておく。カメラ位置を決めて、メタセコイアpythonでcgkit出力。3Delightでレンダリングした。
面白くなってきました。ありがとうございます。
occlight
cgkitのスクリプトにアンビエントオクルージョンを設定する。
つながりができてくると、楽しいですね。ありがとうございます。
メタセコイア、obj、python、cgkit、RenderMan、つながってきました。
3Delightでレンダリングです。レンダリング時間かかってきました。
アンビエントオクルージョン
metasequoia pythonからcgkitシーンを出力した。
シーンにAttributeを追加する。レイトレーシング設定などなど
3Delightでレンダリングしました。
rml=RMLightSource(name = "RMLightSource", shader = "occlight")
rml.shader.declare('uniform float samples=128')
w=WorldObject()
w.rib='Attribute "visibility" "trace" [0]\nAttribute "visibility" "transmission" ["opaque"]'
w2=WorldObject()
w2.rib='Attribute "visibility" "trace" [1]\nAttribute "visibility" "transmission" ["transparent"]'
load("tank_test.obj")
objs =['syatai', 'houtou', 'futa', 'gun', 'gunbase', 'hou', 'wheel', 'd_wheel', 'chata', 'obj1']
models = worldObjects(objs)
for i in range(9):
link(models[i],parent=w)
link(models[9],parent=w2)
ちょっとレンダリングが速くなるかな。
Parthenon renderer エラー
メタセコイアのサンプルのtankを三角形化して、別名で保存した。ファイル容量は3491KB。parthenon rendererで読み込みをしようししたが、「ストリームからの読み込みエラー」が出てしまう。過去ログを検索してみたが、テクスチャのサイズを256に変更したとか、ビデオカードのメモリの問題なのかもしれません。別マシンで確認してみないとわからないところ。
Windows7 64bit HPマシンで検証しましたが、tankファイル、、「ストリームからの読み込みエラー」出てしまいます。残念!!
解決策は
こちら(2010,10,10)
別サンプルのmekaをParthenon rendererでやってみました。レンダリング速いですね。
ありがとうございます。
面白いことやってみよー!
Metasequoia pythonとても参考になる記事がありました。いいですね。
メタセコのPythonスクリプトをやってみよー2
http://yattemiyo555.blog133.fc2.com/blog-entry-53.html
勉強になります。ありがとうございます。
最初とまどいました。
1,凸凹地形を作成。
2,凸凹地形の子オブジェクトとして同じ大きさの地形のオブジェクトを配置する。頂点数は減らしておくといい。
3,木をつくる。
4,木を選択状態にする。
5,オブジェクトパネルから凸凹地形を選択してスクリプト実行。しばらくすると出てきます。
以下は、2601個、やられました。
Parthenon redererでレンダリング。
減らしました。
いろいろやってみると楽しいです。ありがとうございます。
面白いことやってみよー!その2
UV座標までは受け渡されていないようで、
これはこれで、また勉強になりそうです。
Metasequoia Python勉強です。Parthenon redererでレンダリング。
面白いことやってみよー!その3
objエクスポート、cgkit、課題はたくさんありますが、
細かい調整はこれから。勉強です。
メタセコイアからobjエクスポート、そしてpythonスクリプトでcgkitファイル出力。AO設定しておいて、3Delightでレンダリングしました。さすがにマシン遅くなります。第9地区つくったソフトだけに、レンダリング面白いです。
ちょっと浮いてますね。さらに精進します。
facevaryingってどうよ!!
import prmanで検索していたら、Syoyo Fujitaさんのページに出会う。ずっと悩んでいたことが、さらりと書いてあった。
以下、引用
Facevarying attribute in PointsPolygons
・・・
要は facevarying が付いていると、vertex index で間接参照されないでパラメータが各頂点に振られるという振る舞いになるようだ.
(0->3->2->1 の順でパラメータ s, t の各要素がアクセスされるのではなく、0->1->2->3 の順でアクセスされる)
ということで、メタセコイアPythonから、PointsPolygonsを出力しようとしていたのですが、st座標のところで、表示が変だし、エラーメッセージ
3DL WARNING P1104: : array of 'float's has wrong size, expected 12 'float'(s), but given 24
と出てしまう。
Declare "st" "facevarying float[2]"
これを宣言しておかなければならないのですね。
ありがとうございます。
後、メタセコイアが右手系なので、
Orientation "rh"
を記述しておきました。
後は、視野変換をきちんと出せるように調整します。
うーん、勉強ですね。
<< 5/6 >>