【发布时间】:2011-03-09 20:50:27
【问题描述】:
我有一种情况,每次旋转时我都需要对我的纹理应用一些算法。
我的问题是 - 在 XNA 中应用图像处理算法的最佳方法是什么?
现在纹理是 RenderTarget2D,算法对其像素执行一些操作并将它们设置回 RenderTarget2D。这种方法会导致我的应用程序终止,并且它的性能非常糟糕。
我搜索了 stackoverflow,但没有找到与该主题相关的任何内容。 我还阅读了这篇文章http://blogs.msdn.com/b/shawnhar/archive/2008/04/14/stalling-the-pipeline.aspx 并了解我的方法有多糟糕。
【问题讨论】:
-
这取决于算法是什么、应用频率以及何时需要应用(编译时间、加载时间、运行时间?)。你能提供更多细节吗?
-
安德鲁,这个算法是在运行时应用的(每次纹理旋转时)。考虑到纹理可以在每次更新中旋转,意味着算法应该在每次绘制之前应用。
-
这真的是一个性能问题。从渲染目标读取是一种选择。使用像素着色器通常是最快的方法 - 但有许多限制 - 然后有许多技术可以克服这些限制。在缩小范围之前,我需要了解有关该算法的更多信息。另外,您所说的“旋转”到底是什么意思?你在移动顶点吗?纹理坐标?或者更复杂的东西?
-
你有多少可能的轮换?如果是 4 或 8 或...,可能与离线生成它们有关。