在XNA中运行第二个着色器着色器的正确方法是什么?

时间:2011-01-05 01:58:49

标签: 3d xna shader

在XNA 4.0中,设置“第二遍”着色器的正确方法是什么?我想要渲染一个已渲染的帧,然后通过着色器程序运行整个渲染的屏幕?

是否也可以进行第三次传球?

1 个答案:

答案 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();
}