Skip to content
Go back

Moment transparency

· Updated:

doi paper slides supplementary web

拙訳

  • 既存の手法:
    • [Maule et al. 2013Maule, M., Comba, J., Torchelsen, R. and Bastos, R. 2013. Hybrid transparency. Proceedings of the ACM SIGGRAPH symposium on interactive 3D graphics and games 103–118. 10.1145/2448196.2448212.]のHybrid Transparencyはカメラが内側に入ったときに問題が起こる
    • [McGuire and Bavoil 2013McGuire, M. and Bavoil, L. 2013. Weighted blended order-independent transparency. Journal of Computer Graphics Techniques (JCGT) 2, 2, 122–141. http://jcgt.org/published/0002/02/09/.]のWBOITは透明感が強すぎる
    • [Jansen and Bavoil 2010Jansen, J. and Bavoil, L. 2010. Fourier opacity mapping. Proceedings of the 2010 ACM SIGGRAPH symposium on interactive 3D graphics and games 165–172. 10.1145/1730804.1730831. https://volumetricshadows.wordpress.com/wp-content/uploads/2011/06/fourier-opacity-mapping.pdf.]のFourier Opacity Map Transparencyはリンギングringingが起きたり、Z方向の精度がかなり粗かったりする
  • OITにおける透過率関数とは
    • [Salvi et al. 2011Salvi, M., Montgomery, J. and Lefohn, A. 2011. Adaptive transparency. Proceedings of the ACM SIGGRAPH symposium on high performance graphics 119–126. 10.1145/2018323.2018342. https://www.intel.com/content/dam/develop/external/us/en/documents/37944-adaptive-transparency-hpg11.pdf.]のAdaptive Transparencyは、ピクセル毎透過率関数が事前に計算可能であれば、OITが2パスで実現できる、ということを示した
    • 透過率関数の事前計算は自明でないので、WBOITではこれをconstant curveで近似する
      • 結果はいい感じになるが、往々にして透明感が強く出る
  • Moment Shadow Mappingとは
    • [Peters and Klein 2015Peters, C. and Klein, R. 2015. Moment shadow mapping. Proceedings of the 19th symposium on interactive 3D graphics and games 7–14. 10.1145/2699276.2699277. https://momentsingraphics.de/I3D2015.html.]で提案された手法
    • ある深度zzを対応する4つのモーメント(z,z2,z3,z4)T(z, z^2, z^3, z^4)^Tでシャドウマップに格納する
    • 対応する重みwwでこれらのピクセルの集合上をフィルタリングしたサンプルはb=i=1n(zi,zi2,zi3,zi4)Twib = \sum_{i=1}^n (z_i, z_i^2, z_i^3, z_i^4)^T \cdot w_iで求まる
    • Hamburger 4MSMアルゴリズムを用いて、与えられた入力深度zzよりライトに近い深度値の近似的な逆数approximate fraction of depth valuesを計算する
    • Moment shadow mappingはこれをシャドウのフィルタリングに用いる
  • 本手法は
    • [McGuire and Bavoil 2013McGuire, M. and Bavoil, L. 2013. Weighted blended order-independent transparency. Journal of Computer Graphics Techniques (JCGT) 2, 2, 122–141. http://jcgt.org/published/0002/02/09/.]のWBOITをピクセル毎モーメントベース透過率関数per-pixel moment-based transmittance functionで改良する
      • [Münstermann et al. 2018Münstermann, C., Krumpen, S., Klein, R. and Peters, C. 2018. Moment-based order-independent transparency. Proc. ACM Comput. Graph. Interact. Tech. 1, 1. 10.1145/3203206. https://momentsingraphics.de/I3D2018.html.]のMBOITと同じ発想だが、同時並行的に開発された
    • モーメントベースの透過率関数は以下のように求める:
      • 透過率をモーメントやOITで使えるようにするため、対数空間で考える
      • フラグメントのアルファα\alpha光学的深さoptical depthddで表すことができる
        • d=log(1α)d = -\log(1-\alpha)
      • 光学的深さは加算的なので、複数のフラグメントの組み合わせcompositionは総和で表される
        • d=i=1ndid' = \sum_{i=1}^n d_i
      • これを考慮するとwith this in mind、モーメントのサンプルを求めるさいに重みとして光学的深さddを用いることができる
        • b=i=1n(zi,zi2,zi3,zi4)Tdib = \sum_{i=1}^n (z_i, z_i^2, z_i^3, z_i^4)^T \cdot d_i
      • Hamburger 4MSMアルゴリズムで再構築する
        • T(z)=exp(Hamburger(bd,z)d)T(z) = \exp(-\text{Hamburger}(\frac{b}{d'}, z) \cdot d')
        • dd'は結果を正規化するのに必要
    • 上で求めた関数に透過率関数を置き換えるかたちでWBOITに統合する
      • bb用バッファとdd'用バッファの2つを用意して、それぞれで加算ブレンドを行う
      • w(z,a)w(z, a)をモーメントベースのものに置き換える
    • 深度を以下の式で対数的にたわませるapply the followng logarithmic warp
      • z=log(z/Znear)log(Zfar/Znear)z' = \frac{\log(z / Z_{near})}{\log(Z_{far} / Z_{near})}
      • モーメントを累積するさいに、Zが大きいと精度の問題が発生する可能性があるため
    • モーメントバッファの解像度を下げることができる
      • モーメントはフィルタリングできるので、スクリーン解像度と同じでなくて良い
      • 細かいところが潰れてしまうが、その分、パフォーマンスやメモリの面で軽くなる
    • モーメントのフォーマットを変えても良い
      • [Peters et al. 2017Peters, C., Münstermann, C., Wetzstein, N. and Klein, R. 2017. Improved moment shadow maps for translucent occluders, soft shadows and single scattering. Journal of Computer Graphics Techniques (JCGT) 6, 1, 17–67. http://jcgt.org/published/0006/01/03/.]のNLQM (Non-Linearly Quantized Moments)が使える
        • モーメント4つを16ビットで表現できる
        • 通常のモーメントより高速に再構築できる
    • フラグメントの数が多いなら2つに分けても良い
      • フラグメントの数が多いと、通常のHamburgerでは透過率曲線にうまくはまらなくなる
        • 最終的なピクセルへの寄与が少ないのに、後にも前と同じように重みを与えるのが主な原因
      • 遮蔽の推定に前側のモーメントを使いつつ、後側のモーメントを求める
        • 本来あるべき量の2倍で遮蔽されるフラグメントそれぞれにバイアスを加えられる
        • 実際には、バイアスはモーメント再構築の詳細さの喪失によるオフセットであり、これは、under occludeする傾向がある