RESEARCH 1:Progressive Photon Mapping
・研究背景
写実的な画像をコンピュータ上で生成する最も自然な方法として、現実世界での光の伝搬の様子をコンピュータ上でシミュレーションし、カメラや目に届く光の強さを計算する方法があります。これを行うには、ライトや太陽などの光源から出た光が、物体に当たって反射・散乱・屈折し、最終的にカメラや目に届くまでに、光の強さがどのように変わるかを計算する必要があります。この計算の難しさのひとつは、光源から出た光がカメラや目に届くまでの光の経路には、反射・散乱・屈折の回数や、それらが起こる位置などによって、ありとあらゆる可能性があるため、それらをできる限り網羅する必要があるという点です。本研究では、従来のいずれの方法でも、ある特定の(しかし日常的に起こる)経路のパターンを網羅することができないという問題に注目し、それらを世界で初めて扱える光伝搬シミュレーションの方法を開発しました。
・主な先行研究
光伝搬シミュレーションで最もよく使われる方法として、モンテカルロ積分という数値計算の方法があります。これは、全ての光の経路を網羅するという問題を、積分の問題として定式化しなおし、その積分を数値計算によってコンピュータ上で解くアプローチです。モンテカルロ積分は、光の経路をランダムに生成し、それを何度もくり返して多数のランダムな経路をまとめることで、近似的に全ての光の経路を網羅するというアイデアに基づいています。計算時間を増やせば、それだけたくさんの経路を考慮することが可能になり、計算時間に応じてより正確な結果が得られる特徴があります。この方法は近年の映画などでも盛んに使われており、様々なケースで効果を発揮します。しかし、ガラスや金属の反射、レンズによる屈折と、LEDや電球などの照明が同時に存在すると、モンテカルロ積分におけるランダムな経路の生成では、たとえ無限に計算したとしても、全ての光の経路を網羅できないことが知られていました。前述の要素を含む画像を生成しようとすると、異常に暗い画像が生成されるなどの問題が起きます。これは本質的に解決できない問題だと考えられていて、実用の際にはそのような問題が起こらないようアーティストが調整をくり返すか、もしくは問題があることに気づかない場合もありました。
・研究内容、研究方法
本研究では、モンテカルロ積分ではなく、別の方法として存在していた密度推定法に注目しました。この方法では、光の経路の密度を計算すると、それがそのまま光の強さになるという事実に基づいて光伝搬シミュレーションを行います。密度推定法は、金属の反射やレンズによる屈折などがあっても、全ての光の経路を網羅できるという特徴があります。しかし、密度推定法で正確な計算をするためには、理論的に無限の計算量とメモリ消費量が必要なことが知られており、正確な計算をするための方法としては捉えられていませんでした。・研究の新規性
本研究では、密度推定法の根本的な問題を解決する、新たな密度推定法の枠組みである「漸進密度推定法」を開発しました。漸進密度推定法は、正確な計算が必要な場合でも、メモリ消費量を一定に保てる新たな理論を提案しており、モンテカルロ積分と同様に、計算時間を増やすだけで、より正しい計算結果が得られます。漸進密度推定法によって、ガラスや金属の反射、レンズによる屈折と、LEDや電球などの照明が同時に存在するようなケースにおいて、世界で初めて、全ての光の経路を網羅した正確な光伝搬シミュレーションを行うことが可能になりました。提案した方法は、Progressive Photon Mapping[1][2]と呼ばれ、そこから派生した方法も含めると、500件以上の論文からの引用があり、光伝搬シミュレーションの新たな枠組みとしての研究が進んでいます。本記事の執筆時点でも、全ての光の経路を安定して扱える唯一の方法であり、結果の妥当性を検証するための参考となる計算方法として使われています。ところで、密度推定法は、CG特有の方法ではなく、統計計算の分野で長い歴史があります。しかしながら、メモリ消費量の問題にはあまり注目されておらず、漸進密度推定法は、統計計算の方法としても新しいものと言えます。したがって、単に光伝搬シミュレーションでの応用に限らず、密度推定法が必要な多くの問題に適用可能であると考えています。
▲Progressive Photon Mappingとそれまでの光伝搬シミュレーションの手法の比較。ガラスのランプの中に光源があり、それが部屋全体を照らしているシーンのレンダリングを行なった結果です。【上】の3つはモンテカルロ積分に基づく手法で、ガラスのランプを通過するはずの光が極端に暗いことがわかります。【左下】は従来の密度推定法を使った計算で、ガラスのランプを通る光も含めて、全体的に上手くいっているように見えますが、拡大画像を見ると、詳細がぼけてしまっているのがわかります。【右下】はProgressive Photon Mappingの計算結果で、モンテカルロ積分と同じ計算時間で、メモリ消費量の限界に影響されることなく、精度の良い計算結果が得られていることがわかります
▲3個の時計がデスクランプによって照らされており、カメラによるボケが発生しているシーンを、同じ時間で計算しています。モンテカルロ積分を用いた【左】は、全体的に上手く計算できていません。Progressive Photon Mappingを用いた【中】は、照明は上手く計算できていますが、ボケの計算の精度は十分ではありません。Progressive Photon Mappingを拡張した、Stochastic Progressive Photon Mappingを用いた【右】は、複雑な照明とボケの組み合わせを上手く計算しています
・制作現場での実用と、今後の課題
Progressive Photon Mappingは光の経路を全て扱えるため、照明の正しい計算が必要な場面や、ガラスや金属による反射・屈折によって生まれる複雑かつ綺麗な光のパターン(コースティクス)を計算する場合に、ほぼ必須となる技術です。例えば、テーブルの上のコップが、電球からの光に照らされている、というだけで、Progressive Photon Mapping以外の方法では、正しい画像は計算できません。世界中の映像制作現場で使われているRenderManにも、Progressive Photon Mappingとモンテカルロ積分を統一した後続の方法であるVertex Connection and Merging / Unified Path Sampling(これもわれわれの研究成果のひとつです[3])が実装されています。
モンテカルロ積分に比べて大きなメリットがある漸進密度推定法ですが、デメリットのひとつとして、モンテカルロ積分だけで簡単に計算できるケースでは、漸進密度推定法の方が、やや計算効率が悪いという問題があります。前述のVertex Connection and Merging / Unified Path Samplingでは、モンテカルロ積分と漸進密度推定法の自動的な使い分けに成功していますが、それでもまだ個別の方法だけで簡単に計算できる場合には計算効率が下がるため、それを解決することが大きな課題のひとつです。
▲Unified Path Samplingでは、【左】モンテカルロ積分と、【中】密度推定のそれぞれにおいて、最も効率的に計算できる光の経路を自動的に特定し、それらを組み合わせて【右】最終的な画像を計算することができます。この方法は、数学的には、モンテカルロ積分と密度推定をひとつの定式化によって表すことで達成されます
・参考文献
[1]Toshiya Hachisuka, Shinji Ogaki, Henrik Wann Jensen, "Progressive Photon Mapping", ACM Transactions on Graphics(SIGGRAPH Asia 2008)
[2]Toshiya Hachisuka, Henrik Wann Jensen, "Stochastic Progressive Photon Mapping", ACM Transactions on Graphics(SIGGRAPH Asia 2009)
[3]Toshiya Hachisuka, Jacopo Pantaleoni, Henrik Wann Jensen, "A Path Space Extension for Robust Light Transport Simulation", ACM Transactions on Graphics(SIGGRAPH Asia 2012)