【发布时间】:2012-01-19 16:15:27
【问题描述】:
所以我一直在尝试在 XNA 中使用 2D 着色器。
http://msdn.microsoft.com/en-us/library/bb313868(v=xnagamestudio.31).aspx
上面这个链接说我需要使用SpriteSortMode.Immediate,这对我来说是个问题,因为我开发了一个依赖延迟渲染的视差系统(SpriteSortMode.BackToFront)。
有人可以向我解释一下 SpriteSortMode 在着色器中的重要性吗?如果 Immediate 是强制性的,我可以做些什么来维护我当前的系统,以及其他什么可以帮助我更好地理解这一点?
此外,我的游戏运行多个 SpriteBatch.Begin()/End() 调用(用于绘制背景,然后是游戏,然后是前景和 HUD 等)。我注意到 Bloom 示例在这种情况下不起作用,我猜这与此有关。
总的来说,我在理解这些概念时遇到了一些麻烦。我知道着色器是什么以及它是如何工作的,但我不知道它如何与 XNA 交互以及那里发生了什么。我真的很感激一些启示。 :)
谢谢!
【问题讨论】:
-
这个问题的答案可能会有所帮助:gamedev.stackexchange.com/questions/21220/…
-
我相信,如果你想让着色器应用到屏幕上,那么你不需要使用即时渲染,但如果你想要它作为每个精灵的效果,你可以这样做。