1

我正在使用 XNA 游戏工作室制作类似于 Terraria & Starbound 的 2D 沙盒 RPG。
我有一个很棒的瓷砖系统,但是当屏幕上满是瓷砖时,在 1920 x 1200 上绘制整个场景仍然需要 12-13 毫秒。
我目前有超过 15 个图块集,每个图块集都在 256 x 1024 纹理上,每个图块集还有 6-7 个相同大小的额外图块集,用于渲染与其他图块的混合。
我想知道如果我只是在加载时创建一个更大的纹理并复制所有混合纹理而不是使用它是否会产生很大的性能差异SetData().

在屏幕上绘制 2048 x 1024 等大纹理的 18 x 18 部分是否存在性能问题数百次?

spritemode.texture用来绘制我的瓷砖已经提高了一点速度,但我正试图减少几毫秒。

4

1 回答 1

0

这个数字似乎很高,但找到它的唯一可靠方法是对其进行分析。SpriteSortMode.Texture并且Deferred将是最快的,一些不错的举动。如果您可以分享一个很好的精灵表示例和渲染代码,我不确定您为什么需要所有这些。使用SourceRectanglespritebatch 的重载不应影响您的绘制时间,但同样,这是确定是否对其进行分析的唯一方法。

当然,纹理交换越少越好,因此将所有内容打包到 1 个纹理中将是一个好主意,MSDN 上有一个很好的代码示例

于 2013-06-08T01:16:33.663 回答