Xna 实现后处理管理器
我一直在考虑如何在我的引擎()中实现后处理管理器。Xna 实现后处理管理器,xna,post-processing,Xna,Post Processing,我一直在考虑如何在我的引擎()中实现后处理管理器。 我正在努力弄清楚后处理技术是如何工作的。我已经阅读并查看了webiste上的后处理示例,但这似乎重新呈现了应用后处理效果的模型。 我可以为静态模型添加此功能,但当涉及到重新绘制蒙皮模型时,我会感到困惑,因为它们的效果已经有了自己的技术。 有人能帮我理顺思路,给我指出正确的方向吗?一般来说,后处理可以在整个屏幕上工作。这真的很简单 您要做的是在设备上设置一个渲染目标(我假设您可以了解如何从示例创建渲染目标): 从这一点开始,渲染的所有内容都将渲染
我正在努力弄清楚后处理技术是如何工作的。我已经阅读并查看了webiste上的后处理示例,但这似乎重新呈现了应用后处理效果的模型。
我可以为静态模型添加此功能,但当涉及到重新绘制蒙皮模型时,我会感到困惑,因为它们的效果已经有了自己的技术。
有人能帮我理顺思路,给我指出正确的方向吗?一般来说,后处理可以在整个屏幕上工作。这真的很简单 您要做的是在设备上设置一个渲染目标(我假设您可以了解如何从示例创建渲染目标): 从这一点开始,渲染的所有内容都将渲染到该渲染目标。完成后,您可以将设备设置回绘图到后台缓冲区:
GraphicsDevice.SetRenderTarget(null);
最后,您可以使用渲染目标进行绘制,就像它是一个纹理一样(在XNA3.1中,您必须对其调用GetTexture
)
因此,要产生后处理效果:
- 将场景渲染到渲染目标
- 切换回后缓冲区
- 使用将应用后期处理效果的像素着色器全屏渲染渲染目标(使用
即可)SpriteBatch
或者你根本不是指后处理吗?是否确实要更改绘制模型时使用的像素着色器,同时保留蒙皮模型顶点着色器?通常后处理在整个屏幕上工作。这真的很简单 您要做的是在设备上设置一个渲染目标(我假设您可以了解如何从示例创建渲染目标): 从这一点开始,渲染的所有内容都将渲染到该渲染目标。完成后,您可以将设备设置回绘图到后台缓冲区:
GraphicsDevice.SetRenderTarget(null);
最后,您可以使用渲染目标进行绘制,就像它是一个纹理一样(在XNA3.1中,您必须对其调用GetTexture
)
因此,要产生后处理效果:
- 将场景渲染到渲染目标
- 切换回后缓冲区
- 使用将应用后期处理效果的像素着色器全屏渲染渲染目标(使用
即可)SpriteBatch
或者你根本不是指后处理吗?是否确实要更改绘制模型时使用的像素着色器,同时保留蒙皮模型顶点着色器?这是一个很好的信息。我不想在每个模型的基础上做这件事,这正是我想要摆脱的:o)这是非常好的信息。我不想在每种型号的基础上做这件事,这正是我想要摆脱的:o)