11

C++ directx 11 SDK を使用して、1 つのパスで 2 つのテクスチャにレンダリングしようとしています。1 つのテクスチャに結果イメージの各ピクセルの色 (3D シーンをレンダリングするときに画面に通常表示されるもの) を含め、別のテクスチャに各ピクセルの法線と深さ (法線用に 3 つの float と 1 つの float) を含める必要があります。深さのため)。今考えられるのは、2 つのレンダリング ターゲットを作成し、最初のパスを色としてレンダリングし、2 番目のパスで法線と深度を各レンダリング ターゲットにそれぞれレンダリングすることです。ただし、最初のパスで各ピクセルの色、法線、深度の情報を取得できるため、これは時間の無駄に思えます。ピクセル シェーダーで 2 つのテクスチャを出力する方法はありますか?

どんな助けでも大歓迎です。

PS ピクセル シェーダーの RWTexture2D または RWStructuredBuffer に沿って何かを考えています。ちょっとした背景: 計算シェーダーでさらに処理するには、2 つの画像が必要です。これにより、同期に関する副次的な問題が生じます。ピクセル シェーダーは (計算シェーダーとは異なり) 各ピクセルを一度に 1 つずつ書き込むため、ピクセル シェーダーが終了したことをどのように認識し、計算シェーダーに画像の後処理を開始するように指示するのでしょうか?

4

1 に答える 1