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

Henjou-Renderer

 Henjou-Renderer

レイトレ合宿 9で発表したレンダラーの紹介スライドです

技術的なトピックとして以下のことを簡単に解説しています
- ACES Tone Mapping
- Spherical Caps VND sampling
- Thin-Film Interference
- Meta-Material BTDF(Minus IOR)

レンダラーのリポジトリ
https://github.com/kinakomoti-321/Henjou-Renderer/tree/main

kinakomoti-321

September 04, 2023
Tweet

More Decks by kinakomoti-321

Other Decks in Programming

Transcript

  1. レンダラー紹介
    Henjou-Renderer
    Kinankomoti

    View Slide

  2. Henjou-Renderer
    ・ Optix 7.7 , CUDA 12.1
    ・ Multiple Importance Sampling
    ・ Optix Denoiser
    ・ Diney BRDF
    ・ACES Film Tone Mapping
    ・Spherical Caps VND sampling
    ・Thin-Film Interference(干渉薄膜)
    ・Metamaterial BTDF(負屈折率物質)

    View Slide

  3. 目標
    ・ リファクタリング
    ・ GGX周りの最適化
    ・ Thin-Filmの実装
    ・ Metamaterialの組み込み
    ・ Multi-Scattering GGXの実装(できなかった)

    View Slide

  4. 実行できるようにす
    る!!!!!!!!!
    !!
    ※前回、本番環境で動かなかった

    View Slide

  5. レンダラーの名前
    名前つけてみたい
    仏教用語とか良さそう

    View Slide

  6. レンダラーの名前
    名前つけてみたい
    仏教用語とか良さそう
    「遍照(へんじょう)」

    View Slide

  7. レンダラーの名前
    名前つけてみたい
    仏教用語とか良さそう
    「遍照(へんじょう)」
    意味 : あたりくまなく照らすこと

    View Slide

  8. レンダラーの名前
    名前つけてみたい
    仏教用語とか良さそう
    「遍照(へんじょう)」
    意味 : あたりくまなく照らすこと
    GI感ある言葉なので採用 Henjou-Renderer

    View Slide

  9. Scene
    テーマ
    寺 + いつもの仏陀像 + 水(メタマテリアル)
    フルスクラッチ
    3日で制作
    どう見ても千と千尋の油屋

    View Slide

  10. Scene
    後光と台座の文字は梵語
    お寺で使われる古代インドの文字
    1文字で仏様を表したりする
    五十音に対応した文字もある

    View Slide

  11. View Slide


  12. View Slide

  13. れ い

    View Slide

  14. れ い と

    View Slide

  15. れ い と れ

    View Slide

  16. れ い と れ が

    View Slide

  17. れ い と れ が し

    View Slide

  18. れ い と れ が し つ

    View Slide

  19. れ い と れ が し つ ゆ

    View Slide

  20. れ い と れ が し つ ゆ く

    View Slide

  21. レイトレ合宿!

    View Slide

  22. ACES Film Tone Mapping
    ・ 映画とかに使われるコントラスト強めなTone Mapping
    ・ 和風ホラーっぽくしたかったので採用
    ・ 以下のサイトのフィッティング関数を使用
    https://knarkowicz.wordpress.com/2016/01/06/aces-
    filmic-tone-mapping-curve/
    ACES Filmic Tone Mapping Curve

    View Slide

  23. ACES Film Tone Mapping

    View Slide

  24. ACES Film Tone Mapping

    View Slide

  25. Spherical Caps VND sampling
    ・ 可視法線分布サンプリング
    ・ Sampling Visible GGX Normals with Spherical Caps
    ・ [Heitz 2018]の方法より3 ~ 7 %程度の高速化
    ・ 頻繁に呼び出すのでうれしい最適化

    View Slide

  26. Thin-Film Interference
    ・ 薄膜干渉
    ・ 薄い膜の間で光が干渉し合う現象
    ・ シャボン玉、油、
    錆びた鉄がなんか変な色になるやつetc.

    View Slide

  27. Thin-Film Interference BSDF
    ・ 一般に使われる薄膜干渉BSDFの手法
    ・ A Practical Extension to Microfacet Theory
    for the Modeling of Varying Iridescence
    ・ 薄膜干渉におけるフレネル値を計算する
    ・ リアルタイムで計算可能

    View Slide

  28. Thin-Film Interference BSDF
    ・ 上層 IOR
    ・ 薄膜 IOR、Thickness
    ・ 下層 複素屈折率 or IOR

    View Slide

  29. Thin-Film Interference
    ・ 今回は軽量化のため、LUTを使用
    ・ LUT生成 Unity アセットを制作
    ・ フレネル値(0~1)のため、pngでも問題なく保存可能
    https://github.com/kinakomoti-321/TFI_LUTCreator

    View Slide

  30. Artist Friendly Metallic Fresnel
    ・ 複素屈折率の指定は非直感的
    ・ Artist Friendly Metallic Fresnelを導入
    ・ 2つの色から複素屈折率を算出してくれる

    View Slide

  31. Thin-Film Interference
    薄膜 屈折率
    ・ ior = 3.5
    下層 複素屈折率
    ・ ior = (0.743506,0.99998,3.999995)
    ・ κ = (0.6687595,0.006324492,1264.042)
    AO MapをThickness Mapとして使用
    thickness
    cosθ

    View Slide

  32. Meta-Material
    ・ 自然界の物質にはない性質を持つ人工物質
    ・ 材料工学で色々考えられている
    ・ 代表的なのは負の屈折率を持つメタマテリアル

    View Slide

  33. 負屈折率の反射
    ・スネルの法則
    𝑛𝑖
    sin 𝜃𝑖
    = 𝑛𝑜
    sin 𝜃𝑜
    ni
    , no
    ∶屈折率 𝜃𝑖 : 入射角, 𝜃𝑜
    ∶ 屈折角
    𝜃𝑖
    𝜃𝑜
    𝑛𝑖
    𝑛𝑜

    View Slide

  34. 負屈折率の反射
    ・スネルの法則
    𝑛𝑖
    sin 𝜃𝑖
    = 𝑛𝑜
    sin 𝜃𝑜
    ni
    , no
    ∶屈折率 𝜃𝑖 : 入射角, 𝜃𝑜
    ∶ 屈折角
    ・屈折率を負と考えると・・・? (𝑛𝑜
    → −𝑛𝑜
    )
    𝑛𝑖
    sin 𝜃𝑖
    = −𝑛𝑜
    sin 𝜃𝑜 𝜃𝑖
    𝑛𝑖
    −𝑛𝑜

    View Slide

  35. 負屈折率の反射
    ・スネルの法則
    𝑛𝑖
    sin 𝜃𝑖
    = 𝑛𝑜
    sin 𝜃𝑜
    ni
    , no
    ∶屈折率 𝜃𝑖 : 入射角, 𝜃𝑜
    ∶ 屈折角
    ・屈折率を負と考えると・・・? (𝑛𝑜
    → −𝑛𝑜
    )
    𝑛𝑖
    sin 𝜃𝑖
    = −𝑛𝑜
    sin 𝜃𝑜
    𝑛𝑖
    sin 𝜃𝑖
    = 𝑛𝑜
    sin(−𝜃𝑜
    )
    𝜃𝑖
    ー𝜃𝑜
    𝑛𝑖
    −𝑛𝑜

    View Slide

  36. 負屈折率の反射
    ・スネルの法則
    𝑛𝑖
    sin 𝜃𝑖
    = 𝑛𝑜
    sin 𝜃𝑜
    ni
    , no
    ∶屈折率 𝜃𝑖 : 入射角, 𝜃𝑜
    ∶ 屈折角
    ・屈折率を負と考えると・・・? (𝑛𝑜
    → −𝑛𝑜
    )
    𝑛𝑖
    sin 𝜃𝑖
    = −𝑛𝑜
    sin 𝜃𝑜
    𝑛𝑖
    sin 𝜃𝑖
    = 𝑛𝑜
    sin(−𝜃𝑜
    )
    ・ 屈折角が入射方向に向くようになる
    𝜃𝑖
    ー𝜃𝑜
    𝑛𝑖
    −𝑛𝑜

    View Slide

  37. 負屈折率の反射
    ・スネルの法則
    𝑛𝑖
    sin 𝜃𝑖
    = 𝑛𝑜
    sin 𝜃𝑜
    ni
    , no
    ∶屈折率 𝜃𝑖 : 入射角, 𝜃𝑜
    ∶ 屈折角
    ・屈折率を負と考えると・・・? (𝑛𝑜
    → −𝑛𝑜
    )
    𝑛𝑖
    sin 𝜃𝑖
    = −𝑛𝑜
    sin 𝜃𝑜
    𝑛𝑖
    sin 𝜃𝑖
    = 𝑛𝑜
    sin(−𝜃𝑜
    )
    ・ 屈折角が入射方向に向くようになる
    ・ 面白そうなのでBTDFを考案してやってみた
    𝜃𝑖
    ー𝜃𝑜
    𝑛𝑖
    −𝑛𝑜

    View Slide

  38. Meta-Material BTDF
    物理学的にはFresnelはマイナス取ったiorと一緒
    他も幾何的な部分は通常のIORと一緒
    なので屈折角の計算以外はIdeal Refract BTDFと同様
    𝑓 𝜔𝑖
    , 𝜔𝑜
    = 𝐹 𝜔𝑖
    , 𝑛1
    , 𝑛2
    𝑛𝑖
    2
    𝑛𝑜
    2
    𝛿(𝜔𝑜
    − 𝜔𝑇
    )
    cos 𝜃𝑜
    𝜃𝑖
    ー𝜃𝑜
    𝑛𝑖
    −𝑛𝑜
    𝜔𝑖
    𝜔𝑇

    View Slide

  39. Meta-Material BTDF
    屈折角の計算は一度、通常の屈折を計算して対称にするだけで問題ない
    実装もこの対称操作を付けただけ
    𝜔𝑇
    = 𝑟𝑒𝑓𝑙𝑒𝑐𝑡(𝑟𝑒𝑓𝑟𝑎𝑐𝑡 𝜔𝑖
    , 𝑁, 𝑛𝑖
    , 𝑛𝑜
    , −𝑁)
    𝑛𝑖
    −𝑛𝑜
    𝜔𝑖
    𝜔𝑇
    𝑁
    −𝑁
    𝑟𝑒𝑓𝑟𝑎𝑐𝑡

    View Slide

  40. Meta-Material BTDF
    こんな見た目になる
    Meta-Material IOR = -1.5
    通常のガラス IOR = 1.5

    View Slide

  41. Meta-Material BTDF
    こんな見た目になる

    View Slide

  42. Meta-Material BTDF
    こんな見た目になる
    Meta-Material IOR = -1.33
    通常の水 IOR = 1.33

    View Slide

  43. Meta-Material BTDF

    View Slide

  44. Meta-Material BTDF

    View Slide

  45. 余談
    ・ 負屈折率物質は赤外線の範囲で一応実現している
    ・ 小さい回路で電磁波を操作して、疑似的にやってる
    ・ 超高解像度レンズなどに応用されることが期待されてる

    View Slide

  46. 発表作品
    1280 × 720 (HD)
    10 fps
    6 second
    各フレーム 15spp

    View Slide

  47. 所感
    取りあえず提出できて、前回の雪辱を果たせたので良かった
    1サンプルがかなり重かった (15sppで4秒ほどかかった)
    MetaMaterial は通常のやつより反射回数を増やす感じがある
    ReSTIRあたりの実装
    マルチインスタンス
    Temporalな機能の追加
    絵作り的な事もちょっと目指したい
    ColorGrading, PostEffect
    Motion

    View Slide

  48. END

    View Slide