1

私は SharpDX を使用しており、深度バッファーでアンチエイリアシングを行いたいと考えています。後で使用するために、深度バッファをテクスチャとして保存する必要があります。このテクスチャが Texture2DMS である場合、それは良い考えでしょうか? または、別のアプローチを取る必要がありますか?

私が本当に達成したいのは:

1) 深度バッファのスケーリング

2) デプステストのスーパーサンプリング

(この論文のセクション 3.2 で見つけた用語: http://gfx.cs.princeton.edu/pubs/Cole_2010_TFM/cole_tfm_preprint.pdf

4

1 に答える 1

1

この論文では、深さの事前パスが必要です。このパスには色が必要ないため、レンダー ターゲットをバインドせずに残し、「空の」ピクセル シェーダーを使用する必要があります。深度については、使用する最終的なレンダー ターゲットの幅と高さの 2 倍または 4 倍 (または他の 2N 倍) で Texture2D (MS ではない) を作成する必要があります。これは実際には「スーパーサンプリング」ではありませんが (プリパスは実際のピクセル出力のない独立したフェーズであるため)、似ています。

2 番目のフェーズでは、ペーパーでは、プリパスから高解像度の深度バッファーの複数のサンプルを実行する必要があります。上記のサイジングに従った場合、すべてのピクセルはいくつかの (2N)^2 深度値に対応します。これらの値を読み取って平均化する必要があります。幸いなことに、SampleCmpCOMPARISONを使用して、これを行うためのハードウェア アクセラレーションによる方法 (PCF と呼ばれます) があります。サンプラータイプ。これは 2x2 スタンプをサンプリングし、各値を指定された値 (ここで第 2 フェーズで計算された深さを渡し、いくつかのイプシロン値 (1e-5 など) を追加することを忘れないでください) と比較し、平均化された結果を返します。このピクセルに関連付けられた第 1 フェーズの深度バッファーの領域全体をカバーするために 2x2 スタンプを実行し、結果を平均化します。最終的な結果は、現在の線の背骨がプリパスの最も深い深さにどの程度対応しているかを表します。PCF のスムーズなフィルタリング動作により、線が見えるようになると、論文で説明されているエイリアシングされた「点線」の効果とは対照的に、線はゆっくりとフェードインします。

于 2013-10-22T17:41:36.937 に答える