1

シャドウ マップの DirectX SDK のサンプルから学習しています。このサンプルは、初期化中にステンシル サーフェスを作成し、次のように述べています。

 Create the depth-stencil buffer to be used with the shadow map

 We do this to ensure that the depth-stencil buffer is large
 enough and has correct multisample type/quality when rendering
 the shadow map.  The default depth-stencil buffer created during
 device creation will not be large enough if the user resizes the
 window to a very small size.  Furthermore, if the device is created
 with multisampling, the default depth-stencil buffer will not
 work with the shadow map texture because texture render targets
 do not support multisample.

これは何を意味するのでしょうか?ステンシル バッファーを作成して操作するステートメントにコメントを付けようとしたところ、結果が非​​常に不安定になりました。誰かが私にこれを説明できますか? どうもありがとうございました!!!

4

1 に答える 1

2

メイン DepthStencil バッファーは、メイン ウィンドウにレンダリングするときに使用されるバッファーであるため、ウィンドウと同じ解像度になります。ただし、シャドウ プロセスでは、同じ解像度、ビューポートなどを使用する必要はありません。そのため、Shadowmap のレンダリングに使用されるビューポートと同じ解像度を持つ 2 つ目の DepthStencil バッファーを作成します。

また、引用が述べているように、シーンのレンダリングやシャドウマップの作成に使用するのと同じフォーマット、マルチサンプリング設定などを使用することは望ましくない場合があります。

編集:

ステンシル バッファーを使用するのは、最も近い遮蔽三角形の深さを格納するためです。

DepthStencil バッファは「シャドウマッピングをサポート」していません。できれば特定の属性 (適切なサイズ、MSAA なしなど) を使用して、たまたま深度バッファを必要とする技術です。

于 2013-04-24T15:13:23.237 に答える