Out-of-core Data Management for Path Tracing on Hybrid Resources

by syoyo

outofcoredatamanagementforpathtracingonhybridresources_fig7.png
(from Out-of-core Data Management for Path Tracing on Hybrid Resources)

Out-of-core Data Management for Path Tracing on Hybrid Resources
Brian C. Budge, Tony Bernardin, Shubhabrata Sengupta, Kenneth I. Joy, John D. Owens
Eurographics 2009
http://graphics.idav.ucdavis.edu/publications/print_pub?pub_id=957

[Ja]

大規模シーン向けのスケーラブルなパストレアーキティクチャの提案.

Out-of-core と呼ばれる、必要なときだけメモリにデータをロードして有限なメモリ量でも効率良く大規模なデータを処理する手法をパストレにも応用して、スケーラブルなパストレにしてみました, という感じ.

また、GPU も使わなければもったいない(スケーラブルでない!)ということで、
GPU でもレイトレカーネルを CUDA で実装してより異種混合プロセッサの構成でもスケールするようにしています.

GPU でのレイトレですが、レイトレコアは CPU の 6-12 倍とありますが、
システム全体でみるとレンダリング時間は CPU と CPU + GPU との構成比較で 2-3 倍程度しか違いがないように見えます.
もちろんレイトレ処理だけがレンダリングのすべてではないのもありますが、
CPU が GPU での処理結果をサバき切れてないだけなのかもしれません.

GPU で処理を行う場合は、データをあらかじめ明示的に GPU 側に転送しなくてはいけないのですが、
そのような処理もスケーラブルパストレのフレームワークの中で実現しています.

なぜパストレをアルゴリズムとして選んだかというと、パストレが基本的に incoherent なアルゴリズムだから,
これがスケーラブルにできるのであれば意義があるからだそう.

論文からの上記の図は, なにも考えていないパストレ(standard)だとすぐに破綻してレンダリング時間がシーンサイズに指数関数的に比例するのが、
スケーラビリティを考慮したパストレならレンダリング時間がほぼシーンサイズに線形に比例していることを示しています.
(standard(無限大)はいまいち何なのか不明)

RenderMan だと数日、スケーラブルパストレなら 2 時間だぜ

スケーラブルであることの比較として、
240 M 三角形(2 億三角形)相当のシーンを RenderMan と提案されているパストレとでレンダリングし、
RenderMan だと 2 CPUs で数日かかるのが、提案するスケーラブルなパストレだと 1 CPU + 1 GPU の構成で
2 時間で終わったと報告しています.

RenderMan 野郎なら、「いや、RenderMan(reyes) も最適化すればもっと早くレンダリングできる!」
と言うかもしれませんが、しかしやはり RenderMan の古典的アーキティクチャ(reyes)がそろそろ
シーンの複雑性に追いつけなくなってきているということを示しているような気がしています.
そして逆に、シーンが複雑になるほど、スケールしやすいレイトレがだんだんと適合してくると.

やはりゲームもオフラインレンダラも、将来はレイトレが基礎のレンダリング技法になることは間違いないように思えます.

Advertisements