超雑訳 A Scalable Real-Time Many-Shadowed-Light Rendering System (1)

こんこよー。
Pocolです。

今日は…
[Li 2019] Bo Li, “A Scalable Real-Time Many-Shadowed-Light Rendering System”, SIGGRAPH 2019 Talks, https://history.siggraph.org/learning/a-scalable-real-time-many-shadowed-light-rendering-system-by-li/.
を読んでみようと思います。
いつもながら誤字・誤訳があるかと思いますので,ご指摘頂ける場合は正しい翻訳例と共に指摘していただけると有難いです。


※図は,[Li 2019]より引用

ABSTRACT

本論文では、大規模な仮想環境における大量の影付きライトをサポートし、メインストリームGPU上でリアルタイム性能を実現するために、多くの斬新な設計を施した新しい影レンダリングシステムを紹介します。

1 INTRODUCTION

仮想環境において影を落とす多数のライトをサポートすることは、最新のゲームエンジンやレンダリングシステムを使用しても、依然として難しい問題です [Eisemann et al. 2011]。 UnrealEngine4 などの一般的なゲームエンジンでは、現在のところ、現行ゲーム機で数十個のダイナミックシャドウライトを超える拡張性はありません。また、多くの AAA ゲームエンジンは、オーバーラップするライトチャンネルやパフォーマンス上の理由などの技術的な制約により、シャドウライトの配置方法に制限を課しています。ライトマップのようなベイク方法は、動的な相互作用がないか、またはパフォーマンスに大きな影響を与えながら処理されるため、ライティングワークフローにさらに多くの制限を生み出します。さらに、ライトマップはレイマーチや他のビュー依存のボリューメトリック効果をサポートしません。
 先行研究[Doghramachi 2015][Olsson et al. 2014]では、多くの影付きライトをサポートするアルゴリズムが開発されました。しかし、それらはデモシーンのような理想化された環境でテストされ、フレームごとに更新される可動ライトに最適化されています。しかし、我々のケースでは、より限られた計算予算でプロダクションクオリティのアセットをサポートする必要があるため、毎フレームすべてのシャドウバッファを更新する余裕はありません。結局のところ、完全に動的なライトの動きは、ゲームやビジュアライゼーション・アプリケーションの主要な機能ではほとんどありません。我々は、多くの静的なメッシュを持つ多くの静止したシャドウキャスティングライトと、その周りを動く動的なオブジェクトという典型的なシナリオを特にターゲットにした新しいシャドウレンダリングシステムを開発しました。多くの斬新な設計により、我々の新しいシステムは性能と品質の目標を達成しました。

2 OUR SYSTEM

2.1 Overview

我々のシステムの最も重要な目標のひとつは、シャドウの静的な部分を可能な限りキャッシュすることです。それぞれの影を投げるライトは、3つの主要なタイプの相互作用を追跡する必要があります:静的なメッシュ、静的なバウンディング・ボックスを持つ頂点アニメーション・メッシュ、そして完全に動的な可動メッシュです。これらの相互作用のそれぞれについて、更新頻度、カリング/フェージング距離、ターゲット解像度などの異なる戦略がそれぞれ適用されます。各ライトは、必要に応じて3つのテクスチャを管理し、更新します(図3):静的シャドウバッファ、ダーティマスクテクスチャを持つ動的シャドウバッファ。動的な相互作用がない場合、静的シャドウバッファのみがライトに割り当てられます。そうでない場合は、動的シャドウバッファとそのダーティマスクテクスチャを使用して、対応するダーティマスクテクセルが設定されている静的シャドウバッファと動的シャドウバッファの両方をフィルタリングするだけで、シャドウフィルタリングコストを削減します。
 スケーラビリティを向上させるために、各ライトのビュー依存の更新頻度は、画面投影サイズ、明るさ、視認性、およびユーザー定義の解像度スライダーに基づいてヒューリスティックによって生成され、CPUとGPUの計算リソースは、タイムスライスされた方法で最終的な画像の寄与に比例して割り当てられます。また、各ライトについて、シャドウマップは、事前に定義されたピクセル-テクセル比の品質目標によって、低解像度でテクスチャスロット数が増加する、事前に割り当てられたピラミッド構造のテクスチャプールに割り当てられます。この方法では、必要なメモリ量は、シーンの複雑さに関係なく、ピクセル数にピクセル-テクセル比を掛けたものと、重なり合う影の平均数によっておおよそ決まります。ほとんどの場合、実行時のテクスチャ割り当てが回避されます。
 シャドウバッファは、シェーダーからインデックス付けされた高速GPUアクセスのために、フラットなテクスチャ記述子配列の均一なバッファにパックされます。テクスチャアトラスやテクスチャ配列を超えるこのパッキングの利点は、テクスチャサイズ、メモリ位置、テクスチャフォーマットなどの制約がないことです。その後、GPUは、深度の複雑性が高いシーンに最適化されたスクリーンタイルのカリングを実行し、さらにディファードシャドウ処理のためにシャドウインデックスを持つタイルフィルタリングタスクを生成します。スポットライトとポイントライトは、VGPR制限のあるシェーダコアの占有率を最適化するために、別々のdispatch-indirectパスで処理されます。シャドウフィルタリングの結果は、さらなるディファードシェーディングとライティングのために、コンパクトな、オプションで圧縮されたバッファにパックされます。柔軟なシャドウバッファパッキングにより、シングルパスのローカルシャドウボリューメトリックフォグなどの他のライティングエフェクトが効率的にサポートされます。
 2つの新しい圧縮アルゴリズムを紹介します。1つ目はビットレート可変のシャドウマップ圧縮で、静的シャドウバッファ生成パスの除去に役立ちます。2つ目は、GPUベースのTSVQ(Tree-Structured-Vector-Quantization)アルゴリズムで、最小限のメモリと帯域幅でピクセルごとに多数のオーバーラップするライトをサポートするために、ディファードシャドウライトマスクを圧縮します。

※図は,[Li 2019]より引用

※図は,[Li 2019]より引用

2.2 Depth Buffer Compression

最小限のメモリフットプリントで可能な限り多くの静的シャドウバッファをサポートするために、わずかな品質低下で30:1の典型的な圧縮率で高いスループットを実現する革新的なGPUベースの適応型Quad-Tree圧縮を紹介します。バッファを分割するために32×32ピクセルのマクロブロックサイズが使用され、浮動小数点エラーを減らすために深度プレーンがブロック内で生成されます。その後、ブロックはグループ共有メモリで個別に圧縮され、帯域幅の消費を最小限に抑えます。

2.3 Tree-Structured-Vector-Quantization for per-pixel shadow mask

占有率は高いGPUパフォーマンスの鍵となるため、ディファードシャドウを選択してLightingとShadowingパスを分離します。従来のディファードシャドウでは、各ライトチャネルの中間マスクをピクセル単位で保存するために多くのメモリが必要でした。出力を圧縮する新しいGPUベースのベクトル量子化アルゴリズムを開発しました。展開された分岐のない内部ループに最適化されたmsad命令とLaneSwizzle命令を多用することにより, GPUシェーダコア上で0.75ビット/ピクセルと高スループットを実現しました。

2.4 Performance Results

パフォーマンスは非常にデータに依存しますが、上記の設計と最適化により、従来のUnreal-Engine 4と比較して最大10倍のシャドウレンダリング性能の大幅な向上を達成し、複雑な仮想環境で1000個以上のシャドウキャスティングライトをリアルタイムでサポートできるようになりました。

ACKNOWLEDGMENTS

この講演と訂正をサポートしてくれたTech-DirectorのArt Zaratsyanに。最適化のアイデアをさらに推し進めてくれたRendering-LeadのJimmyBéliveauに感謝します。

REFERENCES

  • Hawar Doghramachi. 2015. GPU Pro 6: Advanced Rendering Techniques. CRC Press.
  • Elmar Eisemann, Michael Schwarz, Ulf Assarsson, and Michael Wimmer. 2011. Real-Time Shadows (1st ed.). A. K. Peters, Ltd., Natick, MA, USA.
  • Ola Olsson, Markus Billeter, and Emil Persson. 2014. Efficient Real-Time Shading with Many Lights. In SIGGRAPH Asia 2014 Courses (SA ’14). ACM, New York, NY, USA, Article 11, 310 pages. https://doi.org/10.1145/2659467.2659475