有件事我一直不明白。像 GTA IV 这样的大型 PC 游戏如何使用我 50% 的 CPU 并以 60fps 运行,而旋转茶壶 @ 60fps 的 DX 演示使用高达 30% 的速度?
一般来说,这是因为
例如,您可以进行的一项简单优化涉及不实际尝试绘制看不到的东西。考虑一个复杂的场景,例如 Grand Theft Auto IV 中的城市景观。渲染器实际上并没有渲染所有的建筑物和结构。相反,它只渲染相机可以看到的内容。如果你能飞到这些建筑物的后面,面对原来的相机,你会看到一个半建成的镂空外壳结构。相机看不到的每个点都不会被渲染——因为你看不到它,所以没有必要尝试向你展示它。
此外,当您针对一组特定硬件进行开发时,存在优化的指令和特殊技术,以实现更好的加速。
您问题的另一部分是为什么演示使用这么多 CPU:
… 而旋转茶壶 @ 60fps 的 DX 演示使用了高达 30% 的速度?
当您的硬件不支持展示漂亮示例所需的所有功能时,图形 API(如dxdemo)的演示通常会退回到所谓的 软件渲染器。 这些功能可能包括阴影、反射、光线追踪、物理等。
dxdemo
这模仿了不太可能存在的功能齐全的硬件设备的功能,以展示 API 的所有功能。但由于硬件实际上并不存在,而是在您的 CPU 上运行。这比委派给显卡效率低得多——因此你的 CPU 使用率很高。