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

redflash [4D] renderer / Raytracing Camp 9

がむ
September 02, 2023

redflash [4D] renderer / Raytracing Camp 9

レイトレ合宿9でOptiXを用いて開発した自作レンダラーのプレゼンスライドです。

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

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

がむ

September 02, 2023
Tweet

More Decks by がむ

Other Decks in Programming

Transcript

  1. redflash [4D]
    2023-09-02 レイトレ合宿9本戦
    @gam0022 / Sho HOSODA

    View Slide

  2. アピールポイント💪

    • 超立方体

    ‣ 4Dの回転のアニメーションを3Dに投影

    ‣ “次元の差” で勝負


    • レイマーチングの高速化

    ‣ [Bán&Valasek 23] Automatic Step Size Relaxation in Sphere Tracing


    2

    View Slide

  3. 基本機能

    • 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

    View Slide

  4. レンダラーの出力設定

    • 解像度

    ‣ 1920x1080


    • 300フレーム💪

    ‣ 30FPS × 10秒(上限)

    ‣ 1フレーム1秒

    ‣ ループ再生に対応したアニメーション


    • マルチインスタンス

    ‣ フレーム分割(150フレームで2分割)

    4

    View Slide

  5. 超立方体

    • 超立方体(hypercube)

    ‣ 4次元の立方体

    5
    4次元の立方体の理解 - 大人になってからの再学習

    View Slide

  6. 四次元の描画

    4次元の回転を3次元から観測すると面白いアニメーションになる

    • 内側と外側がグルグルと入れ替わる

    6

    View Slide

  7. 四次元の描画

    7
    3次元座標を4次元に変換(逆ステレオ投影)
    4次元空間上で回転
    3次元空間上で描画
    4次元座標を3次元に変換(ステレオ投影)
    Stereographic Projection:
    Cartography Applications -
    Mathematics Stack Exchange

    View Slide

  8. ステレオ投影とは?

    • この動画が超分かりやすい

    ‣ 4次元の数 「四元数」の見た目


    8

    View Slide

  9. 2つのフラクタルから構成

    9
    外側のMengerSponge
    金属質で複雑
    内側のMengerSponge
    サイバー感でシンプル
    clearcoatとsubsurface有効
    完成形

    View Slide

  10. 完成形

    10

    View Slide

  11. モデリングの試行錯誤

    Untiy HLSLで下書きしてからCUDA Cに移植 

    11

    View Slide

  12. レイマーチング(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]の
    パラメーターを自動調整

    View Slide

  13. [Keinert et al. 14] Enhanced Sphere Tracing

    • レイのステップを ω ∈ [1, 2) 倍(relaxation parameter)

    ‣ 通常より大きくレイを進める

    ‣ 進み過ぎたら、引き返す

    13

    View Slide

  14. [Bán&Valasek 18] Accelerating Sphere Tracing

    14
    ● シーンを平面と仮定してステップを予測
    ○ Sphere同士が重ならない最大のステップ
    ○ ω ∈ [0, 1] の定数でステップの補正の強さを調整
    ■ 平面のシーン: ω=1
    ■ 曲面のシーン: ω<1
    普通のSphereTracing

    View Slide

  15. [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

    View Slide

  16. [Bán&Valasek 23] Automatic Step Size Relaxation in Sphere Tracing

    提出シーンで計測した結果、1.9倍も高速化🎉

    16
    MengerSpongeはBox(平面)で構成されるので、とても相性が良かった

    View Slide

  17. [Bán&Valasek 23] Automatic Step Size Relaxation in Sphere Tracing

    形状の歪みが少ないほど効果が高い(2sppの描画時間)

    17
    50 frame 150 frame 250 frame
    ● 比率
    ● 通常
    ● [BV23]

    View Slide

  18. [Bán&Valasek 23] Automatic Step Size Relaxation in Sphere Tracing

    去年のシーンは通常SphereTracingの半分まで性能が悪化…

    平面が含まれないフラクタルだと厳しいのかもしれない

    18

    View Slide

  19. その他の工夫

    • 制限時間を守る工夫

    ‣ 各フレームの最初の2サンプリングからギリギリ間に合うサンプリング数を推定


    • PNGの保存の並列化

    ‣ サブスレッドで動作

    ‣ メインスレッドのレンダリングをブロックしない


    • 軽量版のレンダラー

    ‣ アニメーションの確認用


    • プライマリレイのDepthを2回目以降のサンプリングで使い回す

    ‣ 大きく高速化できるが、DoFできなくなる

    19

    View Slide

  20. アピールポイント💪

    • 超立方体

    ‣ 4Dの回転のアニメーションを3Dに投影

    ‣ “次元の差” で勝負


    • レイマーチングの高速化

    ‣ [Bán&Valasek 23] Automatic Step Size Relaxation in Sphere Tracing


    20

    View Slide

  21. END.
    21

    View Slide