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

レイトレ合宿8 レンダラー紹介 / Renderer Introduction, Ray Tracing Camp 8

shocker_0x15
September 04, 2022

レイトレ合宿8 レンダラー紹介 / Renderer Introduction, Ray Tracing Camp 8

レイトレ合宿8 ( https://sites.google.com/view/raytracingcamp8/ )で提出した作品のレンダリングに用いたレンダラーの紹介です。

Path Tracing + Neural Radiance Cachingを実装して多重散乱の雲のレンダリングを高速化しました。

shocker_0x15

September 04, 2022
Tweet

More Decks by shocker_0x15

Other Decks in Programming

Transcript

  1. レイトレ合宿8
    https://sites.google.com/view/raytracingcamp8/
    @Shocker_0x15

    View Slide

  2. 今回の実装概要
    - Multi-scattering Volume Rendering リベンジ?
    前やったときのが少し気に食わなかったのでもう一回やってみた
    - Path Tracing + Neural Radiance Caching
    Volume Renderingへの適用
    - Hosek-Wilkie Analytic SkyのGPU移植
    毎フレームImportance Map生成
    - CUDA/OptiXによるGPUレンダラー
    実験的要素が多かったのでとりあえず、今回の合宿専用
    自前のOptiX 7 Wrapper
    前回よりEC2インスタンス弱いけどRTコア載ってるからギリギリなんとかなった

    View Slide

  3. Path Tracing + Neural Radiance Caching
    60fps, 8秒: 1フレームあたりのレンダリング予算は非常に少ない
    - 雲がしっかり映ってるフレームは2秒程度
    - 参考:レイトレ合宿5の雲は1枚絵で273秒
    GPUがいくら速かろうと雲のまじめなレンダリングはめちゃくちゃ重い
    多分白い雲の散乱アルベドは0.999を超える世界
    → まじめにやってはいけない!
    が、あくまでオフラインレンダリング、完全に適当なのは嫌だなぁ…
    ボリュームレンダリングへのNRCの適用
    - NRCはアルベドが高いシーンほど強い → 雲は最適なのでは?
    - ベースのアルゴリズムはPath Tracing + MIS, Delta/Ratio Tracking
    - NRCはInstant-NGP (Multi-Res Hash Grid Input Encoding)ベース
    - 2回目以降の散乱イベントでヒューリスティックに基づいて経路終了、NRCクエリー
    - オフラインレンダリングなので訓練データ生成とレンダリングは別パスに。
    - 今回はやっていないが雲の変形にも対応できるはず

    View Slide

  4. 雲アセットの作成
    Houdiniが良いらしいので使ってみた。確かに簡単。

    View Slide

  5. Path Tracing
    1spp: 1290 [ms]
    Path Tracing + NRC
    1spp: 150 [ms]
    Training: 60 [ms] / Rendering: 90 [ms]
    ※オリジナルのNRCと異なり別パス

    View Slide

  6. Path Tracing Path Tracing + NRC
    多少のバイアスは乗るが良い感じ

    View Slide

  7. 所感、今後
    - Super Voxelなどの既存の自由行程サンプリング高速化アプローチとの組み合わせ
    - ボリュームレンダリング用のデノイザー
    - NNなどの機械学習アプローチとはうまくやっていきたい
    “Deep Learning for Light Transport Simulation”, SIGGRAPH 2018より

    View Slide