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

raytracingcamp6-seminar-zin

Zin
September 04, 2018

 raytracingcamp6-seminar-zin

Zin

September 04, 2018
Tweet

More Decks by Zin

Other Decks in Technology

Transcript

  1. レイトレ合宿6
    Zin
    実装してきたこと、
    これからやってみたいこと

    View Slide

  2. これまで実践してきたこと

    View Slide

  3. Blenderからシーンをエクスポート
    Blenderでシーンを作成
    Pythonスクリプトで変換
    マテリアル設定などを編集
    レンダリング
    Blendファイル
    JSONファイル
    JSONファイル

    View Slide

  4. 他のレンダラー
    ❖Cycles
    ❖PBRT
    ❖RenderMan
    ❖RadeonProRender

    View Slide

  5. 色んなコンパイラで試してみる (C++)
    ❖ Windows
    • MSVC
    • Clang
    ❖ Linux (Ubuntu)
    • GCC
    • Clang
    ❖ macOS
    • GCC
    • Clang
    私のレンダラーでのパフォーマンスは・・・
    Clang (Win) [1.5x] = Clang (Ubuntu) > MSVC [1.0x] = GCC

    View Slide

  6. これから実践していきたいこと

    View Slide

  7. テストを充実させたい
    ❖ コードが大きくなってくると自分のレンダラーを
    信じられなくなってくる
    ❖ 一から書き直したくなる
    ❖ テストを書いておきましょう

    View Slide

  8. テストを充実させたい
    ❖ 解析的なテスト
    • PDFの積分やエネルギー保存則、衝突判定など
    ❖ 機能毎のテスト
    • 簡単なシーンをレンダリングしてリファレンスと比較
    ❖ 統合テスト
    • 実践的なシーンをレンダリングしてリファレンスと比較
    簡単なシーンの例 実践的なシーンの例

    View Slide

  9. レンダラーの効率化
    ❖ 年々レンダリング時間が減っていて辛い・・・
    ピクセル当たりにかけられるサンプル数はどんどん減ってる
    ❖ レンダラーを効率化したい

    View Slide

  10. View Slide

  11. View Slide

  12. View Slide

  13. View Slide

  14. View Slide

  15. View Slide

  16. レンダラーのGPU実装
    ❖CUDA
    ❖METAL
    ❖OpenGL (GLSL)
    ❖DirectX Raytracing
    ❖Vulkan
    などなど

    View Slide

  17. Vulkanについて
    ❖ 様々なOS上で動作 (Windows, Linux, macOS(MoltenVK))
    ❖ Compute Shader を持っており、SPIR-Vを受け取る

    View Slide

  18. Vulkan compute shader実行までの流れ
    ❖ SPIR-V自体は中間表現言語、
    何らかのプログラミング言語から変換する
    ❖ GLSLならglslang、OpenCLならclspv
    といったツールでコンパイルする

    View Slide

  19. 以上です

    View Slide