RESEARCH 2:マルコフ連鎖モンテカルロ法
・研究背景
前述したように、光の伝搬シミュレーションでは、光源から出てカメラや目に届く、全ての光の経路を計算します。もちろん、そのような光の経路は実際には無限に存在するため、コンピュータ上でシミュレーションする際には、限られた計算時間の中で、なるべく多くの光の経路を扱うことが重要になります。モンテカルロ積分であっても密度推定法であっても、通常、そのような経路はランダムに生成されます。計算時間が無限にあれば、ランダムに生成したとしても、いずれは全ての経路を網羅するだろうと期待できます。しかしながら、実際には計算時間は有限のため、ランダムに生成するのは実はあまり効率が良い方法とは言えません。例えば、小さな窓から光が入り込んでいるような部屋の中の画像を計算したいとします。ランダムに経路を生成すると、ほとんどの場合、窓を通過する経路は生成されず、画像の計算に直接関係のない経路が大量に生成されることになり、計算時間が大幅に無駄になります。本研究では、そのようなケースにおいて計算に有効な経路を自動的に生成するため、マルコフ連鎖モンテカルロ法を用いた光伝搬シミュレーションについて研究しました。
・主な先行研究
光の経路をランダムに生成する方法は、モンテカルロ法とも呼ばれ、現在の光伝搬シミュレーションで主流となっている方法です。しかしながら、前述のように、ランダムに生成された光の経路は、画像の計算に常に有効とは限りません。これを解決する方法のひとつとして、例えば、光が通過する可能性が高い窓がどこにあるかなどをアーティストが指定する、「ポータル」と呼ばれる方法がありますが、シーンごとに手作業での指定が必要であり、アニメーションなどの制作時には非効率的です。そこで、光の経路が実際に画像にどれくらい寄与するかを自動的に考慮し、寄与する光の経路だけを集中して生成する様々な方法が研究されており、その中のひとつとして、マルコフ連鎖モンテカルロ法があります。
・研究内容、研究方法
マルコフ連鎖モンテカルロ法では、モンテカルロ法とちがい、光の経路を逐次的に生成します。例えば、窓を通過するような、とある光の経路がわかっていたとします。モンテカルロ法では、この情報は無視され、次に生成する経路は完全にランダムです。一方で、マルコフ連鎖モンテカルロ法は、この窓を通過することがわかっている光の経路を「少しだけ」変更することで、次の新たな光の経路を計算します。窓を通過する経路から「少しだけ」しか変更がないので、そのような新たな光の経路も、再び窓を通過する可能性が高いと考えられます。これを何度もくり返すことで、窓を通過する経路を集中的に生成することができます。ここで難しい点は、「少しだけ」変更した経路が、また有効な経路となるように上手く変更方法を設計することです。本研究では、その点に注目しています。
▲モンテカルロ法【上段】とマルコフ連鎖モンテカルロ法【下段】の比較。太陽光が外から入ってくる部屋をレンダリングする場合、モンテカルロ法では、生成されたほとんどの経路は部屋の外側に位置することになり、画像の計算誤差として見えることになります。マルコフ連鎖モンテカルロ法を使うと、同じ計算時間であっても、画像の計算に有効な、部屋の中に入る光の経路を集中的に生成することができるようになり、それぞれの計算時間でモンテカルロ法よりも正確な結果が得られます
▲照明の詳細なパターンにズームする場合も、マルコフ連鎖モンテカルロ法を使うと、モンテカルロ法よりも正確な結果が得られます
・研究の新規性
本研究室では、このテーマに関するいくつかの研究成果があります。本記事では、そのうちのひとつについて紹介します。マルコフ連鎖モンテカルロ法で、すでにわかっている経路を「少しだけ」変更する方法として、経路を生成するための関数に与える引数の値を変更する方法と、光の経路を直接変更する方法との、2つが研究されてきました。これまで、その2つの方法は完全に別の方法だと考えられており、マルコフ連鎖モンテカルロ法を使う場合は、どちらかを選んで計算を実行する必要がありました。ところが、それぞれの方法で効率良く計算できるケースがちがうことが知られており、使い分けが非常に難しいという問題がありました。
そこで、2つの方法の間を数学的に結びつける枠組みを考案し、2つの方法を自由に組み合わせた計算を可能にする方法を開発しました[1]。これにより、従来別のものと考えられていた2つの方法の関連がクリアになり、マルコフ連鎖モンテカルロ法における従来の研究の多くをひとつの枠組みに統合することができました。
▲光の経路を生成する関数の引数を変更する方法【左】では、金属の反射による光の経路を効率的に捉えることができる一方で、ざらざらした材質に到達する光の経路は効率良く計算できません。対照的に、光の経路を直接変更する方法【中】では、ざらざらした材質に到達する光の経路を効率良く計算できる一方で、金属の反射による光の経路は効率良く計算できません。これまで2つの方法は別々のものと考えられてきましたが、本研究【右】ではそれらを初めて数学的に統一し、両方のケースで効率の良い計算ができるようにしました
・制作現場での実用の可能性
マルコフ連鎖モンテカルロ法は、ランダムに経路を生成すると計算時間が無駄になるケースにおいて、自動的かつ効率的な経路生成を可能とします。現在のところ、映像制作の現場では従来のモンテカルロ法が主流であり、例えば窓から入る光の経路を生成するケースでは、光が入る窓の位置を手作業で指定するか、計算効率が悪いことを承知の上で指定する作業を省いて計算するか、といった選択肢に限定されてしまうことが多いようです。この問題を根本的に解決する可能性がある、おそらく現時点で唯一の方法がマルコフ連鎖モンテカルロ法です。後述する問題が解決すれば、映像制作の現場での普及が進み、多くの実用的なケースで計算効率の大幅な向上が期待できます。
・今後の課題
マルコフ連鎖モンテカルロ法では、経路を少し変更して次のものを生成する、という方法の性質上、生成された経路同士が似通ったものになることがあります。十分に計算時間があれば、全体として、十分にちがった経路が生成されることは理論的に保証されていますが、実用上は、限られた計算時間の中で、なるべくちがう経路を多く生成することが重要です。この問題は、例えば限られた計算時間では、たくさんある窓の中のひとつしか経路が生成されないといった問題につながり、マルコフ連鎖モンテカルロ法の実用化に際しての、重要な課題となっています。
・参考文献
[1]Hisanori Otsu, Anton S. Kaplanyan, Johannes Hanika, Carsten Dachsbacher, Toshiya Hachisuka, "Fusing State Spaces for Markov Chain Monte Carlo Rendering", ACM Transactions on Graphics(SIGGRAPH Asia 2018)
info.
-
月刊CGWORLD + digital video vol.255(2019年11月号)
第1特集:僕たちがBlenderを使う理由
第2特集:アニメCG×ゲームエンジン
定価:1,540円(税込)
判型:A4ワイド
総ページ数:128
発売日:2019年10月10日
cgworld.jp/magazine/cgw255.html