在XNA 4.0中,设置“第二遍”着色器的正确方法是什么?我想要渲染一个已渲染的帧,然后通过着色器程序运行整个渲染的屏幕?
是否也可以进行第三次传球?
答案 0 :(得分: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();
}