【发布时间】:2013-02-04 19:19:39
【问题描述】:
我正在尝试找到一种可靠的方法来准确设置我希望我的 OpenGL 应用程序在屏幕上呈现多少 FPS。我可以在某种程度上通过休眠 1000/fps 毫秒来做到这一点,但这并没有考虑到渲染所需的时间。 将 fps 限制在所需数量的最一致的方法是什么?
【问题讨论】:
-
休眠 1 毫秒也不考虑操作系统调度程序的粒度。在大多数非实时操作系统上,您无法可靠地让线程/进程休眠 1 毫秒,您能做的最好的可能是 10-15 毫秒。所以你最终使用了一个自旋锁,它只是坐在那里浪费 CPU 周期。您不妨对物理模拟等进行双缓冲,并以与渲染不同的频率运行它,以保持 CPU 做一些有用的事情,同时满足应用程序渲染部分的调度截止日期。
标签: opengl 3d frame-rate