2011-01-05 12 views
0

XNA 4.0では、レンダリングされたフレームを取得し、レンダリングされたスクリーン全体をシェイダープログラムで実行したい場合、「セカンドパス」シェーダを設定する正しい方法は何ですか?XNAでセカンドパスシェーダを実行する正しい方法は何ですか?

3回目のパスも実行できますか?

+0

シェイダー自体に2回目のパスがあるとお考えですか? –

+0

あなたとあなたの質問の読者が興味深いかもしれない関連記事:http://blogs.msdn.com/b/shawnhar/archive/2009/08/17/combining-shaders.aspx –

答えて

1

はい可能です。 RenderTarget2Dでシーンをレンダリングしてから、ピクセルシェーダーを使用してデバイス上にテクスチャをレンダリングする必要があります。

RenderTarget2D target; // needs to instanciate in LoadContent(); 
Effect myEffect; // this one too. 
Draw(GameTime gametime) 
{ 
    GraphicsDevice.SetRenderTarget(target); 
    RenderScene(); 
    GraphicsDevice.SetRenderTarget(null); 

    spriteBatch.Begin(); 
    myEffect.CurrentTechnique.Passes[0].Apply(); 

    spriteBatch.Draw(.... , target, ...); 
    spriteBatch.End(); 
} 
関連する問題