1

さまざまな種類の情報を表示するための複数の「パネル」で構成されるC++DirectX10アプリケーションを開始する準備をしています。1つのRenderTargetViewで複数のビューポートを試してみました。ただし、一度に1つのビューポートをクリアする方法に関する明確な答えは見つかりません。アプリケーションのこれらのパネル(ビューポート)は一部の領域で重なるため、下のパネルからの描画が透けて見えないように、各ビューポートをクリアして「下から上」に描画できるようにしたいと思います。より高いもの。DirectX 9では、現在設定されているビューポートのみをクリアするデバイスオブジェクトのClear()メソッドがあったようです。DirectX 10はClearRenderTargetView()を使用して、描画領域全体をクリアします。

DirectX 10で、作図領域内のビューポート/長方形のみをクリアする方法はありますか?ある人は、その空間にクワッドを描くことが唯一の方法かもしれないと推測しました。別の可能性として、パネルごとに個別のRenderTargetViewを設定することも考えられますが、個別の深度/ステンシルバッファーなど、他の冗長なリソースが必要になるため、これは避けたいと思います(私の誤解がない限り)。

どんな助けでも大歓迎です!ありがとう!

4

2 に答える 2

1

「ビューポート」ごとに1つのレンダーターゲットを使用し、最終的なビューにクワッドを使用してそれらを合成することをお勧めします。DX10でクリアをハサミで切る方法がわかりません。

また、ここの記事によると、「レンダリングターゲットビューの配列はID3D10Device :: OMSetRenderTargetsに渡される可能性がありますが、これらのレンダリングターゲットビューはすべて単一の深度ステンシルビューに対応します。」

お役に立てれば。

于 2011-07-06T22:08:29.293 に答える
0

適切なblendstate設定と正方形メッシュ(または他の形状のメッシュ)を使用してシェーダーを作成し、それを使用してクリアする領域をクリアすることはできませんか?私はこれを試していませんが、できると思います。

于 2012-03-20T09:53:20.937 に答える