$30 off During Our Annual Pro Sale. View Details »

SIGGRAPH Asia 2021: Real-Time Rendering

SIGGRAPH Asia 2021: Real-Time Rendering

SIGGRAPH Asia 2021勉強会で使ったスライドです。
https://siggraph.xyz/sa2021/

Tatsuya Yatagawa

February 27, 2022
Tweet

More Decks by Tatsuya Yatagawa

Other Decks in Technology

Transcript

  1. SIGGRAPH Asia 2021 Paper Reading Seminar Real-Time Rendering Tatsuya Yatagawa

    Feb. 27th, 2022
  2. Real-Time Rendering (5 papers) l ExtraNet: Real-time Extrapolated Rendering for

    Low-latency... → 描画遅れを防ぐための深層学習に基づくフレーム外挿 l Fast Volume Rendering with Spatiotemporal Reservoir Resampling → ボリュームレンダリングのためのReSTIR法の拡張 l Fast and Accurate Spherical Harmonics Products → 複数の球⾯調和関数の積をFFTに基づいて効率的に計算 l Perceptual Model for Adaptive Local Shading and Refresh Rate → Variable-rate shadingのための⼈間知覚に基づく陰影計算制御 l Tessellation-Free Displacement Mapping for Ray Tracing → 三⾓形の再分割を必要としないレイトレース向けdisplacementマップ法 1番⽬が映像表⽰, 2, 5番⽬が実時間レイトレース, 3番⽬は計算モデル, 4番⽬は知覚モデルの研究など, 実時間応⽤に関する幅広い研究
  3. ExtraNet: Real-time Extrapolated Rendering for Low-latency Temporal Supersampling ⼀⾔で⾔うと? 対話的なアプリで描画遅れを防ぐためのニューラルネットに基づくフレーム外挿

  4. 深層学習によるフレーム補間技術が多数提案されている. ⼀⽅, FPSを上げるためのフレーム「内挿」は描画遅れ(=Latency)が⽣じる l 内挿(下段)では𝑓! の計算終了から実際の表⽰までの間に遅れ l 内挿では、次のフレーム𝑓!"# を先に計算しないといけないため l

    ⼀⽅, 外挿は過去のフレームのみを使⽤するので遅れが⽣じない モチベーション: フレーム内挿による描画遅れ
  5. Demodulation: 現在のフレームから陰影の情報だけを切り 離す (必須ではないとのこと) Warping: オプティカルフローにより画素の遷移 Network Inference: CNNを使ってdisocclusionを埋める Modulation:

    次フレームのアルベドを合成 Post Processing: アンチエイリアス,トーンマッピング等 提案法の処理の流れ l Disocclusionする箇所を効率よく補間できる[Zeng et al. 2021]の⼿法を利⽤ l その上で, Disocclusion箇所を重点的に学習するように損失関数を導⼊
  6. 特徴: 過去のフレーム情報を畳み込む「History Encoder」の導⼊ l U-Netベースのネットワーク構造で, ⽐較的素直に⾒える ネットワークの構造

  7. 基本アイディア: Disoccludeする箇所には, 更に後 ろから前⽅からフローをコピーし て, 更に後⽅から情報を得る. そのまま陰影情報をコピーする [Bowless et al.

    2021]では, パター ンの繰り返しが⽣じる (下図) ↓ Zengらは陰影結果ではなく, ⼊射 光の情報だけを引き継ぎ, 正しい G-Bufferの情報で陰影を計算 Occlusion Motion Vectors [Zeng et al. 2021] 移動ベクトルのコピー さらに後⽅から画素値を得る
  8. None
  9. Fast Volume Rendering with Spatiotemporal Reservoir Resampling ⼀⾔で⾔うと? 時空間的連続性を担保した実時間ボリュームレンダリングのための 重要度サンプリング法

  10. Resampling Importance Sampling [Talbot+2005]の改良に利⽤ l 元のRISはサンプルを格納するために多くのメモリを要する l 解決策: 保持するサンプル数を⼀定に保って, 確率的にサンプルを⼊れ替

    える (unbias) Reservoir SamplingとReSTIR ReSTIR (Spatiotemporal Reservior Sampling) [Bitterli+2020] l 実時間パストレで直接光の評価に利⽤した研究. l 時空間的な隣接画素のサンプルをRS+RISで マージすることで映像の連続性を保証 l ⼤域照明向けの⼿法 [Ouyang+2021]もある
  11. Weighted Reservoir Sampling: サンプルの⼊れ替えを確率的に⾏う l 各パス𝑥がreservoirに残るかどうかを表す重み係数𝑤(𝑥)を計算 l 𝑤(𝑥)の計算は各画素で独⽴. 別画素の情報を使うには重みの調整が必要 画素𝑞のreserviorを隣接画素𝑞’のサンプルで更新する場合の式

    l パス𝑥"# が与える寄与の⼤きさの⽐に, 画素𝑞, 𝑞’の平均寄与の⼤きさの⽐を 乗じたもの l 隣接画素に対するパスを⽣成した乱数で𝑞での寄与 ̂ 𝑝"(𝑥"#)を計算する必要 がある (上の式で⾚枠をつけた部分) ReSTIR [Bitterli+2020]
  12. 直接光の場合と⽐較して, ボリュームでは... l 直接光のサンプルに⽐べ, ⼊射寄与の計算に⾼次元の積分が必要になる. l Path reuse時のPDFの評価にかかる計算量が増加する. ボリュームレンダリングに対する拡張 解決策:

    l 初期サンプル (重要度が未知) 粗いボリュームをレイマーチング l Reuseされたサンプル (重要度⾼) 細かいボリュームをレイマーチング l 最終レンダリング 中間頂点も考慮したratio tracking
  13. None
  14. Fast and Accurate Spherical Harmonics Products ⼀⾔で⾔うと? 複数の球⾯調和関数の積を効率的に得るためのFFTに基づく計算法

  15. 複数の球⾯調和関数の内積による陰影計算 l 従来: BSDFと環境マップ → 2つ関数 l アフィン変換された光源 [Sun and

    Ramamoothi 2009]: BSDF, 環境マップ, 光源の変形 → 3つの関数 l クリップされた球⾯調和関数 [Wang and Ramamoothi 2018]: BSDF, 環境マップ, クリップ → 3つの関数 (元論⽂は異なる定式化) 研究背景: 球⾯調和関数による陰影付け [Sun and Ramamoothi 2009] [Wang and Ramamoothi 2018] → 普通に計算すると, 球⾯調和関数の基底数Nに 対して𝑂(𝑁$)の計算量
  16. 2つの関数の内積 定式化 2つの「球⾯」関数の内積 𝐶!"# は𝑂(𝑁$)の成分だけが⾮ゼロのテンソル. その積の計算には𝑂(𝑁$)の計算量がかかる

  17. 欲しい物 計算の流れ 球⾯関数をフーリエ変換 (𝑂(𝑁%)の計算量) 結果の係数はフーリエ係数の畳み込みに対応 (𝑂(𝑁& log 𝑁)の計算量)

  18. 結果

  19. Perceptual Model for Adaptive Local Shading and Refresh Rate ⼀⾔で⾔うと?

    Variable-rate shadingのための⼈間知覚に基づく軽量陰影計算制御モデル
  20. l 次世代GPUに実装された陰影計算制御の仕組み l 16x16のタイルごとにFPSや陰影計算の精度を制御できる l Foveated rendering等, 陰影計算精度を調整する⼿法は多くある → 提案法は複数の指標に基づき,

    FPSと陰影計算精度を両⽅制御する 研究背景: Variable-Rate Shading
  21. CoMoJAB = Content-Adaptive Metric of Judder, Aliasing, and Blur l

    空間的な画像劣化 l 模様の解像度: 画素の⼤きさとMIPマップの関係を考慮 l ⽬の動きによる模様のブラー l コントラスト感度関数に基づくボケ l 時間的な画像劣化 l Judderness: 動きが離散的になることで、カクカクしたような不⾃然な動きが近く されること. FPSが⾼いほど, 知覚されづらくなる これらの劣化があるもの‧ないものを異なる解像度で被験者に⾒せて, 各劣化がどの解像度までなら許容されるかを調べる CoMoJAB: 計算量制御のための指標
  22. ALSaRR = Adaptive Local Shading and Refresh Rate l 各16x16タイル𝑗について,

    異なる解像度𝑘で描画品質を計算 l 限られた資源の中で品質が最⼤になるようにナップザック問題を解く ALSaRR: 指標に基づく適応的な陰影計算制御
  23. None
  24. Tessellation-Free Displacement Mapping for Ray Tracing ⼀⾔で⾔うと? Displacementマップのための三⾓形の細分化不要な加速データ構造の提案

  25. ⼀番安直な⽅法 l 三⾓形をtessellation (細分割)して, displacementを反映したメッシュに 対して空間データ構造を構築する → displacementが詳細な場合に膨⼤なメモリを使う Shell Mapping

    [Pormubescu et al. 2005] l レイを三⾓形ごとに局所的なテクスチャUV✕⾼さの三次元空間に持って いき, その空間で交差判定を⾏う → 変換が⾮線形なので⾮線形トレースが必要になる → 三⾓形をdisplacementした結果, 裏返りや⾃⼰交差が起こる可能性 Displacementマップ向けのレイトレース Tessellationなし(=省メモリ)で, 計算に破綻のない空間データ構造を実現したい
  26. 提案法の概要

  27. Displacementマップに対してMin-Max MIPマップ(各画素で⾼さの最⼩値と 最⼤値を格納したもの)計算する(単純な2次元テクスチャになる) 提案法の概要

  28. Min-Max MIPマップを三⾓形上に投影する (通常のテクスチャマップ) 提案法の概要

  29. 各MIPレベル (画像の解像度)ごとにAABB (=軸がXYZ各軸に揃った直⽅体) を 発⽣させてBVH (= 空間データ構造)を構築する 提案法の概要

  30. 各MIPレベル (画像の解像度)ごとにAABB (=軸がXYZ各軸に揃った直⽅体) を 発⽣させてBVH (= 空間データ構造)を構築する 提案法の概要 疑問: 結局細かく分割するならtessellationするのと同じでは?

  31. l BVHは最も低解像度のMIPレベルに合わせて 作っておき, 適⽤的にBVHのノードを計算する (= 実際のBVHをすべて保持する必要はない) l 各テクセルについて交差判定を⾏って, ヒット したらBVH(=

    テクスチャ)を下に辿る. 必要な 解像度も動的に制御可能 l 各テクセルでは, ボックスが世界座標にアフィ ン変換で投影される. レイを逆アフィン変換す れば平⾯との交差判定になる 実際のレイトレース
  32. l 真⾯⽬にtessellationする場合と⽐べて, 品質もよく, なおかつ必要なメモ リも⼤幅に少ない → GPUパストレなどに特に有効 l Tessellation不要でBVHも動的に評価するので, displacementマップの

    オーサリングなどに使⽤可能 結果
  33. None
  34. Real-Time Rendering (5 papers) l ExtraNet: Real-time Extrapolated Rendering for

    Low-latency... → 描画遅れを防ぐための深層学習に基づくフレーム外挿 l Fast Volume Rendering with Spatiotemporal Reservoir Resampling → ボリュームレンダリングのためのReSTIR法の拡張 l Fast and Accurate Spherical Harmonics Products → 複数の球⾯調和関数の積をFFTに基づいて効率的に計算 l Perceptual Model for Adaptive Local Shading and Refresh Rate → Variable-rate shadingのための⼈間知覚に基づく陰影計算制御 l Tessellation-Free Displacement Mapping for Ray Tracing → 三⾓形の再分割を必要としないレイトレース向けdisplacementマップ法 旧来のラスタに限定した論⽂が減ってきた印象 (3, 4番⽬もラスタに限らない) 論⽂としてのシステムの完成度が⾮常に⾼く, ⾃分で論⽂を書くのは⼤変そう...