如何用opengl将FPS设置为30?

时间:2010-10-20 05:58:06

标签: c++ opengl

那怎么样?我的应用程序运行速度为60FPS,但我想要30。

4 个答案:

答案 0 :(得分:4)

假设您有目标帧速率,您可以测量自上次渲染完成以来的长度。从那里,你可以睡觉targetMsPerFrame - timeElapsed。

答案 1 :(得分:3)

一个字:sleep

答案 2 :(得分:3)

查看有关您的操作系统的WGL_EXT_swap_controlGLX_EXT_swap_control扩展名。这用于控制VSync,但应该以显示器刷新率的一半进行渲染。

答案 3 :(得分:0)

@itzWarty有关于如何设置帧率的正确答案。它被称为“钳制”或“锁定”帧速率。

但你为什么要那样做呢?如果你试图避免占用资源,那么夹紧帧率是好的。

否则你可能希望让帧率尽可能快,以便让那些拥有极佳鸣喇叭的人觉得他们不会浪费他们的钱。在这种情况下,您需要使动画基于时间而不是基于帧。即根据自上一步骤以来经过的时间来缩放动画步骤。 E.g。

x += dx * (timeNow - timePrev) / typicalDuration; // pseudoCode