« RealityFogとWorldVolume | トップページ | プラグインを作成中 »

LuxRenderのSPPMを使う

LuxRenderに取り込まれる予定である機能に、SPPMというのがあります。SPPMとは「Stochastic progressive photon mapping」の略でして、直訳すると「確率的プログレッシブ・フォトンマッピング」となります。まだ0.8RC3では正式に組み込まれてはいませんが、0.8RC3にSPPMを組み込んでビルドしたものをこちらのページからダウンロードすることができます。

LuxRenderはExphotonmapというフォトンマッピングを用いたレンダリングを行うことができ、特に間接光の多いシーンなどでノイズの少ないレンダリング結果を得ることができます。ところが複雑なシーンなどではフォトンの計算に膨大な時間がかかる上に、ときどきマッピング中にエラーが発生して正しくレンダリングできないことがあるので、少々使うのをためらっていた面もありました。

このSPPMではそのようなことはなく、しかもフォトンマッピングの長所であるノイズの少ない間接光を綺麗にレンダリングすることができます。今回はRealityの出力をSPPMでレンダリングする方法について書きたいと思います。

まずは論より証拠、レンダリング画像で比べてみます。

Sppm2_560spこちらはRealityの出力をそのままレンダリングしたものです。レンダリング開始から30分後の状態で、サンプリング数は560S/pほどです。壁のあたりはだいぶノイズが減ってよい感じなのですが、ガラスの中に置いた人物はまだまだノイズが多いです。


Sppm1こちらがSPPMでレンダリングした画像です。同じくレンダリング開始から30分後のものです。ガラスの中がとても美しくレンダリングされているのがわかると思います。ただし、ディテールがかなりぼやけているのも見て取れます。実はSPPMというのは、最初はこのようにボケボケの画像からスタートして、時間が経過する(パスの回数を重ねる)にしたがって細部がはっきりとしてくるという性質を持っています。


次に、これをRealityから使う方法です。当然ながらRealityでは対応していませんので、lxsファイルを直接編集する必要がありますが、毎回やるのも面倒なので今回もまたスクリプトを組んでみました。

スクリプトのダウンロードはこちらです。(SkyDrive)


Realitysppm_01起動するとこのような画面になります。WorldVolumeと同様に、LuxRenderのシーンファイルであるlxsファイルの場所を指定します。また、その下にLuxRender.exeへのパスを設定する場所があり、ここでLuxRenderを指定しておくと、画面の下にあるRenderボタンを押すことで即座にレンダリングを開始することができます。


各パラメータについては、公式Wikiを参照してください。以下に簡単な説明を書いておきます。

①Max. eye depth

何回目の反射までカメラがとらえるかを指定します。いわゆる鏡面反射の回数ですね。

②Max. photon depth

フォトン(光子)が物体の表面で何回反射するかを指定します。間接光の再現性に影響します。

③Photons per pass

レンダリング1回のパスで何個のフォトンを照射するかを決定します。

④Starting radius

最初のパスで明るさを決定するために、カメラから見たある1点において、周辺のフォトンを探す際の半径を指定します。この半径はパスの回数が増えるごとに縮小してゆきます。最初は半径が大きいので大まかな明るさを決定し、回数を重ねるごとに徐々に細かい範囲で色や明るさが決定してゆくため、これがいわゆるプログレッシブといわれる所以ですね。

⑤Alpha

Starting radiusで決定した最初のパスにおけるフォトン検索半径を、次のパスではどの程度小さくするか、その割合を指定します。Starting radius=2.0でAlphaを0.7と指定した場合、2回目のパスの検索半径は2.0×0.7=1.4となり、3回目のパスでは1.4×0.7=0.98という具合に、だんだん小さくなっていき、それに従って画像の細部がはっきりとしてきます。

⑥Lookup accelerator

"hybrid hash grid"に固定です。

⑦Pixel sampler

レンダリングする際に、どの場所からどのような形で計算していくかを指定します。デフォルトはVegasで、これはランダムな位置を選択して計算をするようになります。

⑨Include environment

チェックを入れると、背景画像も計算に含めるようになります。デフォルトでチェックされていますが、普通はチェックをはずす必要はありません。

以上、簡単な説明でした。SPPMを使ってみると、まだエッジ部分にノイズがのりやすかったりする問題はありますが、おおむね良好なレンダリング結果を得ることができました。LuxRenderに正式に取り入れられるのは、おそらく0.9からになるかも知れませんね。待ち遠しいです。(´∀`*)

|

« RealityFogとWorldVolume | トップページ | プラグインを作成中 »

DAZ Studio Tips」カテゴリの記事

コメント

(ノ)´∀`(ヾ)おぉ♪
 
所々ゴミのような物が散見されますが、時間をかけると消えるのでしょうか?
リアリティな3DCGをレンダリングしたい面々には、かなり魅力的ですね♪
 
(*´▽`*)ノ)) でわでわっ♪

投稿: おサル | 2011年5月13日 (金) 22時27分

おサルさん、コメントありがとうございます。

ゴミのようなものは時間とともに減っていきます。ただし、相当の時間をかけても残ってしまうゴミもあります。これはレンダラーの仕組み上、仕方のないことなんですが、そのためにさらなる時間をかけるよりもポストワークで消してしまったほうが良いです。

とにかく簡単にフォトリアルなCGが実現できますので、機会があれば一度おためしください。新PCの性能を見るにはちょうど良いですよ。(;´∀`)

投稿: とうふ | 2011年5月16日 (月) 21時41分

なかなかいいモデルさんですが、これは何かを相当改造したものでしょうか?できれば私も手に入れたいなと・・・・。差支えなければご教授ください。

投稿: マック | 2011年6月 1日 (水) 06時25分

マックさん、コメントありがとうございます。
このモデルはVictoria4を改造したものでして、形状とモーフデータは私が「Lovely Utopian2 Pixiv版」として配布しているものです。
http://p.tl/i/18303047
使うにはDAZで販売しているV4 Elite Body ShapesのUtopianボディモーフが必要です。テクスチャは付属していませんが、よろしければお試しください。(´∀`*)

投稿: とうふ | 2011年6月 1日 (水) 08時00分

とうふさん、どうもありがとうございます。Pixivでさっそく見つけてダウンロードしました。Elite Body Shapesを近いうちに買って試してみます。

投稿: マック | 2011年6月 2日 (木) 03時40分

コメントを書く



(ウェブ上には掲載しません)




« RealityFogとWorldVolume | トップページ | プラグインを作成中 »