2010年4月13日火曜日

LuxRenderのblender2.5対応エクスポータを試してみた、の続き

というわけでengine_render_lux.pyを試してみます。


1. スクリプトファイルのダウンロード

公式フォーラムのこちらのスレッドからengine_render_lux.pyをダウンロードしてきます。
最初の投稿にあるリンクからダウンロードしたものを使いました。


2. スクリプトファイルのインストール

ダウンロードしたファイルをいつものように.blender/scripts以下にコピーします。
ただし、2.5系ではサブディレクトリが幾つか存在しており、今回のような外部レンダラへの
出力に関するようなファイルはio以下にコピーしておくようです。

というわけで.blender/scripts/io/engine_render_lux.pyという感じにコピーできたら次へ。


3. スクリプトファイルの編集

従来のエクスポータのluxblendでもluxrenderが存在するパスを設定する必要がありました。
今回もパス設定が必要ですが、スクリプトに設定のGUIが無いためファイルを直接編集します。

289行目にある
lux_binary = "/home/daniel/svn/lux/luxrender"
を環境にあわせて書き換えます。OSXでインストーラーの標準設定でインストールした場合は
lux_binary = "/Applications/LuxRender/LuxRender.app/Contents/MacOS/luxrender"
という具合になるかと。
パッケージのLuxRender.appでなく実行ファイルのluxrenderを指定するので要注意です。

また、手元のOSX10.6.3、blender2.52FreeStyle統合32bit版 SVN28134という環境では

71行目の
me = ob.create_mesh(scene, True, 'RENDER')
が引数不一致のエラーになったので
me = ob.create_mesh(True, 'RENDER')
と書き換えました。


4. レンダリング

以上の手順が問題なければ、blenderを起動すると一番上のinfoウインドウのメニューの中で
いつもは"Blender Render"が選択されているドロップダウンリストにLuxRenderという項目が
追加されているはずです。




レンダリングしたいファイルを開いたら、ドロップダウンリストのLuxRenderを選択します。
あとはいつものようにF12キーを押すなりしてレンダリングを始めるとLuxRenderのシーンの
読み込みを示すダイアログが表示され、LuxRenderが起動してレンダリングが始まるはずです。


5. 結果

とりあえず前回のindirect lightingのテストに使ったシーンをレンダしてみました。

が、ここまででLuxRenderを使っている方はお気づきかと思いますが、LuxRender側の設定
(マテリアルや環境光など)を何もしていない、というか出来ない状況です。なので出力結果は
間違って設定を何もせずにレンダした時によく見かける真っ青なものになってしまいます。

30分レンダをまわしてもこんな感じ。




それでもなんとなく画面奥の方に5つの立方体の様なものと、画面中心に四角い台にのった
suzanneらしき物体が確認できるかと思います。一応blenderのメッシュオブジェクトから
LuxRenderのジオメトリへの変換は成功してはいるようです。

ちなみにレンダの進捗状況はblenderのウインドウでも確認することができます。



いつもはLuxRenderのウインドウで見ているレンダの進捗をblenderのウインドウで見るのは
変な感じがしておもしろい。レンダリングの停止や出力画像の保存もblenderのウインドウの
GUIで内蔵レンダラを使用している時と同様に出来ます。

今回使用したスクリプトの中身を見るとLuxRenderをレンダラとして選んだ場合、blenderの
標準のワールドやマテリアルの設定パネルからLuxRender向けに変更しているようなのですが、
設定した値がLuxRenderに渡っていないのかもしれません。

71行目の書き換えはジオメトリデータの書き出し処理への影響だけ(のはず)なのでワールドや
マテリアル設定には影響ないかと思っているんですが・・・。

pythonも一回まじめにやったほうが良さげかも。FreeStyleのスタイルモジュールもpythonだし。


比較のため同じシーンをblender2.49bとluxblendでちゃんと設定して30分レンダするとこんな感じ。



ついでになんとなくレンズエフェクトをいじってみた。
が、少々やりすぎたようで、何かが召喚されてしまいそうな雰囲気にw。特に青が反応しすぎです。





というわけでengine_render_lux.pyのテスト結果はいまいちでしたが、ジオメトリの扱いに
ついてはうまくいっているようです。先行のluxblend25がマテリアルやシーン設定に関して
作業が進んでいるのであれば、お互いに補完してよりよいものができてくれればと思います。

冒頭のスレッドでの開発者のやりとりを見ていると、あとでちょっと体育館裏来い
IRCで情報交換しよう的な流れになっていたので今後の開発状況の加速に期待したいところです。


---------------------------------------------------------------
コメントなどありましたらこちらへ->web拍手