Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

    View Slide

  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番⽬は知覚モデルの研究など, 実時間応⽤に関する幅広い研究

    View Slide

  3. ExtraNet: Real-time Extrapolated Rendering for
    Low-latency Temporal Supersampling
    ⼀⾔で⾔うと?
    対話的なアプリで描画遅れを防ぐためのニューラルネットに基づくフレーム外挿

    View Slide

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

    View Slide

  5. Demodulation:
    現在のフレームから陰影の情報だけを切り
    離す (必須ではないとのこと)
    Warping:
    オプティカルフローにより画素の遷移
    Network Inference:
    CNNを使ってdisocclusionを埋める
    Modulation:
    次フレームのアルベドを合成
    Post Processing:
    アンチエイリアス,トーンマッピング等
    提案法の処理の流れ
    l Disocclusionする箇所を効率よく補間できる[Zeng et al. 2021]の⼿法を利⽤
    l その上で, Disocclusion箇所を重点的に学習するように損失関数を導⼊

    View Slide

  6. 特徴: 過去のフレーム情報を畳み込む「History Encoder」の導⼊
    l U-Netベースのネットワーク構造で, ⽐較的素直に⾒える
    ネットワークの構造

    View Slide

  7. 基本アイディア:
    Disoccludeする箇所には, 更に後
    ろから前⽅からフローをコピーし
    て, 更に後⽅から情報を得る.
    そのまま陰影情報をコピーする
    [Bowless et al. 2021]では, パター
    ンの繰り返しが⽣じる (下図)

    Zengらは陰影結果ではなく, ⼊射
    光の情報だけを引き継ぎ, 正しい
    G-Bufferの情報で陰影を計算
    Occlusion Motion Vectors [Zeng et al. 2021]
    移動ベクトルのコピー さらに後⽅から画素値を得る

    View Slide

  8. View Slide

  9. Fast Volume Rendering with Spatiotemporal
    Reservoir Resampling
    ⼀⾔で⾔うと?
    時空間的連続性を担保した実時間ボリュームレンダリングのための
    重要度サンプリング法

    View Slide

  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]もある

    View Slide

  11. Weighted Reservoir Sampling: サンプルの⼊れ替えを確率的に⾏う
    l 各パス𝑥がreservoirに残るかどうかを表す重み係数𝑤(𝑥)を計算
    l 𝑤(𝑥)の計算は各画素で独⽴. 別画素の情報を使うには重みの調整が必要
    画素𝑞のreserviorを隣接画素𝑞’のサンプルで更新する場合の式
    l パス𝑥"#
    が与える寄与の⼤きさの⽐に, 画素𝑞, 𝑞’の平均寄与の⼤きさの⽐を
    乗じたもの
    l 隣接画素に対するパスを⽣成した乱数で𝑞での寄与 ̂
    𝑝"(𝑥"#)を計算する必要
    がある (上の式で⾚枠をつけた部分)
    ReSTIR [Bitterli+2020]

    View Slide

  12. 直接光の場合と⽐較して, ボリュームでは...
    l 直接光のサンプルに⽐べ, ⼊射寄与の計算に⾼次元の積分が必要になる.
    l Path reuse時のPDFの評価にかかる計算量が増加する.
    ボリュームレンダリングに対する拡張
    解決策:
    l 初期サンプル (重要度が未知)
    粗いボリュームをレイマーチング
    l Reuseされたサンプル (重要度⾼)
    細かいボリュームをレイマーチング
    l 最終レンダリング
    中間頂点も考慮したratio tracking

    View Slide

  13. View Slide

  14. Fast and Accurate Spherical Harmonics Products
    ⼀⾔で⾔うと?
    複数の球⾯調和関数の積を効率的に得るためのFFTに基づく計算法

    View Slide

  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に
    対して𝑂(𝑁$)の計算量

    View Slide

  16. 2つの関数の内積
    定式化
    2つの「球⾯」関数の内積
    𝐶!"#
    は𝑂(𝑁$)の成分だけが⾮ゼロのテンソル.
    その積の計算には𝑂(𝑁$)の計算量がかかる

    View Slide

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

    View Slide

  18. 結果

    View Slide

  19. Perceptual Model for Adaptive Local Shading and
    Refresh Rate
    ⼀⾔で⾔うと?
    Variable-rate shadingのための⼈間知覚に基づく軽量陰影計算制御モデル

    View Slide

  20. l 次世代GPUに実装された陰影計算制御の仕組み
    l 16x16のタイルごとにFPSや陰影計算の精度を制御できる
    l Foveated rendering等, 陰影計算精度を調整する⼿法は多くある
    → 提案法は複数の指標に基づき, FPSと陰影計算精度を両⽅制御する
    研究背景: Variable-Rate Shading

    View Slide

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

    View Slide

  22. ALSaRR = Adaptive Local Shading and Refresh Rate
    l 各16x16タイル𝑗について, 異なる解像度𝑘で描画品質を計算
    l 限られた資源の中で品質が最⼤になるようにナップザック問題を解く
    ALSaRR: 指標に基づく適応的な陰影計算制御

    View Slide

  23. View Slide

  24. Tessellation-Free Displacement Mapping for Ray
    Tracing
    ⼀⾔で⾔うと?
    Displacementマップのための三⾓形の細分化不要な加速データ構造の提案

    View Slide

  25. ⼀番安直な⽅法
    l 三⾓形をtessellation (細分割)して, displacementを反映したメッシュに
    対して空間データ構造を構築する
    → displacementが詳細な場合に膨⼤なメモリを使う
    Shell Mapping [Pormubescu et al. 2005]
    l レイを三⾓形ごとに局所的なテクスチャUV✕⾼さの三次元空間に持って
    いき, その空間で交差判定を⾏う
    → 変換が⾮線形なので⾮線形トレースが必要になる
    → 三⾓形をdisplacementした結果, 裏返りや⾃⼰交差が起こる可能性
    Displacementマップ向けのレイトレース
    Tessellationなし(=省メモリ)で, 計算に破綻のない空間データ構造を実現したい

    View Slide

  26. 提案法の概要

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  31. l BVHは最も低解像度のMIPレベルに合わせて
    作っておき, 適⽤的にBVHのノードを計算する
    (= 実際のBVHをすべて保持する必要はない)
    l 各テクセルについて交差判定を⾏って, ヒット
    したらBVH(= テクスチャ)を下に辿る. 必要な
    解像度も動的に制御可能
    l 各テクセルでは, ボックスが世界座標にアフィ
    ン変換で投影される. レイを逆アフィン変換す
    れば平⾯との交差判定になる
    実際のレイトレース

    View Slide

  32. l 真⾯⽬にtessellationする場合と⽐べて, 品質もよく, なおかつ必要なメモ
    リも⼤幅に少ない → GPUパストレなどに特に有効
    l Tessellation不要でBVHも動的に評価するので, displacementマップの
    オーサリングなどに使⽤可能
    結果

    View Slide

  33. View Slide

  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番⽬もラスタに限らない)
    論⽂としてのシステムの完成度が⾮常に⾼く, ⾃分で論⽂を書くのは⼤変そう...

    View Slide