我一直在考虑如何在我的引擎中实现PostProcessing管理器(Vanquish)。
我正在努力探讨后处理技术的工作原理。我已经阅读并查看了creators.xna.com网站上的后期处理示例,但这似乎重新渲染了应用后处理效果的模型。
我可以为静态模型添加此功能,但是当重新绘制蒙皮模型时,我会感到困惑,因为他们已经有自己的技术来实现它们的效果。
有人可以帮助我指出正确的方向来理顺我的想法吗?
答案 0 :(得分:1)
通常,后期处理适用于整个屏幕。这很简单,真的。
你要做的是在设备上设置渲染目标(我假设你可以弄清楚如何从样本中创建渲染目标):
GraphicsDevice.SetRenderTarget(renderTarget);
从此时起,您渲染的所有内容都将呈现给该渲染目标。完成后,您可以将设备重新设置为绘制到后台缓冲区:
GraphicsDevice.SetRenderTarget(null);
最后你可以使用渲染目标进行绘制,就像它是一个纹理(this is new in XNA 4.0一样,在XNA 3.1中你必须在其上调用GetTexture
)。
所以要做出后处理效果:
SpriteBatch
即可)。你觉得你想为每个型号做这个吗?这似乎有点奇怪,但有可能。只需确保渲染目标具有透明的Alpha通道,然后使用Alpha混合绘制它。
或者你不是指后处理吗?您是否真的希望更改模型绘制的像素着色器,同时保持蒙皮模型顶点着色器?