2010年7月17日土曜日

Stochastic Progressive Photon Mappingについて調べてみた

SmallLuxGPUで利用できるインテグレータはLuxRenderでお馴染みのdirect、pathに
加えて、Stochastic Progressive Photon Mapping(SPPM)というのがあります。
blender.jpでSmallLuxGPUが取り上げられた際の記事では”新しいレンダリング技術”
として紹介されています。

現在のLuxRenderでは名称こそexphotonという妙な名前になっていますがPhoton Mapping
が利用可能です。(ちなみにexphotonはexperimental photon mappingの略らしい)


となると、気になるのが普通のPhoton MappingとSPPM、何が違うのか?というところ。
"stochastic"の意味を調べてみると"確率的、確率論的"という意味らしい。
となるとSPPMは"確率論に基づく漸進的Photon Mapping"という感じでしょうか。

LuxRenderのフォーラム等ではSPPMと記載されている場合も多く見受けられるので
こんな感じでググってみたところ、どうやらこの論文(pdf)が出典らしい。
さらにこんなもの(pdf)も発見。

最初の論文は英語だけど、後のは日本語で昨年2009年末のシーグラフアジアに関する
記事の抜粋ぽい。詳しくは分からないが通常のPhoton Mappingとdistributed pathを
組み合わせたような手法のような・・・?

論文の図や記事の写真を適当に眺めた限りでは、従来の手法よりも効率がよく、品質や
処理速度が改善されているという印象。で論文の著者をみるとToshiya Hachisukaさんと
言うかたらしい。

名前でさらにググってみると検索結果にこんなサイトが。

なにかどこかで覚えのあるサイト名だなぁと思ってみてみると・・・

HachisukaさんてParthenonレンダラの中の人だったのか!

昔ビデオカードにプログラマブルシェーダが実装され、GLSLやnVidiaのCgなどが
出始めた頃に、上記のサイトからParthenonレンダラをはじめとするいろんなサンプルを
ダウンロードさせていただいてました。そりゃ見覚えがあるわけだ。
GPGPUにより、いままで見たことの無いスピードでシミュレーションやレンダリングが
すすんでいく様はとても強く印象に残っています。

現在もちょこちょこと更新されているようで、PPMやSPPM開発の過程や128行のソース
のProgressive Photon Mappingが公開されていたりと非常に興味深いものになっています。
直接LuxRenderの開発に関わっているわけではない(はず)ですが、これはSPPMには
期待せざるを得ない感じです。


次期LuxRenderのv0.8では、現在SmallLuxGPUでテスト中のLuxRaysライブラリによる
GPGPU対応が一つの大きな案件になっています。GPGPUと合わせてSPPMの導入も
予定に含まれているようです。またネットワークレンダリングのフレームワークである
LuxFireの統合に向けた試みもすでに始まっています

GPGPU対応ということでハイエンドのビデオカードが必須になるのではないか、と心配
な方もいるかもしれませんが、従来のLuxRenderと同様にCPUのみによるレンダリング
モードも用意されるようですので一安心といったところでしょうか。

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