【发布时间】:2012-03-18 15:42:57
【问题描述】:
我尝试使用 FRAPS 从我自己的 OpenGL 程序窗口录制视频,但我得到了 7fps!然后我用 DirectX 编写了完全相同的程序,我得到了流畅的 30fps。在这两个程序中,渲染速度为 60 fps,CPU 使用率相同。分辨率似乎根本没有影响。
这可能是什么原因,以及如何使用 OpenGL 使其尽可能快?
编辑:我用空场景进行了测试,只使用了 glClear() 函数,但我仍然只有 7fps!
Edit2: 我的示例程序具有最小的代码大小,导致同样的低 FPS 问题:http://pastebin.com/8nGTsBX5(代码来自我的另一个问题,如果你不介意的话)。 Edit3:我还注意到,只有窗口大小为 320x240(不过,只有 24fps)或更小,我才能获得更高的 FPS。
【问题讨论】:
-
如果您使用的是立即模式,则重写您的程序以使用现代核心配置文件并最大限度地减少渲染循环内的 GL 调用。
-
@CatPlusPlus,这真的是一个原因吗?对我来说听起来很奇怪。但我想我会尝试一下,只是为了确定。我还尝试了使用很少 GL 调用的其他 GL 程序,它也得到了 7fps...
-
立即模式众所周知是缓慢且过时的。即使它与手头的问题无关,你也不应该使用它。
-
@CatPlusPlus,编辑:我用空场景进行了测试,根本没有使用绘图,同样的问题:7fps。
-
然后向我们展示您如何在 OpenGL 中进行绘图。在不知道这一点的情况下,没有什么可建议的。
标签: opengl windows-xp directx