2010/11/02更新

レンダリング界のエッシャー ~前編~

博士課程学生 蜂須賀氏の挑戦と、プログレッシブ・フォトン・マッピング

プログレッシブ・フォトン・マッピング(PPM)
Image Courtesy : Toshiya Hachisuka

上の画像は、現実の照明器具と同様に、小さな光源を反射板およびガラスで囲んで配置したシーンを、PPMを用いてレンダリングした結果を示している。この場合、シーン全体がコースティクスで照らされることになり、従来のレンダリング方法で正確にレンダリングすることは非常に難しい。とくに困難なのは、金属の球に反射する照明や、ガラスの球を通して見える部分のようなSDS効果の計算で、現時点ではこの効果をPPM以外の手法で正確にレンダリングすることは不可能とされている。

「日本でリリースされる記事であれば、Toshiya(恵也)のプログレッシブ・フォトン・マッピング(PPM)に関してもぜひ紹介して欲しい」というJensen氏の意向も考慮し、ここではPPMの効果や今後の発展性に関して、さらに詳しく紹介したい。

PPMでは、フォトントレーシング(フォトンの追跡)を行う前に、視点からのレイトレーシング(レイの追跡)を行い、ラディアンス(放射輝度:ある位置からある方向に向けて放出される光の強度)を算出すべき点(測定点:Measurement Points)を検出しておく。そしてフォトントレーシングのプロセスでは、これらの測定点に向かってフォトンを段階的に飛ばす。各段階において、測定点のラディアンスの計算に必要な情報だけを記憶したのち、フォトンを消し去ってしまうため、メモリの所要量は極めて少なくできる。

また、フォトンを段階的に飛ばすことによって、ラディアンスの計算の精度も改善できる。フォトンを用いたラディアンスの計算では、測定点の近傍に蓄えられているフォトンの明るさをすべて足し合わせる。これはあくまで近似計算なので、近似の精度を高めるためには、より小さな近傍の内部により多数のフォトンを蓄える必要がある。従来のフォトンマッピング法では、ある特定数のフォトンをすべて含みきるまで近傍球の半径を広げていくことで、近傍の大きさを決定していた。この手法の場合、飛ばすフォトン数を増やせれば近傍球の半径は縮まっていくことになるのだが、フォトン数は固定されており増やすことができなかった。これに対してフォトンを段階的に飛ばすPPMでは、段階を追って近傍内に蓄えられるフォトン数が増えていく。さらに、各段階において、たとえばM個のフォトンが増えたとしても、これらM個のうちのある特定の割合だけをキープするように近傍球の半径を設定することで、段階を追って近傍球の半径が縮まっていく。したがってPPMでは、段階を追うにつれて、限りなく小さな近傍球の内部に、限りなく多数のフォトンが存在するという、理想的な状態が実現されていくことになるのだ。

加えて、映像制作に適したグローバル・イルミネーションの条件として、デプス・オブ・フィールド(被写界深度)、モーション・ブラー、アンチエイリアスといった、ピクセルの値をその周囲のピクセルの平均値から求めるような表現において、ノイズが少ないことがあげられるのだが、従来のフォトンマッピング法はこの条件をカバーすることができなかった。しかし、PPMの場合には、段階的にフォトンを飛ばしていく工程で、80年代に考案されたDistributed Ray Tracing(分散レイトレーシング)の考え方を導入することによって、この条件をクリアした。フォトンを飛ばす前に、ある立体角内へ視点からランダムにレイを飛ばしてラディアンスを算出する点を設定しなおし、これらの点に対し、通常のPPMと同様の処理を行う。これにより、ラディアンスを、測定点の周りのある一定領域内で平均化した値に収束させることができる。蜂須賀氏は、このような工夫を加えたPPMを“Stochastic Progressive Photon Mapping”と名付けて、SIGGRAPH Asia 2009で発表した。

PPMを用いた蜂須賀氏の挑戦はまだまだ続いている。フォトンマッピング法で最大の課題となっていたのは、あるシーンを特定の精度でレンダリングするために“どこに”“どれだけ”フォトンを飛ばせばよいのかを、あらかじめ予測できるようにすることだった。フォトンを無駄なく飛ばすことで、メモリ所要量も計算時間も最小限に縮めることができるからだ。“どこに”という課題は、すでにPPMそのものが解決の糸口を作り出している。残された課題は、“どれだけ”という点だ。

今年の12月に開催される、SIGGRAPH Asia 2010で蜂須賀氏が発表する論文は、PPMを部分的に改良し、より高い汎用性をもたせることで、前述の課題解決に相当する方法論を提示している。この方法を用いると、PPMの各段階で、現時点で蓄えられているフォトンを用いた場合のレンダリング結果と、無限の数のフォトンを用いた場合のレンダリング結果との誤差を、高い精度で予測することができる。したがって、あらかじめユーザがレンダリング精度の指標としてこの誤差に上限を与えておけば、PPMの各段階で予測される誤差がこの上限を下回った時点で計算が打ち切られ、様々なフォトン数を用いて何度もレンダリングのテストをすることなく、ユーザが求める精度のレンダリング結果を算出できることになる。従来の手法であれば、フォトン数を用いてレンダリング精度を指定するためには、フォトン数のみならず、それに付随した様々なパラメーター設定が必要だった。これに対して今回の手法では、ユーザが誤差の上限を与えるだけで、必要とされるレンダリング精度に達したと予測されるやいなや、自動的に計算が打ち切られる。従来のフォトンマッピング法では非常に正確なレンダリング結果を出すためには、かなり緻密な設定が必要とされた。このような作業からユーザを解放することも、実用的な見地からは重要な課題とみなさていた。前述の手法は、このようなフォトンマッピング法の欠点を克服するうえでも非常に有効だといえそうだ。

PPMは非常にシンプルなアルゴリズムながらも、従来のフォトンマッピング法が抱かえていた根本的な問題点を次々に解決しつつある。また、グローバル・イルミネーションの効果を算出する手法は、現在までに様々なものが考案されてきたが、それら手法のどれもが困難としたのが、スペキュラー反射→ディフューズ反射→スペキュラー反射という経路(SDSパス:specular-diffuse-specular)をたどった光が作り出す効果の正確な計算だった。PPMは、SDSの効果を正確に計算することを可能にした最初のレンダリング手法でもある。メモリ消費が少なくてすむだけに、GPUとの相性がよいというのもPPMの大きな利点だ。SIGGRAPH Asia 2010のトークセッションでは、GPUを導入したPPMの並列計算に関する蜂須賀氏の講演も予定されている。