Xna 实现后处理管理器

Xna 实现后处理管理器,xna,post-processing,Xna,Post Processing,我一直在考虑如何在我的引擎()中实现后处理管理器。 我正在努力弄清楚后处理技术是如何工作的。我已经阅读并查看了webiste上的后处理示例,但这似乎重新呈现了应用后处理效果的模型。 我可以为静态模型添加此功能,但当涉及到重新绘制蒙皮模型时,我会感到困惑,因为它们的效果已经有了自己的技术。 有人能帮我理顺思路,给我指出正确的方向吗?一般来说,后处理可以在整个屏幕上工作。这真的很简单 您要做的是在设备上设置一个渲染目标(我假设您可以了解如何从示例创建渲染目标): 从这一点开始,渲染的所有内容都将渲染

我一直在考虑如何在我的引擎()中实现后处理管理器。

我正在努力弄清楚后处理技术是如何工作的。我已经阅读并查看了webiste上的后处理示例,但这似乎重新呈现了应用后处理效果的模型。

我可以为静态模型添加此功能,但当涉及到重新绘制蒙皮模型时,我会感到困惑,因为它们的效果已经有了自己的技术。


有人能帮我理顺思路,给我指出正确的方向吗?

一般来说,后处理可以在整个屏幕上工作。这真的很简单

您要做的是在设备上设置一个渲染目标(我假设您可以了解如何从示例创建渲染目标):

从这一点开始,渲染的所有内容都将渲染到该渲染目标。完成后,您可以将设备设置回绘图到后台缓冲区:

GraphicsDevice.SetRenderTarget(null);
最后,您可以使用渲染目标进行绘制,就像它是一个纹理一样(在XNA3.1中,您必须对其调用
GetTexture

因此,要产生后处理效果:

  • 将场景渲染到渲染目标
  • 切换回后缓冲区
  • 使用将应用后期处理效果的像素着色器全屏渲染渲染目标(使用
    SpriteBatch
    即可)
你听起来像是想按型号做这个?这似乎有点奇怪,但确实有可能。只需确保渲染目标从透明的alpha通道开始,然后使用alpha混合绘制它


或者你根本不是指后处理吗?是否确实要更改绘制模型时使用的像素着色器,同时保留蒙皮模型顶点着色器?

通常后处理在整个屏幕上工作。这真的很简单

您要做的是在设备上设置一个渲染目标(我假设您可以了解如何从示例创建渲染目标):

从这一点开始,渲染的所有内容都将渲染到该渲染目标。完成后,您可以将设备设置回绘图到后台缓冲区:

GraphicsDevice.SetRenderTarget(null);
最后,您可以使用渲染目标进行绘制,就像它是一个纹理一样(在XNA3.1中,您必须对其调用
GetTexture

因此,要产生后处理效果:

  • 将场景渲染到渲染目标
  • 切换回后缓冲区
  • 使用将应用后期处理效果的像素着色器全屏渲染渲染目标(使用
    SpriteBatch
    即可)
你听起来像是想按型号做这个?这似乎有点奇怪,但确实有可能。只需确保渲染目标从透明的alpha通道开始,然后使用alpha混合绘制它


或者你根本不是指后处理吗?是否确实要更改绘制模型时使用的像素着色器,同时保留蒙皮模型顶点着色器?

这是一个很好的信息。我不想在每个模型的基础上做这件事,这正是我想要摆脱的:o)这是非常好的信息。我不想在每种型号的基础上做这件事,这正是我想要摆脱的:o)