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

Volume Expression GGX(Microfacet)

kinakomoti-321
September 02, 2023

Volume Expression GGX(Microfacet)

レイトレ合宿9のセミナーで発表した資料です

kinakomoti-321

September 02, 2023
Tweet

More Decks by kinakomoti-321

Other Decks in Research

Transcript

  1. Volume表現の
    GGX(Microfacet)
    KiNaNkomoti

    View Slide

  2. 目次
    Microfacet理論とGGX
    Microfacet BSDFの問題点
    Volume Rendering
    Microflake理論
    Volume 表現のGGX

    View Slide

  3. Microfacet理論と
    GGX

    View Slide

  4. 粗さを持つマテリアル
    現実世界のマテリアルは「粗さ (Roughness)」という概念を持つ
    錆、傷など様々な原因で物質は「粗い」質感を持っていく

    View Slide

  5. 「粗さ」の原因
    「粗さ」は表面の小さな凹凸によって生じていると考えられる
    入射してきた光は微小な凹凸によって様々な方向へと反射する

    View Slide

  6. Microfacet理論
    「粗さを持つ表面の反射は表面のMicrofacet
    という微小な凹凸によって生じている」

    View Slide

  7. Microfacet理論
    Microfacet理論に基づいたBSDFは何処でも使われている

    View Slide

  8. Microfacet理論
    Microfacet理論に基づいたBSDFは何処でも使われている
    主にSpecular反射のBRDFが有名
    𝑓 𝜔𝑖
    , 𝜔𝑜
    =
    𝐹 𝜔𝑖
    , 𝜔ℎ
    𝐷 𝜔ℎ
    𝐺2
    (𝜔𝑖
    , 𝜔𝑜
    , 𝜔ℎ
    )
    4 |𝜔𝑖
    ⋅ 𝑛| 𝜔𝑜
    ⋅ 𝑛
    ここではこの式をMicrofacet BRDFと呼ぶ
    Microfacet BRDF

    View Slide

  9. Microfacet BRDF
    𝐹 𝜔𝑖
    , 𝜔ℎ
    𝐷 𝜔ℎ
    𝐺2
    (𝜔𝑖
    , 𝜔𝑜
    , 𝜔ℎ
    )
    4 |𝜔𝑖
    ⋅ 𝑛| 𝜔𝑜
    ⋅ 𝑛
    フレネル
    法線分布関数
    (Normal Distribution) シャドウィングマスキング
    関数
    補正項

    View Slide

  10. Microfacet BRDF
    𝐹 𝜔𝑖
    , 𝜔ℎ
    𝐷 𝜔ℎ
    𝐺2
    (𝜔𝑖
    , 𝜔𝑜
    , 𝜔ℎ
    )
    4 |𝜔𝑖
    ⋅ 𝑛| 𝜔𝑜
    ⋅ 𝑛
    フレネル
    • 反射率を示す
    • ハーフベクトルを法線とするMicrofacetとしか反射
    しないため、ハーフベクトルとのフレネルになる。
    𝜔ℎ
    𝜔𝑖
    𝜔𝑜
    Microfacet

    View Slide

  11. Microfacet BRDF
    𝐹 𝜔𝑖
    , 𝜔ℎ
    𝐷 𝜔ℎ
    𝐺2
    (𝜔𝑖
    , 𝜔𝑜
    , 𝜔ℎ
    )
    4 |𝜔𝑖
    ⋅ 𝑛| 𝜔𝑜
    ⋅ 𝑛
    法線分布関数
    (Normal Distribution)
    • ある法線𝜔ℎ
    を持つMicrofacetの面積を返す関数
    • Microfacetの割合を示すものとしてみてよい

    View Slide

  12. Microfacet BRDF
    𝐹 𝜔𝑖
    , 𝜔ℎ
    𝐷 𝜔ℎ
    𝐺2
    (𝜔𝑖
    , 𝜔𝑜
    , 𝜔ℎ
    )
    4 |𝜔𝑖
    ⋅ 𝑛| 𝜔𝑜
    ⋅ 𝑛
    シャドウィングマスキング関数
    • 他のMicrofacetによって遮蔽(Shadowing Masking)
    される割合を示す関数

    View Slide

  13. Microfacet BRDFのモデル
    Microfacetの形状によって𝐷 𝜔ℎ
    , 𝐺2
    (𝜔𝑖
    , 𝜔𝑜
    , 𝜔ℎ
    )が変わる
    色々な形状が考えられており、それぞれ~モデルという形で呼ばれる

    View Slide

  14. Microfacet BRDFのモデル
    Microfacetの形状によって𝐷 𝜔ℎ
    , 𝐺2
    (𝜔𝑖
    , 𝜔𝑜
    , 𝜔ℎ
    )が変わる
    色々な形状が考えられており、それぞれ~モデルという形で呼ばれる
    Torrance-Sparrow Model

    View Slide

  15. Microfacet BRDFのモデル
    Microfacetの形状によって𝐷 𝜔ℎ
    , 𝐺2
    (𝜔𝑖
    , 𝜔𝑜
    , 𝜔ℎ
    )が変わる
    色々な形状が考えられており、それぞれ~モデルという形で呼ばれる
    Torrance-Sparrow Model
    Cook-Torrance Model

    View Slide

  16. Microfacet BRDFのモデル
    Microfacetの形状によって𝐷 𝜔ℎ
    , 𝐺2
    (𝜔𝑖
    , 𝜔𝑜
    , 𝜔ℎ
    )が変わる
    色々な形状が考えられており、それぞれ~モデルという形で呼ばれる
    Torrance-Sparrow Model
    Cook-Torrance Model
    GGX Model(Walter Model)

    View Slide

  17. GGX Model (Walter Model)
    GGXモデル(Walter Model)は[Walter et al. 2007]に発表されたモデル
    現在では解析的なモデルでは最も現実に近いとされている

    View Slide

  18. GGX Model (Walter Model)
    法線分布関数は以下で表され、GGX法線分布関数と呼ばれる。
    楕円体の法線分布に等しい
    𝐷 𝜔𝑚
    =
    1
    𝜋 𝛼2 cos4 𝜃𝑚
    1 + tan2 𝜃𝑚
    2

    View Slide

  19. GGX Model (Walter Model)
    シャドウィングマスキング関数の導出にはSmith Modelが使われている
    「各Microfacetの高さと傾きに相関がない」

    View Slide

  20. GGX Model (Walter Model)
    シャドウィングマスキング関数はΛ関数によって表現される

    View Slide

  21. Microface BSDFの
    問題点

    View Slide

  22. Multiple-Scattering
    Microfacetに入射した光は何度も反射して外に出ていく光が存在する
    何度も反射することを多重散乱 Multiple-Scatteringという
    対称的に1度の反射で出ていくことは単一?散乱 Single-Scatteringと呼ぶ

    View Slide

  23. Microfacet BSDFの問題点
    実はSingle-Scatteringのみを考えた式
    Multiple-Scatteringの光は全て消えていると仮定している

    View Slide

  24. Microfacet BSDFの問題点
    非常に粗い物質では、多重散乱光は反射光の20~40%ぐらいを占める

    View Slide

  25. Microfacet BSDFの問題点
    非常に粗い物質では、多重散乱光は反射光の20~40%ぐらいを占める
    Roughnessが1に近いマテリアルが現実よりかなり黒くなる
    特にガラスのようなものだと実用的にも問題になるほど

    View Slide

  26. Multiple-Scatteringの難しさ
    やはり解析的に求めるのは難しい
    いくつか試みはあるが近似的手法
    Oren-Nayer Model

    View Slide

  27. Volume Rendering

    View Slide

  28. Volume Rendering
    霧や雲など(Volume)における3次元的な散乱現象を再現する手法

    View Slide

  29. Volume Rendering Equation
    Volume Renderingは「吸収」、「散乱」、「発光」の3つの要素からなる
    ∇ ⋅ 𝜔 L x, 𝜔 = −𝜇𝑎
    𝑥 𝐿 𝑥, 𝜔
    −𝜇𝑠
    (𝑥)𝐿(𝑥, 𝜔) + 𝜇𝑠

    𝑠2
    𝑓𝑝
    𝜔′, 𝜔 𝐿 𝑥, 𝜔′ 𝑑𝜔′
    + 𝑄(𝜔)
    𝜇𝑎
    𝑥 : 吸収係数
    𝜇𝑠
    𝑥 : 散乱係数
    𝑓𝑝
    𝜔′, 𝜔 : 位相関数

    View Slide

  30. Volume Rendering Equation
    Volume Renderingは「吸収」、「散乱」、「発光」の3つの要素からなる
    ∇ ⋅ 𝜔 L x, 𝜔 = −𝜇𝑎
    𝑥 𝐿 𝑥, 𝜔
    −𝜇𝑠
    (𝑥)𝐿(𝑥, 𝜔) + 𝜇𝑠

    𝑠2
    𝑓𝑝
    𝜔′, 𝜔 𝐿 𝑥, 𝜔′ 𝑑𝜔′
    + 𝑄(𝜔)
    𝜇𝑎
    𝑥 : 吸収係数
    𝜇𝑠
    𝑥 : 散乱係数
    𝑓𝑝
    𝜔′, 𝜔 : 位相関数
    吸収
    𝜔

    View Slide

  31. Volume Rendering Equation
    Volume Renderingは「吸収」、「散乱」、「発光」の3つの要素からなる
    −𝜇𝑠
    (𝑥)𝐿(𝑥, 𝜔) + 𝜇𝑠

    𝑠2
    𝑓𝑝
    𝜔′, 𝜔 𝐿 𝑥, 𝜔′ 𝑑𝜔′
    + 𝑄(𝜔)
    𝜇𝑎
    𝑥 : 吸収係数
    𝜇𝑠
    𝑥 : 散乱係数
    𝑓𝑝
    𝜔′, 𝜔 : 位相関数
    ∇ ⋅ 𝜔 L x, 𝜔 = −𝜇𝑎
    𝑥 𝐿 𝑥, 𝜔
    入射光の
    散乱
    𝜔

    View Slide

  32. Volume Rendering Equation
    Volume Renderingは「吸収」、「散乱」、「発光」の3つの要素からなる
    𝜇𝑎
    𝑥 : 吸収係数
    𝜇𝑠
    𝑥 : 散乱係数
    𝑓𝑝
    𝜔′, 𝜔 : 位相関数
    ∇ ⋅ 𝜔 L x, 𝜔 = −𝜇𝑎
    𝑥 𝐿 𝑥, 𝜔 その他方向からのの散乱
    −𝜇𝑠
    (𝑥)𝐿(𝑥, 𝜔) + 𝜇𝑠

    𝑠2
    𝑓𝑝
    𝜔′, 𝜔 𝐿 𝑥, 𝜔′ 𝑑𝜔′
    + 𝑄(𝜔)
    𝜔
    𝜔′

    View Slide

  33. Volume Rendering Equation
    Volume Renderingは「吸収」、「散乱」、「発光」の3つの要素からなる
    𝜇𝑎
    𝑥 : 吸収係数
    𝜇𝑠
    𝑥 : 散乱係数
    𝑓𝑝
    𝜔′, 𝜔 : 位相関数
    ∇ ⋅ 𝜔 L x, 𝜔 = −𝜇𝑎
    𝑥 𝐿 𝑥, 𝜔
    発光
    𝜔
    −𝜇𝑠
    (𝑥)𝐿(𝑥, 𝜔) + 𝜇𝑠

    𝑠2
    𝑓𝑝
    𝜔′, 𝜔 𝐿 𝑥, 𝜔′ 𝑑𝜔′
    + 𝑄(𝜔)

    View Slide

  34. Volume Rendering Equation
    輝度の減少部分をまとめて、消散係数(Attenuation coefficient)と書く場合もある
    ∇ ⋅ 𝜔 L x, 𝜔
    = − 𝜇𝑎
    𝑥 + 𝜇𝑠
    𝑥 𝐿 𝑥, 𝜔 + 𝜇𝑠

    𝑠2
    𝑓𝑝
    𝜔′, 𝜔 𝐿 𝑥, 𝜔′ 𝑑𝜔′ + 𝑄(𝜔

    View Slide

  35. Volume Rendering Equation
    輝度の減少部分をまとめて、消散係数(Attenuation coefficient)と書く場合もある
    ∇ ⋅ 𝜔 L x, 𝜔
    = −𝜇𝑡
    𝑥 𝐿 𝑥, 𝜔 + 𝜇𝑠

    𝑠2
    𝑓𝑝
    𝜔′, 𝜔 𝐿 𝑥, 𝜔′ 𝑑𝜔′ + 𝑄(𝜔)
    𝜇𝑡
    𝑥 : 消散係数
    𝜇𝑠
    𝑥 : 散乱係数
    𝑓𝑝
    𝜔′, 𝜔 : 位相関数

    View Slide

  36. 位相関数 Phase Function
    𝜔′から入射してきた光が𝜔方向へと反射する割合を示す関数
    VolumeにおけるBSDF的な立ち位置
    正規化されている

    𝑠2
    𝑓𝑝
    𝜔′, 𝜔 𝑑𝜔′ = 1
    𝑓𝑝
    𝜔′, 𝜔
    𝜔′

    View Slide

  37. Volume Renderingと多重散乱
    Volume Renderingは多重散乱を表現できる
    実装でもVolume内を何度も曲げながら計算していく (Free-Path Sampling)

    View Slide

  38. Volumeの色々な使い道
    Volumeは霧のような気体的なものだけを指すわけではない
    毛皮や髪の毛といった固体的なものをVolume Renderingで表現する方法もある
    適切に係数、関数を設定してあげれば、どんな散乱もVolumetric Renderingで表現できる

    View Slide

  39. Microflake理論

    View Slide

  40. Multiple-Scatteringのアイディア
    Volume Renderingは多重散乱を表現可能
    適切に係数を設定してあげれば、Volumetric Renderingで表現できる

    View Slide

  41. Multiple-Scatteringのアイディア
    Microfacetにおける多重散乱をVolume Renderingで表現する
    Volume Renderingは多重散乱を表現可能
    適切に係数を設定してあげれば、Volumetric Renderingで表現できる
    Microfacet
    Volume

    View Slide

  42. [Heitz et al. 2016]の手法
    Multiple-Scattering Microfacet BSDFs with the Smith Model
    Microfacetにおける多重散乱を
    Volume Rendering的に計算する手法
    Volumeの各係数は Microflake理論に
    基づいて設定している

    View Slide

  43. Microflake理論
    [Jakob et al. 2010]
    A radiative transfer framework for rendering materials with anisotropic structure

    View Slide

  44. Microflake理論
    [Jakob et al. 2010]
    A radiative transfer framework for rendering materials with anisotropic structure
    FurなどのVolume Renderingを物理ベースで論議することを目的とした論文

    View Slide

  45. Microflake理論
    「Volumeの散乱はVolume内の微小な粒子(Microflake)の散乱によって生じる」
    いわば3次元のMicrofacet理論
    Microflake
    Volume

    View Slide

  46. Microflake理論
    Microflakeは発光しないので、MicroflakeによるVolume Equationは
    ∇ ⋅ 𝜔 L x, 𝜔 = −𝜇𝑡
    𝑥 𝐿 𝑥, 𝜔 + 𝜇𝑠
    (𝑥) න
    𝑠2
    𝑓𝑝
    𝜔′, 𝜔 𝐿 𝑥, 𝜔′ 𝑑𝜔′

    View Slide

  47. Microflake理論
    Microflakeは発光しないので、MicroflakeによるVolume Equationは
    ∇ ⋅ 𝜔 L x, 𝜔 = −𝜇𝑡
    𝑥 𝐿 𝑥, 𝜔 + 𝜇𝑠
    (𝑥) න
    𝑠2
    𝑓𝑝
    𝜔′, 𝜔 𝐿 𝑥, 𝜔′ 𝑑𝜔′
    これらを物理的ベースで求めていく

    View Slide

  48. 消散係数𝜇𝑡
    の導出
    Microflakeによってどれだけ光が減少するかを見ていく
    単なる遮蔽を計算すればよい
    𝜔
    𝐿(𝜔)
    𝐿′(𝜔)
    − 𝐼𝑎𝑡𝑡𝑒𝑛
    𝐴
    𝑑𝑠
    底面積𝐴, 微小な長さ𝑑𝑠の円柱を通った時の
    輝度の減少量𝐼𝑎𝑡𝑡𝑒𝑛
    を考える
    単位体積当たりの減少量が消散係数の項に
    相当する
    𝜇𝑡
    𝑥 𝐿 𝑥, 𝜔 =
    𝐼𝑎𝑡𝑡𝑒𝑛
    𝐴 𝑑𝑠

    View Slide

  49. 消散係数𝜇𝑡
    の導出
    円柱内にはいくつものMicroflakeが含まれる
    Miroflakeの密度を𝜌と定義する
    𝜔
    𝐿(𝜔)
    𝐿′(𝜔)
    − 𝐼𝑎𝑡𝑡𝑒𝑛
    𝐴
    𝑑𝑠
    円柱内に含まれるMicroflakeの数
    𝜌 𝐴 𝑑𝑠

    View Slide

  50. 消散係数𝜇𝑡
    の導出
    法線𝜔𝑚
    を持つMicroflakeの遮蔽を考える
    Microflakeにおける法線分布を𝐷(𝜔𝑚
    )と定義
    𝜔
    𝐿(𝜔)
    𝐿′(𝜔)
    − 𝐼𝑎𝑡𝑡𝑒𝑛
    𝐴
    𝑑𝑠
    円柱内に含まれる法線𝜔𝑚
    のMicroflakeの数
    𝜌 𝐴 𝑑𝑠 𝐷(𝜔𝑚
    )
    𝜔𝑚
    𝜔𝑚
    𝜔𝑚
    𝜔𝑚

    View Slide

  51. 消散係数𝜇𝑡
    の導出
    𝜔𝑚
    のMicroflake1つ当たりの投影面積を
    𝜎𝑚𝑖𝑐𝑟𝑜
    (𝜔, 𝜔𝑚
    )と定義する 𝜔
    𝐿(𝜔)
    𝐿′(𝜔)
    − 𝐼𝑎𝑡𝑡𝑒𝑛
    𝐴
    𝑑𝑠
    𝜔𝑚
    𝜔𝑚
    𝜔𝑚
    𝜔𝑚
    法線𝜔𝑚
    のMicroflakeによる遮蔽面積
    法線𝜔𝑚
    のMicroflakeによる輝度減少量
    𝜌 𝐴 𝑑𝑠 𝐷 𝜔𝑚
    𝜎(𝜔, 𝜔𝑚
    )
    𝑑𝐼𝑎𝑡𝑡𝑒𝑛
    𝑑𝜔𝑚
    = 𝜌 𝐴 𝑑𝑠 𝐷 𝜔𝑚
    𝜎 𝜔, 𝜔𝑚
    𝐿(𝜔)
    𝜎𝑚𝑖𝑐𝑟𝑜
    (𝜔, 𝜔𝑚
    )

    View Slide

  52. 消散係数𝜇𝑡
    の導出
    各法線のMicroflakeによる遮蔽を集めれば
    求められる
    𝐴
    𝐼𝑎𝑡𝑡𝑒𝑛 = ׬
    𝑠2
    𝜌 𝐴 𝑑𝑠 𝐷 𝜔𝑚
    𝜎 𝜔, 𝜔𝑚
    𝐿 𝜔 𝑑𝜔𝑚
    = 𝜌 𝐴 𝑑𝑠 ׬
    𝑠2
    𝐷 𝜔𝑚
    𝜎 𝜔, 𝜔𝑚
    𝑑𝜔𝑚
    × 𝐿 𝜔
    単位体積当たりの減少量は円柱の体積で割れば出てくるので
    𝐼𝑎𝑡𝑡𝑒𝑛
    𝐴 𝑑𝑠
    = 𝜌 න
    𝑠2
    𝐷 𝜔𝑚
    𝜎 𝜔, 𝜔𝑚
    𝑑𝜔𝑚
    × 𝐿 𝜔

    View Slide

  53. 消散係数の導出
    各法線のMicroflakeによる遮蔽を集めれば
    求められる
    𝐴
    𝐼𝑎𝑡𝑡𝑒𝑛 = ׬
    𝑠2
    𝜌 𝐴 𝑑𝑠 𝐷 𝜔𝑚
    𝜎 𝜔, 𝜔𝑚
    𝐿 𝜔 𝑑𝜔𝑚
    = 𝜌 𝐴 𝑑𝑠 ׬
    𝑠2
    𝐷 𝜔𝑚
    𝜎 𝜔, 𝜔𝑚
    𝑑𝜔𝑚
    × 𝐿 𝜔
    単位体積当たりの減少量は円柱の体積で割れば出てくるので
    𝐼𝑎𝑡𝑡𝑒𝑛
    𝐴 𝑑𝑠
    = 𝜌 න
    𝑠2
    𝐷 𝜔𝑚
    𝜎 𝜔, 𝜔𝑚
    𝑑𝜔𝑚
    × 𝐿 𝜔
    消散係数 𝜇𝑡

    View Slide

  54. 散乱係数𝜇𝑠
    と位相関数𝑓𝑝
    Microflakeの反射による𝜔方向の光の増加量を調べる
    消散係数と同様の円柱を考えて、
    散乱による輝度の増加量を𝐼𝑖𝑛𝑠𝑐𝑎𝑡
    と定義する
    𝜔′
    + 𝐼𝑎𝑡𝑡𝑒𝑛
    𝐴
    𝑑𝑠
    𝐿(𝜔′)

    View Slide

  55. 散乱係数𝜇𝑠
    と位相関数𝑓𝑝
    法線𝜔𝑚
    のMicroflakeによる散乱を考える。
    Microflakeの散乱におけるミクロな位相関数を
    𝑓𝑚𝑖𝑐𝑟𝑜
    𝜔𝑚
    , 𝜔′ → 𝜔 と定義する
    𝜔′
    𝜔
    𝐿(𝜔′)
    Microflake1つによって増加する輝度は
    Microflake
    𝑓𝑚𝑖𝑐𝑟𝑜
    𝜔𝑚
    , 𝜔′ → 𝜔

    𝑠2
    𝑓𝑚𝑖𝑐𝑟𝑜
    𝜔𝑚
    , 𝜔′ → 𝜔 𝜎 𝜔𝑚
    , 𝜔 𝐿 𝜔′ 𝑑𝜔′
    𝜔𝑚
    を向くMicroflakeは𝜌 𝐴 𝑑𝑠 𝐷(𝜔𝑚
    )個存在するので
    𝑑 𝐼𝑖𝑛𝑠𝑐𝑎𝑡
    𝑑𝜔𝑚
    = 𝜌 𝐴 𝑑𝑠 𝐷(𝜔𝑚
    ) න
    𝑠2
    𝑓𝑚𝑖𝑐𝑟𝑜
    𝜔𝑚
    , 𝜔′ → 𝜔 𝐿 𝜔′ 𝑑𝜔′

    View Slide

  56. 散乱係数𝜇𝑠
    と位相関数𝑓𝑝
    Microflake全体による輝度増加量は
    𝐼𝑖𝑛𝑠𝑐𝑎𝑡
    = 𝐴 𝑑𝑠 න
    𝑠2

    𝑠2
    𝜌 𝐷(𝜔𝑚
    ) 𝑓𝑚𝑖𝑐𝑟𝑜
    𝜔𝑚
    , 𝜔′ → 𝜔 𝜎 𝜔𝑚
    , 𝜔 𝐿 𝜔′ 𝑑𝜔′𝑑𝜔𝑚
    𝐼𝑖𝑛𝑠𝑐𝑎𝑡
    𝐴 𝑑𝑠
    = න
    𝑠2

    𝑠2
    𝜌 𝐷(𝜔𝑚
    ) 𝑓𝑚𝑖𝑐𝑟𝑜
    𝜔𝑚
    , 𝜔′ → 𝜔 𝜎 𝜔𝑚
    , 𝜔 𝐿 𝜔′ 𝑑𝜔′𝑑𝜔𝑚
    単位体積当たりの輝度増加量は

    View Slide

  57. 散乱係数𝜇𝑠
    と位相関数𝑓𝑝

    𝑠2

    𝑠2
    𝜌 𝐷(𝜔𝑚
    ) 𝑓𝑚𝑖𝑐𝑟𝑜
    𝜔𝑚
    , 𝜔′ → 𝜔 𝜎 𝜔𝑚
    , 𝜔 𝑑𝜔𝑚
    𝐿 𝜔′ 𝑑𝜔′
    散乱係数の項に相当する量

    𝑠2
    𝜇𝑠
    𝑓𝑝
    𝜔, 𝜔′ → 𝜔 𝐿 𝜔′ 𝑑𝜔′

    View Slide

  58. 散乱係数𝜇𝑠
    と位相関数𝑓𝑝
    位相関数は全球積分すると1になるので、散乱係数は

    𝑠2
    𝜇𝑠
    𝑓𝑝
    𝜔, 𝜔′ → 𝜔 𝑑𝜔′ = න
    𝑠2

    𝑠2
    𝜌 𝐷(𝜔𝑚
    ) 𝑓𝑚𝑖𝑐𝑟𝑜
    𝜔𝑚
    , 𝜔′ → 𝜔 𝜎 𝜔𝑚
    , 𝜔 𝑑𝜔𝑚
    𝑑𝜔′
    𝜇𝑠
    = 𝜌 න
    𝑠2
    𝐷 𝜔𝑚
    𝜎 𝜔𝑚
    , 𝜔 න
    𝑠2
    𝑓𝑚𝑖𝑐𝑟𝑜
    𝜔𝑚
    , 𝜔′ → 𝜔 𝑑𝜔′ 𝑑𝜔𝑚
    𝜇𝑠
    = 𝜌 න
    𝑠2
    𝐷 𝜔𝑚
    𝜎 𝜔𝑚
    , 𝜔 𝑑𝜔𝑚

    View Slide

  59. 散乱係数𝜇𝑠
    と位相関数𝑓𝑝
    位相関数
    𝑓𝑝
    𝜔, 𝜔′ → 𝜔 =
    1
    𝜇𝑠

    𝑠2
    𝜌 𝐷(𝜔𝑚
    ) 𝑓𝑚𝑖𝑐𝑟𝑜
    𝜔𝑚
    , 𝜔′ → 𝜔 𝜎 𝜔𝑚
    , 𝜔 𝑑𝜔𝑚

    View Slide

  60. MicroflakeのVolume
    位相関数
    𝑓𝑝
    𝜔, 𝜔′ → 𝜔 =
    1
    𝜇𝑠

    𝑠2
    𝜌 𝐷(𝜔𝑚
    ) 𝑓𝑚𝑖𝑐𝑟𝑜
    𝜔𝑚
    , 𝜔′ → 𝜔 𝜎 𝜔𝑚
    , 𝜔 𝑑𝜔𝑚
    𝜇𝑠
    = 𝜌 න
    𝑠2
    𝐷 𝜔𝑚
    𝜎 𝜔𝑚
    , 𝜔 𝑑𝜔𝑚
    散乱係数
    𝜇𝑡
    = 𝜌 න
    𝑠2
    𝐷 𝜔𝑚
    𝜎 𝜔, 𝜔𝑚
    𝑑𝜔𝑚
    消散係数

    View Slide

  61. MicroflakeのVolume
    位相関数
    𝑓𝑝
    𝜔, 𝜔′ → 𝜔 =
    1
    𝜇𝑠

    𝑠2
    𝜌 𝐷(𝜔𝑚
    ) 𝑓𝑚𝑖𝑐𝑟𝑜
    𝜔𝑚
    , 𝜔′ → 𝜔 𝜎 𝜔𝑚
    , 𝜔 𝑑𝜔𝑚
    𝜇𝑠
    = 𝜌 න
    𝑠2
    𝐷 𝜔𝑚
    𝜎 𝜔𝑚
    , 𝜔 𝑑𝜔𝑚
    散乱係数
    𝜇𝑡
    = 𝜌 න
    𝑠2
    𝐷 𝜔𝑚
    𝜎 𝜔, 𝜔𝑚
    𝑑𝜔𝑚
    消散係数 • Microflake全部同じ面積𝑎を
    持ってるとして仮定
    𝜎 𝜔, 𝜔𝑚
    = 𝑎 |𝜔𝑚
    ⋅ 𝑛|

    View Slide

  62. MicroflakeのVolume
    位相関数
    𝑓𝑝
    𝜔, 𝜔′ → 𝜔 =
    1
    𝜇𝑠

    𝑠2
    𝜌 𝐷 𝜔𝑚
    𝑓𝑚𝑖𝑐𝑟𝑜
    𝜔𝑚
    , 𝜔′ → 𝜔 𝑎|𝜔𝑚
    ⋅ 𝜔|𝑑𝜔𝑚
    𝜇𝑠
    = 𝜌 න
    𝑠2
    𝐷 𝜔𝑚
    𝑎|𝜔𝑚
    ⋅ 𝜔| 𝑑𝜔𝑚
    散乱係数
    𝜇𝑡
    = 𝜌 න
    𝑠2
    𝐷 𝜔𝑚
    𝑎|𝜔𝑚
    ⋅ 𝜔|𝑑𝜔𝑚
    消散係数 • Microflake全部同じ面積𝑎を
    持ってるとして仮定
    𝜎 𝜔, 𝜔𝑚
    = 𝑎 |𝜔𝑚
    ⋅ 𝜔|

    View Slide

  63. MicroflakeのVolume
    位相関数
    𝑓𝑝
    𝜔, 𝜔′ → 𝜔 =
    1
    𝜇𝑠

    𝑠2
    (𝜌𝑎) 𝐷 𝜔𝑚
    𝑓𝑚𝑖𝑐𝑟𝑜
    𝜔𝑚
    , 𝜔′ → 𝜔 |𝜔𝑚
    ⋅ 𝜔|𝑑𝜔𝑚
    𝜇𝑠
    = (𝜌𝑎) න
    𝑠2
    𝐷 𝜔𝑚
    |𝜔𝑚
    ⋅ 𝜔| 𝑑𝜔𝑚
    散乱係数
    𝜇𝑡
    = (𝜌𝑎) න
    𝑠2
    𝐷 𝜔𝑚
    |𝜔𝑚
    ⋅ 𝜔|𝑑𝜔𝑚
    消散係数 • Microflake全部同じ面積𝑎を
    持ってるとして仮定
    𝜎 𝜔, 𝜔𝑚
    = 𝑎 |𝜔𝑚
    ⋅ 𝑛|
    • 𝜌𝑎を新たに密度𝜌とする

    View Slide

  64. MicroflakeのVolume
    位相関数
    𝑓𝑝
    𝜔, 𝜔′ → 𝜔 =
    1
    𝜇𝑠

    𝑠2
    𝜌 𝐷 𝜔𝑚
    𝑓𝑚𝑖𝑐𝑟𝑜
    𝜔𝑚
    , 𝜔′ → 𝜔 |𝜔𝑚
    ⋅ 𝜔|𝑑𝜔𝑚
    𝜇𝑠
    = 𝜌 න
    𝑠2
    𝐷 𝜔𝑚
    |𝜔𝑚
    ⋅ 𝜔| 𝑑𝜔𝑚
    散乱係数
    𝜇𝑡
    = 𝜌 න
    𝑠2
    𝐷 𝜔𝑚
    |𝜔𝑚
    ⋅ 𝜔|𝑑𝜔𝑚
    消散係数 • Microflake全部同じ面積𝑎を
    持ってるとして仮定
    𝜎 𝜔, 𝜔𝑚
    = 𝑎 |𝜔𝑚
    ⋅ 𝜔|
    • 𝜌𝑎を新たに密度𝜌とする

    View Slide

  65. MicroflakeのVolume
    位相関数
    𝑓𝑝
    𝜔, 𝜔′ → 𝜔 =
    1
    𝜇𝑠

    𝑠2
    𝜌 𝐷 𝜔𝑚
    𝑓𝑚𝑖𝑐𝑟𝑜
    𝜔𝑚
    , 𝜔′ → 𝜔 |𝜔𝑚
    ⋅ 𝑛|𝑑𝜔𝑚
    𝜇𝑠
    = 𝜌 න
    𝑠2
    𝐷 𝜔𝑚
    |𝜔𝑚
    ⋅ 𝜔| 𝑑𝜔𝑚
    散乱係数
    𝜇𝑡
    = 𝜌 න
    𝑠2
    𝐷 𝜔𝑚
    |𝜔𝑚
    ⋅ 𝜔|𝑑𝜔𝑚
    消散係数
    • Microflake全体の投影面積を表す式
    𝜎 𝜔 と定義

    View Slide

  66. MicroflakeのVolume
    位相関数
    𝑓𝑝
    𝜔, 𝜔′ → 𝜔 =
    1
    𝜇𝑠

    𝑠2
    𝜌 𝐷 𝜔𝑚
    𝑓𝑚𝑖𝑐𝑟𝑜
    𝜔𝑚
    , 𝜔′ → 𝜔 |𝜔𝑚
    ⋅ 𝑛|𝑑𝜔𝑚
    𝜇𝑠
    = 𝜌𝜎 𝜔
    散乱係数
    𝜇𝑡
    = 𝜌𝜎 𝜔
    消散係数 • 現在はこの形式で書かれることが多い

    View Slide

  67. Microflakeとして扱うには何が必要?
    密度𝜌
    法線分布関数𝐷(𝜔𝑚
    )
    ミクロ位相関数(正規化されたBSDF) 𝑓𝑚𝑖𝑐𝑟𝑜
    (𝜔𝑚
    , 𝜔′ → 𝜔)

    View Slide

  68. Microflakeとして扱うには何が必要?
    密度𝜌
    法線分布関数𝐷(𝜔𝑚
    )
    ミクロ位相関数(正規化されたBSDF) 𝑓𝑚𝑖𝑐𝑟𝑜
    (𝜔𝑚
    , 𝜔′ → 𝜔)
    この3つを適切に定義してあげればMicroflakeのVolumeとして表現することが出来る。

    View Slide

  69. Volume表現の
    GGX

    View Slide

  70. Volume表現のGGX
    Microfacetは一種のMicroflakeとしてそのまま見なすこ
    とが出来る
    ここではGGX ModelをMicroflake Volumeにしたもの
    をVolume GGXと呼称する
    法線分布はそのままGGXを使って問題ない
    Microfacet
    Microflake

    View Slide

  71. Volume GGXにおける密度
    Microfacetの存在分布は高さの分布𝑃1
    (ℎ)で表すことが多い
    高さ分布から密度を定義する

    View Slide

  72. Volume GGXにおける密度
    Volume GGXの高さおける密度は高さ分布𝑃1
    (ℎ)によって以下の様に定義される
    𝐶1 ℎ = න
    −∞

    𝑃1 ℎ′ 𝑑ℎ′
    𝑃1
    (ℎ)の累積分布関数

    View Slide

  73. Volume GGXにおける投影面積
    MicrofacetではレイがMicrofacetの下に行くことはない
    なので裏側から見た時の投影面積を計算しない

    View Slide

  74. Volume GGXにおける投影面積
    この式はシャドウィングマスキング関数の導出で既に計算されいている
    Λ関数によって以下のように表現される

    View Slide

  75. 消散係数
    Microflakeの消散係数の定義より以下の様に求めることが出来る

    View Slide

  76. Volume GGXの位相関数
    位相関数は以下の様に定義することが出来る。
    可視法線分布

    View Slide

  77. Volume GGXの位相関数
    金属では以下の様に求めることができる
    とりあえずMicroflakeのVolumeに必要なパラメーターを導出することができた

    View Slide

  78. Microflake VolumeのFree Path
    MicroflakeにおけるVolumeは仮想的に[−∞, ∞]の無限大のVolumeで考える
    無限遠に飛んで行った時、光はMicrofacetから脱出したとみなす

    View Slide

  79. Microflake VolumeのFree Path
    MicroflakeにおけるVolumeは仮想的に[−∞, ∞]の無限大のVolumeで考える
    無限遠に飛んで行った時、光はMicrofacetから脱出したとみなす
    高さℎ𝑟
    から𝜔𝑟
    方向に放ったレイの次の衝突点
    ℎ𝑟+1
    のサンプリング
    ℎ𝑟
    ℎ𝑟+1
    𝜔𝑟

    View Slide

  80. Microflake VolumeのFree Path
    MicroflakeにおけるVolumeは仮想的に[−∞, ∞]の無限大のVolumeで考える
    無限遠に飛んで行った時、光はMicrofacetから脱出したとみなす
    脱出条件
    ℎ𝑟
    ℎ𝑟+1
    脱出!

    View Slide

  81. Mutiple-Scattering Free Path
    衝突点の高さℎ𝑟
    をサンプリング

    View Slide

  82. Mutiple-Scattering Free Path
    衝突点の高さℎ𝑟
    をサンプリング
    次の方向𝜔𝑟
    をサンプリング
    ウェイト計算

    View Slide

  83. Mutiple-Scattering Free Path
    衝突点の高さℎ𝑟
    をサンプリング
    次の方向𝜔𝑟
    をサンプリング
    ウェイト計算
    これを脱出するまで繰り返す

    View Slide

  84. 余談
    [Heitz 2016]だと高さ分布を自分で決めなきゃいけない
    Position-free Multiple-bounce Computations for Smith
    Microfacet BSDFs
    高さ分布を考えずにMulti-Scatteringを行う手法
    レイトレ合宿8の水鳥さんのスライドに詳しい説明がある

    View Slide

  85. Volume表現の良いところ
    Multi-Scatteringを実行できること
    理論的にも取り扱いやすいことがある
    シャドウィングマスキング関数が透過率として表現できたりする

    View Slide

  86. Volume表現の良いところ
    Multi-Scatteringを実行できること
    理論的にも取り扱いやすいことがある
    シャドウィングマスキング関数が透過率として表現できたりする
    既存のMicrofacet理論で扱いにくかった形状に対しても議論できる

    View Slide

  87. Microfacet theory for non-uniform heightfields
    非対称な高さ分布を持ったMicrofacet
    を取り扱えるようにした論文
    より現実に近い傷や凹凸を再現できる
    Volume表現を用いて議論している

    View Slide

  88. Microfacet theory for non-uniform heightfields

    View Slide

  89. ご清聴ありがとうございました

    View Slide

  90. 参考、引用資料
    [Heitz et al. 2016]
    Multiple-Scattering Microfacet BSDFs with the Smith Model
    [Jakob et al. 2010]
    A radiative transfer framework for rendering materials with anisotropic structure
    [Heitz et al. 2015]
    The SGGX Microflake Distribution

    View Slide

  91. 参考、引用資料
    [Dupuy et al. 2016]
    Additional Progress Towards the Unification of Microfacet and Microflake Theories
    [Wang et al. 2022]
    Position-free Multiple-bounce Computations for Smith Microfacet BSDFs
    [d’Eon et al. 2023]
    Microfacet theory for non-uniform heightfields

    View Slide