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

レイトレ合宿9セミナー資料 SVGFについて

RunningOutRate
September 06, 2023
370

レイトレ合宿9セミナー資料 SVGFについて

レイトレ合宿9でのセミナーにて使用した発表スライドです.SVGFをザックリ解説しております.口頭での追加説明を前提としているところもありますが,他の資料と同じく参考にされるとイイ感じになると思います.誤り等ありましたらTwitter (@TTRS_Yoshi_CG)までお願いします.

RunningOutRate

September 06, 2023
Tweet

Transcript

  1. SVGF: Spatiotemporal Variance-Guided Filtering
    Yoshi’s Dream

    View Slide

  2. SVGFとは
    画像は[1]より引用

    View Slide

  3. SVGFのやっていること
    ・レイトレーシング完了(ここでG-Bufferの生成)
    ・Temporal Accumulation
    ・Variance estimation
    ・分散のフィルタリング
    ・Edge-avoiding a-trous wavelet transform
    ・(Temporal Anti-Aliasing)

    View Slide

  4. SVGFのやっていること
    画像は[1]より引用

    View Slide

  5. SVGFの目的
    ・リアルタイムレイトレをしたい
    >> サンプル数はそれほど大きくできない
    >> 情報不足に悩まされる
    ・利用できる情報はないか?
    >> 周辺画素の情報,過去の情報を利用してみる
    >> Spatio-Temporal

    View Slide

  6. G-Buffer
    ・1次レイの交差面における情報を記録
    >> Albedo
    >> Normal
    >> Depth
    >> ObjectID
    >> Motion Vector: 現在の情報と過去の情報をリンクする

    View Slide

  7. 現在の情報と過去の情報をリンクする
    N N+1
    一つ前のフレームでは見えない => 情報なし => リンク不可
    一つ前のフレームにて可視 => リンク可 => 情報の再利用(実質サンプル数を増やす)
    Data?
    hoge
    Data?
    No
    I have some data

    View Slide

  8. Temporal Accumulation
    ・1次レイの交差点は一意に定まる
    >> 一つ手前のフレームにおける輝度(ColorHistory)を再利用
    >> 実質サンプル数を稼げる
    >> G-Bufferを用いて1つ前のフレームの情報を得る
    >> 静的なシーンに限定される
    >> Detached Shadows in Motion
    Color ?
    hoge

    View Slide

  9. Temporal Accumulation
    例えばLambert Diffuse
    サンプル数が2になった!

    View Slide

  10. Variance estimation
    ・注目しているピクセルにおける輝度の分散を推定
    (i) 過去の情報が利用可能な場合
    >> 過去の輝度 and レイトレの結果得られた輝度
    (ii) そうでない場合
    >> 注目しているピクセルの周辺の輝度

    View Slide

  11. Variance estimation
    (i) 過去の情報が利用可能な場合
    ・ 過去のE[X^2] と E[X]を読み込む
    ・レイトレの結果得られた放射輝度(Radiance)を用いて
     輝度(Luminance)と輝度の2乗を計算
    ・過去のE[X^2], E[X]とミックスして現在のE[X^2], E[X]を得る
    ・式に代入
    E[X], E[X^2]?
    hoge

    View Slide

  12. Variance estimation
    (ii) 過去の情報が利用不可能な場合
    ・7x7のBilateral Filterを作用させて推定
    ・Edge-stopping functionを使用してさらに重みづけ
    >> Normal, Depthに限る
    >> Bilateral Filterの重みにそれぞれの重みを乗算(hx * hy * wn * wz)
    No
    E[X], E[X^2]?
    E[X], E[X^2]?
    No. Too small
    SampleNum

    View Slide

  13. Edge-stopping function
    ・平等な平滑化フィルターをやる
    >> 輪郭がぼやけてしまう......特徴に沿わないフィルタリング......
    ・カーネル作用位置の画像上における距離が遠いほど重みを小さくすれば良い?
    >> バイラテラルフィルタ,ガウシアンフィルタ
    ・では他の類似特徴を利用できないのか?
    >> 今回のEdge-stopping function

    View Slide

  14. Edge-stopping function - Normal
    ・Normalに関するEdge-stopping function
    ・注目する2点における法線ベクトルの内積をσn乗する(論文値: σn = 128)
    ・すなわち,法線ベクトルのなす角が大きければ小さい重みを返す
    >> 法線ベクトルの「類似度」で重み付け

    View Slide

  15. Edge-stopping function - Depth
    ・Depth: カメラと交差点の距離
    ・論文値: σz = 1
    ・「床と机」関係の区別?
    ピクセル座標
    p p+1
    depth
    分母のabs部分
    分子のabs
    q

    View Slide

  16. Edge-stopping function - Luminance
    ・分子: 輝度の差
    ・分母: 分散マップを3x3 Gaussian Filter に通したものの平方根にσl (論文値4)
    ・注目点での輝度分散が大きい => 重み大
    >> 分散の小さいところをキープ
    ・2点間の輝度の差が大きい => 重み小
    >> 影などのシーン要因特徴を保持

    View Slide

  17. Edge-avoiding a-trous wavelet transform
    ・分散の推定が終わり,画像のフィルタリングを行う
    ・大きな範囲でカーネルを使いたい
    >> 計算量の増加
    >> カーネルサイズNについて,O(N^2)
    ・穴の空いたカーネルを使おう(stride: 2^n)
    >> A-trous Filter
    >> 計算量は一定

    View Slide

  18. Edge-avoiding a-trous wavelet transform
    ・複数段のiterationがある(5段?)
    ・iterationが進むごとにカーネルサイズ (故にstride) を大きくする
    ・Variance estimationと同様にEdge-stopping functionを使用
    ・iterationごとに画像の色,輝度の分散もフィルタリングする(次iterationで利用)
    ・iteration1の結果をColorHistoryに保存する
    >> 次のフレームでのTemporal Accumulation

    View Slide

  19. SVGFのやっていること(再掲)
    画像は[1]より引用

    View Slide

  20. SVGFの問題点
    ・Specularなどの成分に関しては上手くできない
    ・Temporal Accumulationは静的なシーン限定
    ・光源パスの少ない箇所では上手くいかない
    等々
    画像は[1]より引用

    View Slide

  21. 発展手法
    いろいろあるみたいです.
    ・A-SVGF
    ・ReLax
    ・ReSTIR -GI?(最近よく聞く)
    ・勉強します

    View Slide

  22. 参考文献
    [1] Christoph. S. et.al. Spatiotemporal Variance-Guided Filtering: Real-Time
    Reconstruction for Path-Traced Global Illumination 2017.
    [2] shocker-0x15 SVGF (Spatiotemporal Variance-Guided Filtering)
    https://qiita.com/shocker-0x15/items/f928898730498c7a52c7 (Last Access 2023/09/01)
    [3] shikihuiku Spatiotemporal Variance-Guided Filtering: Real-Time Reconstruction for Path-Traced
    Global Illuminationを読んでみた
    https://shikihuiku.wordpress.com/2018/04/21/spatiotemporal-variance-guided-filtering-real-time-reco
    nstruction-for-path-traced-global-illumination%E3%82%92%E8%AA%AD%E3%82%93%E3%81%A
    7%E3%81%BF%E3%81%9F/ (Last Access 2023/09/01)

    View Slide

  23. おわり
    ありがとうございました.

    View Slide