Lux Renderを試す

LuxRenderはマルチプラットホーム対応の、物理的正確さを売りにしたGIレンダラです。
最近商用化が告知されて話題のindigoや、いち早く商用化して定評のあるMaxwellなどに相当する物です。
(GIレンダラには珍しく)GPL3ライセンスで開発・配布されており、Blenderからの書き出しも比較的手軽です。

今回、Mac OS X上でBlenderからLuxRender0.6RCを利用してみたので、経緯や実行例などをご紹介してみたいと思います。
Linuxの方は、下記のサイト「SUGOI KINOCO」様のインストレーションノート(http://skinoco.opal.ne.jp/note/luxrender.htm)が参考になるでしょう。


Blender Internal(内蔵レンダラ)との違い

GIレンダラにもいろいろ種類がありますが、Physics Basedな特性はBlender内蔵レンダラやyafarayとは全く違った仕組みと言えるでしょう。
Blender内蔵レンダラは基本的にスキャンライン・レンダラーの上にレイトレーシングを追加し、Ambient Occulusionなどを追加しつつもフェイク・レンダリングの汎用性を重視し続けています。ノード・ベースのトリックなど、高い汎用性を持っていますが、フォトリアルな表現のためには試行錯誤と熟練の技が必要になります。とくに、マテリアルの調整時にはシェーダやカラーカーブなどを緻密に弄らなければなりません。

Blender内蔵レンダラの利点をまとめれば、理解した人が作り込めば、可能な限り少ないレンダリング時間に抑えつつ表現効果を発揮できるという点と、表現の汎用性(トリック表現やフェイク処理、ノンフォトリアルな表現などを含む)が高いという点でしょう。

LuxRender(及び他の物理的正確さを謳うレンダラ)には、真逆の性質があります。
ライトは置くだけで物理的正確な計算を行おうとし、マテリアルには物理的に正確な演算に必要な設定項目しかありません。
その代わり、レンダリングに要する時間は比較になりません。全てのシーンが「メトロポリス光輸送」レンダリングで処理されます。

このレンダリング手法はunbiased(バイアスのない)手法としても知られており、レンダリングを開始すると始めはただのノイズのような状態が描かれ、レンダリングが進む度にノイズが収束していくという面白い特性も持っています。同様のレンダラのほとんどが、レンダリングの途中で一時的に中断し、あとで再開するというような機能を実装しています(それだけ重たい処理であるということでもある訳ですがw)。

YafarayもGIレンダラの一種ですが、「フォトンマッピング」によるGIなので、少々毛色が違う特性を持っています(フォトンマッピングによるレンダリングを主とするレンダラの多くは「物理的に正確」とは謳っていません。もちろんこれは優劣ではなく特徴が違うという事になります)。
また、yafarayはかつてBlenderのマテリアル設定をなるべく流用できるようにしていた事で親和性に定評がありましたが、最新バージョンでは改変点が多かったのか、かつてのBlenderとの親和性が少々失われています。

BlenderからLuxRenderを使う

LuxRender自体は別アプリケーションですが、はスクリプト一発でBlenderから呼び出せます。また、XSIやMaya用のExporterも存在しています。
まずは導入手順を紹介。
・LuxRender0.6RCを入手、インストール
・インストール時にBlender標準パスと違う場合にはその旨が警告されるので、必要であればpythonプラグインblenderスクリプトフォルダに放り込む
BlenderレンダリングメニューにLuxRenderへのexporter「LuxBlend」が追加されるので実行
・インストール時にBlender標準パスと違う場合には、LuxRenderのパス設定が必要になるのでSystemタブから設定、同systemタブ下部にある「Save Default」で保存。必要であればワーク用ディレクトリも設定しておくと混乱がないと思います。

引き続き、レンダリング実行テストまで。
BlenderレンダリングメニューからLuxRender exporterを選択
・systemタブ中の「convert all blender materials」を実行
・outputタブから解像度などを設定
レンダリング開始→LuxRenderが立ち上がる
・待てば待つほどノイズが取れて絵になってくるので、その様子を見つつTonemapやLens Effects、Noise Reductionを調整
・満足行く程度にノイズがなくなったら保存

特にLens Effectが楽しいです。内部的に光学的な情報を保存しているので、あとからVignetting(レンズ口径食)やC.Abberation(色別の収差)やグレアなんかを調整できます。

・10分くらいの状態

・1時間経ってノイズリダクションとグレアを調整したバージョン

なんか煙草で煙たそうな空気感になりましたwフォトリアル目指すにはまだまだ調整が必要そうです。

ちなみに、書きがBlender内蔵レンダラで出力した例となります。
同一シーンなのに、LuxRenderではマテリアル設定が一部失われてたり、別解釈されてる所が見られます

Blenderのマテリアル設定はあくまでBlender Internal用の設定値なので、変換は完璧ではないですからそのままリアルになる訳ではありません。前バージョンの0.5では変換機能自体がなかったので、かなり良い感じの進化だと思います。
exporterスクリプトの進化に期待したいところです。


・感想

シミュレーション系レンダラーが気軽に使える事に感動しました。今後とも、マテリアル設定やリアルに見せる方法などをいろいろ遊んでみたいと思います。
待ち時間が長いのが難点ではありますが、趣味でCGやってる身にはヘでもありませんw
レジューム機能が特に素晴らしいと思います。寝る前や出かける前にレンダリング押してわくわくするような遊び方ができますね。
(※追記:レジューム失敗しました……なんで保存したFLMファイルをresumeで開けないんだよ……orz 開発バージョンだからかもしれないので、ちょっと本格的なレンダリングは様子見かも。。)

標準レンダラやGLSLで遊ぶのとはまた別角度の楽しさだと思います。
以前からindigoを愛用されている方もいましたが、Windowsオンリーなのがネックでした。いやまあ、仮想環境で愛用してたんですが、やはりOSXネイティブで動くバージョンがあるとメイン環境の制約がなくなって助かります。

また、残念ながらをのindigoが商用化するとのことなので、今後Blender界隈ではGPLなLuxRenderが注目されるかもしれないなと思います。
一度GPL化したものを取り下げるのってすごい困難らしいから、商用化の心配はない……はず……だといいな……w