2012-01-16 12 views
1

描画処理中にターゲットをレンダリングするときにStencilBufferを使用している場合、ステンシルバッファに含まれているものをデバッグする際に表示される方法はありますか?私は今何時間も探していて、明らかに何かが欠けているか、このテーブルを見る方法を見つけることができません。(C#)XNA 4.0 StencilBufferアクセス​​

XNA 3.1のGraphicsDeviceにDepthStencilBufferというプロパティがありましたが、もう存在しません。レンダーターゲットを作成するときにステンシルバッファを使用するかどうかを確認しますが、その後、ステンシルバッファにアクセスするにはどうすればよいでしょうか?

歓声 ルーカス

答えて

0

を、私は通常、このためにコメントを残すだろうが、私はそれのための十分な担当者を持っていない、まだ...私はこのページを読ん推薦:http://blogs.msdn.com/b/shawnhar/archive/2010/03/26/rendertarget-changes-in-xna-game-studio-4-0.aspx

Shawn Hargreavesは、ステンシルバッファーの使用は重要ではなく、同様の性能をもたらす他のテクニックを使用して行うことができると説明しています。そのページからの引用の

ワン:

質問:カラーチャンネルへの事前パス+ normalss

1)深さ:深さバッファ、どの程度の状況などについては

2)その他のもの...(例:AO)

3)前からのデプスバッファと新しいレンダーターゲットを使用してソリッドオブジェクトをレンダリングします。

新しいAPIの最大の制限は、あなたが共有することができないということです。

4)別のパス(例えば、ボリューム霧)のために再び深度バッファを使用

回答(また、AOのようなものを読み込みます)複数の異なるレンダーターゲットにまたがる単一の深度バッファ。しかし、深度バッファを再利用したいときにいつでも同じレンダリングターゲットに描画するように、この種のレンダリングアーキテクチャ(Windowsではとにかく)を配置するだけで通常可能です。

たとえば、深度/ステンシルを使用して軽量ボリュームをカリングする従来の遅延シェーディングの最適化は完全に実行可能です。これらの光蓄積パスがインデックスにバインドされた同じレンダリングターゲットに行われるようにバッファ操作を調整するだけで済みます最初のシーンレンダリング中の#0。