SpriteBatch.Begin
RenderTargets をとの間で変更したいと思いSpriteBatch.End
ます。私はすでにこれが機能することを知っています:
GraphicsDevice.SetRenderTarget(target1);
SpriteBatch.Begin()
SpriteBatch.Draw(...)
SpriteBatch.End()
GraphicsDevice.SetRenderTarget(target2);
SpriteBatch.Begin()
Spritebatch.Draw(...)
SPriteBatch.End()
しかし、私は本当にこれを機能させたいです:
SpriteBatch.Begin()
GraphicsDevice.SetRenderTarget(target1);
SpriteBatch.Draw(...)
GraphicsDevice.SetRenderTarget(target2);
Spritebatch.Draw(...)
SpriteBatch.End()
誰かがこれをしているのを見たことがありますが、その理由はわかりませんでした。
編集:なぜ私がこれをやりたいのかについてもう少し:
私のプロジェクトでは、SpriteSortMode.Immediate (必要に応じて BlendState を変更できるようにするため) を使用し、並べ替えられたスプライトのリストを単純に反復処理して、それらすべてを描画します。しかし今、いくつかのスプライトにマルチパスシェーダーを適用したいのですが、すべてではありません! 私はシェーダーにはまったく慣れていませんが、私が理解したことから、最初のパスを使用して中間スプライトにスプライトを描画し、2 番目のパスを使用して最終レンダー ターゲットに中間スプライトを描画する必要があります。(ガウスぼかしピクセルシェーダーを使用しています)。そのため、新しい開始/終了を作成することなく、目的のシェーダーを使用して、目的のターゲットに描画したいと考えています。