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

redflash [4D] renderer / Raytracing Camp 9

がむ
September 02, 2023

redflash [4D] renderer / Raytracing Camp 9

レイトレ合宿9でOptiXを用いて開発した自作レンダラーのプレゼンスライドです。
https://gam0022.net/blog/2023/09/20/rtcamp9/

4次元空間上で回転し、それから3次元に投影することで、内外が入れ替わるような不思議なループアニメーションを制作しました。

2023年に発表された「Automatic Step Size Relaxation in Sphere Tracing」という手法でレイマーチングの交差判定を高速化しました。

Google Slides版
https://docs.google.com/presentation/d/1f05HU58XD2w_71CJOdiEqOsBI8L2TYRTMndNT9MPqpI/edit

がむ

September 02, 2023
Tweet

More Decks by がむ

Other Decks in Programming

Transcript

  1. アピールポイント💪
 • 超立方体
 ‣ 4Dの回転のアニメーションを3Dに投影
 ‣ “次元の差” で勝負
 
 •

    レイマーチングの高速化
 ‣ [Bán&Valasek 23] Automatic Step Size Relaxation in Sphere Tracing
 
 2
  2. 基本機能
 • Unidirectional Path Tracing
 ‣ implemented in NVIDIA® OptiX

    6.5
 • Materials
 ‣ Disney BRDF, Lambert Diffuse
 • NEE(Next Event Estimation)
 • MIS(Multiple Importance Sampling)
 • Primitives
 ‣ Sphere
 ‣ Mesh
 ‣ Distance Function (Raymarching)
 • ACES Filmic Tone Mapping
 • Deep Learning Denoising
 3
  3. レンダラーの出力設定
 • 解像度
 ‣ 1920x1080
 
 • 300フレーム💪
 ‣ 30FPS

    × 10秒(上限)
 ‣ 1フレーム1秒
 ‣ ループ再生に対応したアニメーション
 
 • マルチインスタンス
 ‣ フレーム分割(150フレームで2分割)
 4
  4. レイマーチング(Sphere Tracing)の高速化の研究
 • [Keinert et al. 14] Enhanced Sphere Tracing


    • [Bán&Valasek 18] Accelerating Sphere Tracing
 • [Bán&Valasek 23] Automatic Step Size Relaxation in Sphere Tracing
 12 今年の論文を実装! [Bán&Valasek 18] シーンを平面と仮定 Sphereが重ならないように次のステップを求める 普通のSphereTracing [Bán&Valasek 23]は [Bán&Valasek 18]の パラメーターを自動調整
  5. [Keinert et al. 14] Enhanced Sphere Tracing
 • レイのステップを ω

    ∈ [1, 2) 倍(relaxation parameter)
 ‣ 通常より大きくレイを進める
 ‣ 進み過ぎたら、引き返す
 13
  6. [Bán&Valasek 18] Accelerating Sphere Tracing
 14 • シーンを平面と仮定してステップを予測 ◦ Sphere同士が重ならない最大のステップ

    ◦ ω ∈ [0, 1] の定数でステップの補正の強さを調整 ▪ 平面のシーン: ω=1 ▪ 曲面のシーン: ω<1 普通のSphereTracing
  7. [Bán&Valasek 23] Automatic Step Size Relaxation in Sphere Tracing
 •

    [Bán&Valasek 18] Accelerating Sphere Tracing と同じ著者ら
 ‣ Róbert Bán and Gábor Valasek
 
 • [Bán&Valasek 18]と同様に平面を仮定して最大のステップを決める
 • ωを状況に応じて自動調整
 ‣ 引き返しがない状態が続けば、大きく調整 
 ‣ 引き返しが起きたら、ωを小さくリセット 
 
 • 前の2つの手法より良いか同等の結果 
 15
  8. [Bán&Valasek 23] Automatic Step Size Relaxation in Sphere Tracing
 提出シーンで計測した結果、1.9倍も高速化🎉


    16 MengerSpongeはBox(平面)で構成されるので、とても相性が良かった
  9. その他の工夫
 • 制限時間を守る工夫
 ‣ 各フレームの最初の2サンプリングからギリギリ間に合うサンプリング数を推定
 
 • PNGの保存の並列化
 ‣ サブスレッドで動作


    ‣ メインスレッドのレンダリングをブロックしない
 
 • 軽量版のレンダラー
 ‣ アニメーションの確認用
 
 • プライマリレイのDepthを2回目以降のサンプリングで使い回す
 ‣ 大きく高速化できるが、DoFできなくなる
 19
  10. アピールポイント💪
 • 超立方体
 ‣ 4Dの回転のアニメーションを3Dに投影
 ‣ “次元の差” で勝負
 
 •

    レイマーチングの高速化
 ‣ [Bán&Valasek 23] Automatic Step Size Relaxation in Sphere Tracing
 
 20