所以我基本上想检查我的项目的一些信息。我有 GTX 460 显卡。我编写了 DX10 程序,屏幕上打印了 20k 个三角形,现在我在 Release 版本中获得了 28 FPS。所有这些三角形都在它们内部调用 DrawIndexed,所以这当然是调用这么多绘图的开销。
但无论如何,我想知道:使用这些功能,我可以在屏幕上绘制多少个三角形,以及在哪个 FPS 上?我认为 20k 三角形甚至不足以在游戏场景中加载一些好的模型。
对不起我糟糕的英语。
所以我基本上想检查我的项目的一些信息。我有 GTX 460 显卡。我编写了 DX10 程序,屏幕上打印了 20k 个三角形,现在我在 Release 版本中获得了 28 FPS。所有这些三角形都在它们内部调用 DrawIndexed,所以这当然是调用这么多绘图的开销。
但无论如何,我想知道:使用这些功能,我可以在屏幕上绘制多少个三角形,以及在哪个 FPS 上?我认为 20k 三角形甚至不足以在游戏场景中加载一些好的模型。
对不起我糟糕的英语。
听起来您正在为每个三角形图元创建一个绘制调用,这非常糟糕,因此可怕的 FPS,您应该旨在为每个绘制调用绘制尽可能多的三角形,这可以通过以下几种方式完成:
DX SDK 将提供实现这些示例的示例。您可以绘制的三角形的确切数量和一个不错的 FPS(如果您想要垂直同步,则为 30 或 60)根据三角形着色的复杂性而有很大差异,但是,如果绘制最简单,您应该能够推动几百万舒适。
我建议仔细查看开源 DX11(DX10 项目并不多,但 API 几乎相同)引擎的内部结构,例如heiroglyph 3,并阅读 SDK 教程。
还有很多关于使用 DX10 提高性能的演示文稿,但在深入研究建议之前先分析您的代码,这里有一些来自硬件供应商本身(nVidia 与 AMD 硬件的颜色编码提示):