gpt4 book ai didi

opengl - 如何使游戏的 FPS(使用 OpenGL)达到 800 FPS

转载 作者:行者123 更新时间:2023-12-02 08:33:13 27 4
gpt4 key购买 nike

我们如何才能以更高的帧速率(例如 500 - 800 FPS)运行 OpenGL 应用程序(例如游戏)?

例如,AOE 2 的运行速度超过 700 FPS(我知道它与 DirectX 有关)。尽管我只是在游戏循环中清除缓冲区和交换缓冲区,但我只能获得大约 200(最大)FPS。我知道 FPS 不是一个好的衡量标准(并且还取决于硬件),但我觉得我错过了 OpenGL 中的一些概念。我有吗?请问任何人都可以给我提示吗?

最佳答案

在空显示循环(GeForce 260 GTX,1920x1080)的情况下,我得到了大约 5.600 FPS。添加 glClear 会将其降低至 4.000 FPS,但仍远高于 200...一个简单的图形引擎(AoE2 风格)应以大约 100-200 FPS 运行(GeForce 8 或类似引擎)。如果它是多线程且完全优化的,可能会更多。

我不知道你在循环中到底做了什么,也不知道运行在什么硬件上,但是 200 FPS 听起来除了什么都不画之外你还在做其他事情( sleep ?游戏逻辑的东西?贪婪的框架?Aero?)。即使必须复制两个帧缓冲区,交换缓冲区功能也不应花费 5 毫秒。您可以使用配置文件来检查花费最多 CPU 时间的地方(尽管 gl* 函数的计时结果大多无用)

如果您正在使用 OpenGL 做一些事情(绘图、创建纹理等),有一个很好的扩展来测量时间,称为 GL_EXT_timer_query .

一些常规优化技巧:

  • 不要使用立即模式(glBegin/glEnd),而是使用 VBO 和/或显示列表+顶点数组
  • 使用一些剔除技术来删除 View 之外的对象(opengl 必须分别剔除每个多边形)
  • 尝试最小化状态变化,尤其是更改绑定(bind)纹理或顶点缓冲区

关于opengl - 如何使游戏的 FPS(使用 OpenGL)达到 800 FPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1184376/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com