1

PostProcessing マネージャーをエンジン ( Vanquish )に実装する方法を考えていました。

後処理技術がどのように機能するかを理解するのに苦労しています。Creators.xna.com Web サイトでPost Processing サンプルを読んで見ましたが、これは Post Processing 効果を適用してモデルを再レンダリングしているようです。

この機能を静的モデルに追加することはできますが、スキン モデルの再描画に関しては、エフェクトに対する独自の手法が既にあるため、混乱します。

誰かが私を正しい方向に向けて、私の考えを正すのを手伝ってくれませんか?

4

1 に答える 1

1

通常、後処理は画面全体で機能します。これは本当に簡単です。

あなたがすることは、デバイスにレンダー ターゲットを設定することです (サンプルからレンダー ターゲットを作成する方法を理解できると思います)。

GraphicsDevice.SetRenderTarget(renderTarget);

この時点から、レンダリングするものはすべてそのレンダー ターゲットにレンダリングされます。完了したら、デバイスをバック バッファーへの描画に戻すことができます。

GraphicsDevice.SetRenderTarget(null);

最後に、レンダー ターゲットをテクスチャのように使用して描画できます (これは XNA 4.0 の新機能で、XNA 3.1 ではそれを呼び出す必要がGetTextureありました)。

後処理効果を作成するには:

  • シーンをレンダー ターゲットにレンダリングする
  • バックバッファに戻る
  • SpriteBatch後処理効果を適用するピクセル シェーダーを使用して、レンダー ターゲットをフル スクリーンでレンダリングします (使用します)。

モデルごとにこれをやりたいと思いますか?これは奇妙に思えますが、確かに可能です。まず、レンダー ターゲットに透明なアルファ チャネルがあることを確認してから、アルファ ブレンディングで描画します。

それとも、後処理をまったく意味しないのですか?スキン モデルの頂点シェーダーを維持したまま、モデルの描画に使用されるピクセル シェーダーを実際に変更しますか?

于 2010-08-09T12:43:41.710 に答える