4.1K Views
November 27, 23
スライド概要
■概要
最近のRE Ray Tracing周りの改善、新機能実装、各タイトルの使用状況と計測をご紹介いたします。
※CAPCOM Open Conference Professional RE:2023 で公開された動画を一部改変してスライド化しております。
■想定スキル
Ray tracing周りの知識がある、もしくは実装経験がある方
詳細は下記公式サイトをご確認ください。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CAPCOM Open Conference Professional RE:2023
https://www.capcom-games.com/coc/2023/
カプコンR&Dの最新情報は公式Twitterをチェック!
https://twitter.com/capcom_randd
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
株式会社カプコンが誇るゲームエンジン「RE ENGINE」を開発している技術研究統括によるカプコン公式アカウントです。 これまでの技術カンファレンスなどで行った講演資料を公開しています。 【CAPCOM オープンカンファレンス プロフェッショナル RE:2023】 https://www.capcom-games.com/coc/2023/ 【CAPCOM オープンカンファレンス RE:2022】 https://www.capcom.co.jp/RE2022/ 【CAPCOM オープンカンファレンス RE:2019】 http://www.capcom.co.jp/RE2019/
Advances in Ray Tracing ©CAPCOM 1
Agenda 1. デノイザーの改良 2. レイトレーシングの新機能 3. コンソールの性能 本日は、GDCでのBIOHAZARD VILLAGEの講演後、RE ENGINEのレイトレーシングがどうなったかを紹介します。 3つのパートに分けて説明します。 2 まず、デノイザーの改良について説明します。 そして、私が問題に対処するときにどのように考えるかについて、ご紹介したいと思います。 次に、最新のRE ENGINEで追加されたレイトレーシングの新機能を紹介します。 最後に、PS5におけるレイトレーシングとデノイズのGPU実行時間について、参考としてご紹介します。 ©CAPCOM 2
What have we done? 参照: “Resident Evil Village: Our Approach to Game Design, Art Direction, and Graphics" - GDC 2021 2021年のGDCで、「Resident Evil Village: Our Approach to Game Design, Art Direction, and Graphics」というプレゼンテー ションが行わました。 3 詳細はこちらをご参照ください。 要約すると、DirectX 12 / PS5におけるアクセラレーション構造APIを実装し、スケルタルメッシュのBVH構築時間を最適化する方 法が紹介されました。 また、RE ENGINEにジオメトリからテクスチャへのマッピングフレームワークを実装しました。 パフォーマンスに関する懸念点として、RE ENGINEはユーザーシェーダーをサポートする代わりにjsonファイルを使用してテクス チャをマッピングしています。 ©CAPCOM 3
What have we done? Preparation Tracing Accumulation Filtering Depth/Normal Ray Direction Spatial History Sorting Temporal Motion Vector Disocclusion Tracing Moment Firefly No Yes Wavelet Bilateral Shading Composite 参照: “Resident Evil Village: Our Approach to Game Design, Art Direction, and Graphics" - GDC 2021 基本的なレイトレーシングのフレームワークが確立された後、コンソールの潜在的な性能と制限をチェックしています。 低いサンプルレートでは、最終的な結果は壊滅的なノイズに満ちています。 4 最初は、トレーシングとシェーディングのコストを最適化することで、このノイズを解決しようとしました。 当時、公式のデノイズフレームワークは提供されていませんでした。 デノイザーのコストの半分以上を節約するウェーブレットフィルターの間接ディスパッチなど、これらのテクノロジーのいくつかを研究し、 テストしました。 動的トレースディスパッチでは、まず独立した履歴計算が可能であることを確認しました。 これらの技術のいくつかは、他社から学んで改良したものです。 例えば、いくつかのガイドフィルター(ウェーブレットやバイラテラル)を試しました。 フィルターにとって最も重要なことは一貫性です。 同時に可能な限り正確な結果に近づける必要があります。 詳しくはGDC2021のプレゼンテーションをご覧ください。 ©CAPCOM 4
GI Denoise Improvement アーティストは何の制約もノイズもなく ライト(Emissive 、IBL)を置きたい ノイズの理由 光のサンプリングが難しいこともある ジオメトリやどんな光を使うかに依存する 改善はこの問題から始まります。 アーティストはライトを自由に使いたいです。 エミッシブライトやイメージベースライトのようなライトは、周囲のジオメトリ環境に大きく依存します。 5 レイのサンプリングが難しいものもあります。 というのも、レイ自身は情報を与えないと光がどこにあるのかわからないからです。 解決しなければならない問題は、光源とカメラの間のすべてのパスを作成することです。 例えば、64サンプルの拡散レイをトレースします。 そのうち一つしか光に当たらず、63個はターゲットから外れて暗い結果が得られるとします。 フレームあたり1サンプルしかトレースできないとすると、63フレームが暗く1フレームが明るい表示になり、高い分散とノイズが発生します。 期待されるのは、明るい1フレームの結果を64で割った結果が、64フレーム間ずっと続くことです。 ©CAPCOM 5
Buffered Light VS Geometry Light Buffered light Sample every hit Geometry light Sample only hit geometry Image-based light / Emissive Directional / Punctual / Area light Directional、Punctual、Area lightのようなバッファードライトは、この問題を緩和します。 ライトバッファはループされ、ライトはヒットしたジオメトリに接続され、次のイベント推定を呼び出します。 ライトに到達できることを確認するために、可視性の項をチェックする必要があるだけです。 6 しかし、Image-based lightやEmissiveのようなジオメトリライトは、光がどこにあるかわからないためサンプリングが難しいです。 レイがライトに当たらなかった場合、ライトパスを作成することはできません。 このような状況では、バッファされたライト環境と比べて、はるかに多くのレイが必要になります。 それでも、限られたサンプルでこの問題を解決したいし、少なくとも少しは改善したいと思います。 ©CAPCOM 6
Input (Difficult Situation) • Shading Results • Depth Light comes form here • • Normal スライドの左側にある画像は、シャッターで区切られたイメージベースの光によるシェーディング結果です。 最初のバウンスだけをトレースしました。 トレースされたレイのほとんどはライトに到達できず、このようなまばらな結果になっています。 500,000本のレイをトレースしましたが、ライトに当たったのは数千ピクセルだけです。 7 シェーディング結果、深度、ガイドフィルター用の法線バッファが得られました。 ©CAPCOM 7
Output (1 frame only result) Before Now さらに難しいのは、一貫性のある収束した結果を1フレームのトレースから作る必要があることです。 もし1つのフレームデータでデノイズができなければ、カメラを動かしたときに一部のディスオクルージョンピクセルからアーティ ファクトが発生します。 8 そして、これが以前の結果と現在の改善された結果との比較です。 ©CAPCOM 8
Output (1 frame only) ビデオではノイズが大幅に減少 しているのがわかる。 これは比較ビデオです。 この方法でノイズが大幅に減少し、ディテールが保たれているのが分かります。 9 ©CAPCOM 9
Ideas U-Net Delaunay Triangulation Probes Guiding Ray Direction Guiding Light Position Disocclusion Rays では、なぜこのような結果になったのでしょうか? 良い結果を得るためには、いくつかの方法があります。 深く掘り下げてみると、すべての道はローマに通じています。 10 この問題を解決するために私が試みたことをまとめてみましょう。 ©CAPCOM 10
Machine Learning U-Net Transformer Sheng He, Rina Bao, P. Ellen Grant, Yangming Ou ”U-Netmer: U-Net meets Transformer for medical image segmentation” *2 ・PCに最適 ・現世代機では性能は許容 できない Olaf Ronneberger, Philipp Fischer, and Thomas Brox ”U-Net: Convolutional Networks for Biomedical Image Segmentation”May *1 機械学習はデノイズに最も適しています。 U-Netはバイオメディカル画像のセグメンテーションや画像のアップスケーリングに広く使われています。 11 最近、TransformerもU-Netフレームワークに統合されました。 U-Netの直感的なアイデアは、ソースデータを複数の特徴レベルに圧縮し、最も抽象的な特徴レベルから学習することです。 再構成には、最終的な品質を向上させるために、これらすべてのレベルの特徴が使用されています。 ソースデータを複数の特徴に分離することは、デノイズにとって非常に重要です。 実は、ほとんどのコンピュータビジョンの機械学習アルゴリズムでも重要です。 それが選択されないのは、現世代のコンソールがそのコストを負担できないためです。 私はPCで様々な機械学習フレームワークを使って研究しています。 しかし、RE ENGINEに機械学習フレームワークを導入する時間と余力がありませんでした。 しかし、もしそうするのであれば、デノイズに機械学習を使えば、最高の品質が得られるかもしれません。 同じ圧縮/解凍の考え方は、多層Perceptronを使用しない場合でも基本的に使えます。 ©CAPCOM 11
Delaunay Triangulation • 頂点間の補間 Meng Qi, Thanh-Tung Cao, Tiow-Seng Tan "Computing Two-dimensional Constrained Delaunay Triangulation Using Graphics Hardware” *3 ドロネー三角形分割。 疎な拡散レイのサンプルは、論文の左の画像に似ています。 12 点群からボロノイ図を生成できます。 表面が平面であれば、ライティングされたピクセルの分布は、その周囲の輝度に相関していることが予想されます。 なぜディフューズは周波数が低いのでしょうか? それは光を均一に伝播させるからです。 ジオメトリの干渉がなければ、限られたサンプルレートでも伝搬は一貫しているはずです。 疎な点群分布は、高周波のジオメトリのエイリアシングを除けば、 集約されたサンプルの分布と同じでなければなりません。 ©CAPCOM 12
Lagrange Denoiser in Graphics ドロネー三角形からの補間 結果は頂点の値と三角形の 面積に依存する。 chaos docs "Irradance Map" *4 同じ考え方が、VRayの照度キャッシングにも使われています。 ドロネー三角形が生成され、輝度の結果は、各頂点を通して補間され、三角形の面積サイズで割られます。 難しいのは、3Dジオメトリに密着した正確なドロネー三角形を作成することです。 ガイドされたバッファを使っても、2次元のドロネー三角形は、時に形が崩れた結果になります。 13 3次元ドロネーアルゴリズムは、実時間ではほとんど性能を犠牲にしませんが、ジオメトリの一貫性を解決することは、 このラグランジュ法にとって重要な問題です。 もう一つは、この方法では生成と伝播のステップがあまり速くないことです。 これにはあまり時間をかけませんでしたが、最適化に力を入れれば、 もっとうまくいくかもしれません。 ©CAPCOM 13
Probes Lumenのアプローチ • トレース/補間プローブ • 補間で細部が失われている SIGGRAPH "Radiance Caching for real-time Global Illumination" *5 プローブのアプローチは、Unreal Engine で広く使用されているもので、Lumen と呼ばれています。 難しいのはやはり補間です。 しかし、彼らはこの方法を極限まで改良しました。 パフォーマンスとクオリティのバランスが取れています。 実際、プローブのアプローチはかなりトリッキーな調整が必要で、複数のガイド付きバッファが使われます。 14 私の知る限り、Epic Gamesは品質を向上させるためにbent normal、SSAOを使用して品質を向上させています。 彼らのコードを読めば、すべての答えが見つかるでしょう。 彼らは相当なことをやっています。 私見では、彼らがすでに成し遂げたことを超えるのは容易ではありません。 ©CAPCOM 14
Guiding Ray Direction Guided direction Cosine hemisphere レイの方向を光に誘導することも可能だと思われます。 コサイン半球分布と比較して、ガイドされたものはより明るい結果が得られています。 この方法は、リザーバーサンプリングを使って実装できます。 モンテカルロ法で最も重要なパラメーターはPDFです。 リザーバーには、あり得る全ての光の向きとそのPDFが保存されています。 15 厄介なのは、常に蓄積されたデータを使うことができず、イメージをリフレッシュするためにリザーバーを更新したりクリーニング したりする必要があることです。 クリーニングのタイミングは、実装に依存します。 例えば、間違った蓄積データはモーメントバッファによって破棄することができます。 正しい履歴データは、ピクセル単位で定期的に更新されます。 ©CAPCOM 15
Guiding Ray Direction Ray Default Direction リザーバーサンプリングによるPDF更新 Ray Guiding Direction メリット • 収束のスピードアップ Trace / Shade • 移動平均よりも蓄積された履歴が多い デメリット Spatial / Temporal PDF Update • 時間データのサポートでより良いパフォーマンス • 正確な空間累積損失性能 実装のために、私は2つのレイディレクションバッファを、ガイド付きとデフォルトに分けます。 そして、履歴が十分であれば、それらをランダムにブレンドします。 ガイド方向とそのPDFは、リザーバーサンプリングから更新されます。 ガイド履歴は最大500フレームまで蓄積できます。 蓄積された履歴を使えば、かなり良い結果が得られます。 16 この方法の欠点は、ノイズが1フレームのデータから解決できないことです。 実際には、移動平均の重みを使用して空間的および時間的累積でも同じことを行いますが、これはサンプリングに対してさらに積極的です。 リザーバーバッファが十分な履歴を蓄積している場合にのみ、ガイドされた方向が受け入れられ、PDFの精度が使用するのに十分なものになります。 履歴がなければ方向をガイドすることはできません。 そこで、前述のようにノイズを1フレームのデータだけで解決しようとします。 それはこの目的には役に立ちません。 ©CAPCOM 16
Guiding Light Position • 目的はジオメトリライトを 動的にライトバッファに変換すること • エミッシブの場合、 ヒットしたジオメトリから位置を取得する • IBLの場合、カメラからレイマーチングする • ガイドフィルターから ライトの位置とフィルエンプティを保存 • 他のヒット位置とライトパスをランダムにつなぐ カメラのdistance fieldからライトの位置をガイドするのはどのようにするのでしょうか? もしエミッシブ/IBLの位置がパンクチュアルライトのようにバッファに保存されるなら、次のイベント推定と同じように、パスをつないで可視レイを 17 発射するだけです。 ヒットしたジオメトリがエミッシブであれば簡単です。ジオメトリから位置を得ることができます。 IBLがヒットした場合は、その焦点に最も近い距離を取る必要があります。 したがって、カメラの距離がレイマーチ距離より大きい場合、つまり室内にいる場合、カメラのdistance fieldを介したレイマーチングが可能です。 カメラの距離がレイマーチ距離より小さい場合、部屋の外にいることを意味します。 これらの光の位置を取得したら、光のないピクセルに伝播させ、次のイベント推定を行います。 この方法を使用しなかった理由は、小さなジオメトリライトが到達可能かどうかを確認するためにシャドウレイが必要だからです。 ジオメトリライトにはシャドウマップがありません。 ©CAPCOM 17
Guiding Light Position • 目的はジオメトリライトを 動的にライトバッファに変換すること • エミッシブの場合、 ヒットしたジオメトリから位置を取得する • IBLの場合、カメラからレイマーチングする • ガイドフィルターから ライトの位置とフィルエンプティを保存 • 他のヒット位置とライトパスをランダムにつなぐ もう一つの理由は、カメラのdistance fieldが必要で、予算が足りないからです。 それでも、解決すべき具体的な問題によっては、この方法は、1フレームのデータから正確な結果を得ることができます。 この方法の目的は、トレースされたライト付きジオメトリを通して、自動ポリゴンライトシステムを構築することです。 18 開発の初期段階であれば、ポリゴンライトはアーティストが設定することもできます。 ©CAPCOM 18
Disocclusion Rays 960x540 1 ray (half in console) History Rejection Trace 1 Ray Trace 1 Ray 120x67 64 rays (half in console) Trace more Rays (16-64) Blend 低解像度の構造からより多くの予算が与えられる 低解像度データのフィルタリングが容易 もう一つのアイデアは、履歴に応じてより多くのレイをトレースすることです。 アーティストたちは、ゲームのリリース間近に作品のビジュアルを変更したくはありません。 彼らは、難しいシーンでより良くデノイズしたいだけなのです。 そして、コンソールの性能は、あまりにも多くのレイをトレースできません。 難しいシーンでは、1ピクセルあたり128本トレースしても結果が収束しないことがあります。 高周波の見た目を保ちながら低周波の光を伝播させる必要があります。 19 そこで、有用な情報を抽出し、バッファサイズを小さくして、伝搬するのに十分なサイズにします。 この考え方は、機械学習など他の研究にも共通します。 バッファは小さな解像度に圧縮されますが、コンソールでははるかに小さいチェッカーボードが使用されます。 このバッファでは、ピクセルごとに 16 ~ 64 のレイがトレースされます。 1 ピクセル 1 サンプルの 540p と、1 ピクセル 64 サンプルの 67p の結果を比較すると、67p の画像の方が大幅に鮮明で伝播しやすくなっています。 この後、優れた再構成アルゴリズムが必要となります。 ©CAPCOM 19
Reconstruction Guided buffer Moment 再構成は、ガイドされたカラーバッファとモーメントバッファをブレンドし、アップスケーリングされた結果を生成します。 ガイド付きバッファはライトフィールドの変化を担当し、モーメントバッファはジオメトリの変化を担当します。 20 ©CAPCOM 20
Why it works? 120x67 color / average direction 情報の切り離し 低解像度の光情報 960x540 shadow (moment) 解像度の影情報 高解像度のジオメトリ情報 再構築 4k geometry (normal) モーメント+カラー/方向= アップスケールされたカラー/方向(モーメントクランプ) アップスケールされたカラー/方向+ノーマル= 4Kカラー(球面調和関数で投影) では、なぜこれが有効なのでしょうか? その結果は、光の寄与と可視項に分けることができるからです。 GIに対する光の寄与は、拡散して連続的に伝播します。 伝播後は低周波数のものだけが残り、低次元で圧縮できます。 21 一方、可視項は高周波のジオメトリ情報で、最終的な画質にとって重要です。 可視項を再構成するために2つのステップが用いられています。 モーメントバッファは、粗いジオメトリからの光をブロックするために使用されます。 そしてジオメトリのオクルージョンを詳細に描画するために、正確な法線マップが使われます。 ©CAPCOM 21
Euler in Graphics Low frequency High frequency ansariddle "Multigrid Visualzation" *6 Aliasing では、低解像度をどのように伝搬させ、どのように再構築するかについて説明します。 これはmulti-grid linear solving methodに似ています。 高周波のジオメトリ項を最初に分離すれば、再構成に適した結果が得られる可能性があります。 間違った補間はエイリアシングを引き起こし、結果として数値的な誤差になります。 22 詳しくは関連論文を参照してください。 ©CAPCOM 22
Jitter Numerical Error Before • 時間差は高周波の ジオメトリ・エイリアシングに起因する After • 時間的蓄積の後に結果をジッタリングすることで、 この問題を軽減できる可能性がある したがって、ロジックを複雑にしすぎないようにします。 その結果、滑らかな分解が不十分なため、数値的な誤差やエイリアシングが生じることがあります。 この問題を軽減する方法があります。 それはジッタリングです。 そして、時間的蓄積から画像をブレンドした後に、別のジッターが実行されます。 ©CAPCOM 23 23
Auto Exposure Ghosting 先のデノイズではリニア空間でフィルタリングされて いないため、ゴーストが発生した 理由 • Reinhard曲線が色をノンリニアにする • 時間的な輝度ベースの除去の欠如 アーティストたちが指摘したもう1つの問題は、Auto Exposureから光が急激に変化した場合です。 不正確な結果は、非リニア空間のフィルターによって引き起こされます。 その理由はReinhard曲線が色を圧縮してしまうからです。 Reinhard曲線を使った結果からフィルターをかけるのは正しくありません。 24 もう一つの理由は、時間的な輝度ベースの除去が以前は使われていなかったからです。 なぜなら、1フレームのみのバッファからのノイズクランプが増えるからです。 ©CAPCOM 24
Auto Exposure Ghosting Before Now まず、以前と現在の結果の比較をお見せします。 25 ©CAPCOM 25
Removing Reinhard Curves Now Before JOHN HABLE ”Why Reinhard Desaturates Your Blacks” *7 Shade Shade Reinhard curve Spatial accumulation Spatial accumulation Temporal accumulation Temporal accumulation Deflicker リニア空間によるデノイズ Reinhard曲線の代わりに、積極的なデノイズロジックとその他のデフリッカーロジックを追加して、firefliesを除去します。 以前の方法と比べて、リニアなカラーノイズを除去するのは簡単ではありません。 ステップが追加されますが、これについては後で触れます。 26 ©CAPCOM 26
Removing Reinhard Curves Before Now 明るさが全く異なる Reinhard曲線を取り除いた後、明るさがまったく変わりました。 そしてアーティストが不満に思いがちなエミッシブの問題は解決されました。 以前のバージョンでは、ライトは高い輝度値で設定されていました。 Reinhard曲線の効果により、結果は思ったほど明るくなりません。 それがなくなると、アーティストが調整したライトのバランスが崩れてしまいます。 したがって、この機能は新しいタイトルでのみ使用できます。 ©CAPCOM 27 27
Aggressive Filtering Spatial propagation Temporal filter Spatial propagation Variance check Spatial merge Deflicker Spatial upscaling Spatial filter • Reinhard曲線カラーに比べ、リニア カラーはデノイズが難しい • 誤ったエミッシブも修正された • 空間デノイズのために3つのパスが 追加される リニアカラーは、特に高輝度ライトに対してデノイズが難しくなります。 光は直線的に伝播するので、より多くのステップが必要になります。 この問題を解決するために、さらに3つのガイド付き伝搬パスが追加されます。 視覚的な品質は、以前よりも向上しています。 コントラストが向上し、光のバランスが良くなりました。 ©CAPCOM 28 28
Temporal Luminance Rejection Before Now フレームワークからReinhard曲線を取り除いただけでなく、時間的輝度除去も改善されています。 輝度除去は、動的な光の切り替えの問題を解決します。 安定化した1フレームの結果は、履歴を修正するために使用されます。 ライトバッファフラグなどの他の方法を使用して、履歴ゴーストによる輝度変化を緩和することもできます。 ©CAPCOM 29 29
Fake Specular Low Quality Before ラフネスが閾値を超えると、フェイクスペキュラが 使用されるため、マテリアルの一貫性が失われる Now 理由 • 高いラフネス持つスペキュラレイは、 拡散レイと同じくらい高価になる可能性がある • 収束が難しい フェイクスペキュラは、粗さがしきい値を超えたときに使用されます。 例えば0.3以前では、マテリアルの不一致と不正確な結果を引き起こします。 30 フェイクスペキュラを使用する理由は、スペキュラの荒いレイは拡散レイと同じくらい高価になる可能性があるからです。 ほとんどの条件では、荒いスペキュラはディフューズと同じポリシーでデノイズできます。 違いは、ラフスペキュラBRDFがビュー依存のローブであることです。 空間的に再利用可能な結果を蓄積するには、より正確な計算が必要です。 ©CAPCOM 30
Specular Pass Roughness threshold High resolution • ラフネスによって異なる スケールフィルターポリシー • ラフネスとタイトルの予算によって 異なる解像度ポリシー • それでも、ラフ・スペキュラー・デノイザーは 改善する必要がある (ディフューズでやったことと似ている) Low resolution Large scale filter Small scale filter Upscale Merge タイトルの予算に応じて、高解像度と低解像度のトレースされたスペキュラーバッファは分離されます。 異なるアプローチで異なるスケールフィルターが使用されます。 ラフスペキュラーデノイザに焦点を当てるには時間がありませんでしたが、将来的には改善できるでしょう。 ©CAPCOM 31 31
Specular Motion Ghosting スペキュラーゴーストは、 前の時間的な動きから解消されない ジオメトリの動きと仮想位置のブレンドが うまく計算されていない よく見ると、ゴーストが発生しているのがわかる スペキュラーゴーストは前の時間的な動きから解決されていません。 主な原因は、間違った動きの一部が正しく除去されないことです。 よく見ると、画像は崩れています。 しかし、対象から離れており、カメラの動きがそれほど速くない場合は、結果を許容できます。 何はともあれ、これは私のミスなので改善しました。 ©CAPCOM 32 32
Comparison Before Now では、前回と今回の結果を比較してみましょう。 33 ©CAPCOM 33
Specular Motion • パフォーマンス上の問題から、バーチャル・モーション は平面的なものだけを使用するようになった Motion Geometry Virtual Moment based merge • カラー/モーメントクランプは、ミラーで アニメーションの動きをクランプするために使用される • 拡散輝度クランプは異なり、 スペキュラークランプは色を、 ディフューズクランプは履歴をクランプする 曲面形状のモーションを改善する前に、薄いレンズモーションを使用します。 性能上の問題から、ほとんどの場合は平面の仮想位置で十分です。 モーメントクランプは、ミラー内のアニメーションの動きに使用されます。 スペキュラークランプはディフューズとは異なります。 履歴を使用する代わりに、カラークランプも必要です。 最終結果はモーメントバッファに基づいてマージされます。 ©CAPCOM 34 34
Shading • ユーザーシェーダーのサポート(開発中) • 複雑なシェーディングモデル(開発中) • 時間的累積光量重要度サンプリング(今後の改良点) シェーディングに関しては、ユーザーシェーダー関連のサポートを実装します。 複雑なシェーディングモデルも開発中です。 35 光の可視性テストはハッシュテーブルにキャッシュされる可能性があります。 フレームごとにすべての光をテストするのは無意味なので、将来的にはできるでしょう。 ©CAPCOM 35
New Features レンダリングユニットによってRE ENGINEに多くの新機能が追加されました。 ©CAPCOM 36
Mirror Transparent 完全な反射のみサポート デノイズなし ミラーの透明性は、別の実装で特別に処理されます。 完全な反射のみがサポートされ、パフォーマンスを考慮してデノイズ機能は使用していません。 37 ©CAPCOM 37
Effect Ray Tracing GI/リフレクション/AOがサポート エフェクトのレイトレーシングはエフェクトユニットによって実装されています。 ほとんどの場合、シェーディングの対応後に同じデノイズの進捗が共有されます。 38 ©CAPCOM 38
Ray Tracing Area Light Rectangle / Disk / Line light対応 GI / Reflection / AO対応 Area light shadowにも対応 Rectangle・Disk・Line lightも別のレンダリングユニットメンバーによって実装されました。 Area lightの直接・間接シャドウの両方がサポートされています。 39 ©CAPCOM 39
Terrain / Speed Tree Support BVHのデータはGbufferのデータと完全には一致せず、 レイオフセットが必要。 地形とSpeedTreeのレイトレーシングは、風景や葉を担当するレンダリングユニットのメンバーがサポートしています。 BVHのデータはGbufferの位置と完全には一致しません。 そのため交差を避けるために、オフセットまたは追加のレイが必要です。 ©CAPCOM 40 40
Performance & Title Use Cases Title Name Version Devil May Cry 5 Special Edition 1 GI/反射 BIOHAZARD VILLAGE 2 GI/反射/AO BIOHAZARD RE:2 / BIOHAZARD RE:3 / BIOHAZARD 7 2 GI/リフレクション/AO BIOHAZARD RE:4 2 リフレクション EXOPRIMAL 2 GI/反射 今後のタイトルはバージョン3を使用 タイトルの使用例としては、3つのバージョンのシェーディングとデノイズシステムがあります。 システムは、リリースされたタイトルを安定させるために作成されます。 バージョン1はDevil May Cry 5 Special Editionでのみ使用されています。 41 バージョン2はBIOHAZARD VILLAGE / 7、BIOHAZARD RE:2 / 3 / 4、EXOPRIMALなどで使用されています。 BIOHAZARD RE:4では、パフォーマンス上の問題からレイトレーシング反射のみを使用しています。 そして、バージョン3は今回のプレゼンテーションで紹介されたもので、今後のタイトルで使用される予定です。 ©CAPCOM 41
PS5 Performance GDC 2021 Preparation 376μs Accumulation 1043μs Linear Depth / Geometry 177μs Spatial Diffuse 512μs Spatial Specular 128μs Total Spatial (Overlapped) 612μs Accumulation Motion 65μs Disocclusion History 134μs Tracing Generate Ray Direction Sort Ray Direction Tracing Diffuse Tracing Specular Tortal Trace (Overlapped) 2481μs 122μs 69μs 1583μs 609μs 1665μs Firefly (Overlapped) 49μs Moment (Overlapped) 75μs Temporal 307μs Filtering 650~838μs Work Queue Copy Unfiltered Result 39μs 117μs Shading Diffuse 596μs Wavelet Filter 32~200μs Shading Specular 148μs Bilateral Filter 172μs Tortal Shading (Overlapped) 625μs Composite 290μs このデータはGDC2021の講演内のPS5でのパフォーマンスコストから引用しました。 レイトレーシングの総コストは4.7msです。 42 トレースとシェーディングは2.3ms、その他のレイの向きの生成やソートには0.2ms、デノイザは2.2msかかっています。 ©CAPCOM 42
PS5 Performance Version 3 denoiser cost Version 2 denoiser cost 2.2ms Spatial denoiser steps added +1.3ms Wavelet filtering removed -0.8ms Additional disocclusion rays added 25% of tracing and shading cost 旧バージョンのデノイズと比較して、空間伝搬ステップが追加され、約1ms増えました。 一方、ウェーブレットフィルターのロジックは削除されました。 追加されたディスオクルージョンレイが、トレースとシェーディングの総コストの約25%になっています。 つまり、新しい方法では、ノイズに対処するために、より多くのレイが追加されます。 追加のコストは、シーンのトレースとシェーディングのコストに依存します。 43 デノイズに関しては、ディスオクルージョンレイはデノイズを安定させるのに役立ち、ウェーブレットフィルターは最終ステップで 不要になりました。 しかし、ディスオクルージョンとアップスケーリングからのレイを処理するために、空間ステップが追加され、合計0.5ms増加しま した。 ©CAPCOM 43
Conclusion • デノイザーの改良 1. GIノイズの改善 2. 自動露出の改善 3. スペキュラー・モーション・プロジェクションの改善 4. 偽のラフ・スペキュラーを除去 • 新機能 • パフォーマンス 以上、RE ENGINEでレイトレーシングが改善された様々な方法を紹介しました。 今回の発表では、主にGIデノイズに関連する改良に焦点を当てました。 というのも、それは難しいトピックであり、共有し、議論する価値があるからです。 44 スペキュラー関連の改善も紹介しました。 レイトレーシングの新機能には多くの人が貢献してくれましたが、時間の都合上彼らの仕事の一部しか簡単に紹介できませんでした。 また、以前の現在のデノイズを比較した PS5 のパフォーマンスコストについても触れました。 ©CAPCOM 44
Thank you for listening Quotation 1. Olaf Ronneberger, Philipp Fischer, and Thomas Brox MICCAI 2015 ”U-Net: Convolutional Networks for Biomedical Image Segmentation”May 18, 2015 https://arxiv.org/pdf/1505.04597v1.pdf(2023/8/24) 2. Sheng He, Rina Bao, P. Ellen Grant, Yangming Ou ”U-Netmer: U-Net meets Transformer for medical image segmentation” April 3,2023 https://arxiv.org/pdf/2304.01401.pdf (2023/8/24) 3. Meng Qi, Thanh-Tung Cao, Tiow-Seng Tan "Computing Two-dimensional Constrained Delaunay Triangulation Using Graphics Hardware” 2017 https://www.comp.nus.edu.sg/~tants/cdt.html(2023/8/24) 4. chaos docs "Irradance Map" https://docs.chaos.com/display/VRAY3SOFTIMAGE/Irradiance+Map (2023/8/24) 5. SIGGRAPH "Radiance Caching for real-time Global Illumination" 2021, P24 https://advances.realtimerendering.com/s2021/Radiance%20Caching%20for%20realtime%20Global%20Illumination%20(SIGGRAPH%202021).pptx (2023/8/24) 6. ansariddle "Multigrid Visualzation" Wikipedia September 14, 2016 https://en.wikipedia.org/wiki/File:Multigrid_Visualization.png#filelinks (2023/8/24) 7. JOHN HABLE filmicworlds ”Why Reinhard Desaturates Your Blacks” May 17, 2010 http://filmicworlds.com/blog/why-reinhard-desaturates-your-blacks/ (2023/8/24) 以上でこのプレゼンテーションを終わります。 ご清聴ありがとうございました。 ©CAPCOM 45