超雑訳 Supplementary Document for Moment Transparency

ちわっす。Pocolです。
前回読んだ,Moment Transparencyの補足資料をみていくことにします。
[Sharpe 2018] Brian Sharpe, “Supplementary Document for Moment Transparency”, HPG 18, https://dl.acm.org/doi/10.1145/3231578.3231585, 2018.

いつもながら、誤字・誤訳があるかと思いますので,ご指摘頂ける場合は正しい翻訳例と共に指摘して頂けるとありがたいです。

1 IMPLEMENTAION DETAILS

ここで、Moment Transparency(MT) の実装の詳細を説明します。最初に標準的なMTアルゴリズムのコードを示し(Section 1.1)、次に2つのモーメントパスのコードを示し(Section 1.2)、最後に過大推定[Peters et al. 2017]を用いた非線形量子化モーメント(NLQM)[Peters 2017]のコードを示します(Section 1.3)。
 MTはWBOIT(weighted blended order-independent transparency)とMSM(moment shadow mapping)を拡張しているため、ここではMTの異なる部分(つまりステージ2と3)のみを記録します。WBOITやMSMがどのように実装されているかのより詳細な説明については、それぞれ[McGuire ad Bavoil 2013]と[Peters and Klein 2015; Peters et al. 2017]を参照してください。

1.1 Implementing Moment Transparency

MTのステージ2を処理するには、すべての透過ジオメトリをラスタライズし、各フラグメントに対してWriteMoments(…)を呼び出します。

※図は,[Sharpe 2018]より引用

log(0)は未定義であり、1.0に近いアルファ値は大きな光学深度を生成し、多くのフラグメントを累積する際に精度の問題を引き起こす可能性があります。我々の実験では、1.0~0.5/256が妥当であることが示されています。
 ステージ3では、標準的なWBOIT重み関数\(w(z,\alpha)\)を新しいモーメントベースのものに置き換える必要があります:

※図は,[Sharpe 2018]より引用

1.2 Implementing Two Moments Passes

2つのモーメントパスを処理するためには、2組のモーメントを同時にトラッキングする必要があります。2つのFP32_RGBAバッファをモーメント用に、2つのFP32_Rバッファを総光学深度に割り当てます。標準的な MT と同様に、すべてのバッファはゼロに初期化し、ブレンドモードは加算に設定します。
 ステージ2の後には、ステージ2で生成されたモーメントをサンプリングしながら、新しいモーメントのセットを構築する追加のラスタライズステージが必要です。このコードは次のとおりです。

※図は,[Sharpe 2018]より引用

2番目のモーメントセットは1番目のモーメントセットによって隠されているため、累積アルファの合計が正しくありません。これを修正するために, 2つの全蓄積アルファの比で透過率サンプルを再スケールしました。これには、ステージ3用の異なる\(w (z, \alpha)\) 実装が必要です。

※図は,[Sharpe 2018]より引用

1.3 Implementing Non-Linear Quantized Moments With Overestimation

ここでは,過大推定を用いて非線形量子化モーメント (NLQM) がどのように使用できるかを示します。これは [Peters 2017] の著作に直接従っており、さらなる情報についてはそこに読者を誘導します。

※図は,[Sharpe 2018]より引用

REFERENCES