【发布时间】:2011-06-14 10:11:03
【问题描述】:
我使用How to make an OpenGL rendering context with transparent background? 中的代码创建了一个具有透明背景的窗口。我的问题是帧速率非常低 - 即使我绘制一个四边形(由 2 个三角形组成),我也有大约 20 帧/秒。我试图找出原因,而 glFlush() 大约需要 0.047 秒。你知道为什么吗?在 6000 fps(当我删除 60 fps 限制时)没有透明背景的窗口中呈现相同的东西。它还需要一个核心到 100%。我在 Q9450@2.66GHz 和 ATI Radeon 4800 上使用 Win7 对其进行了测试。
【问题讨论】:
-
您是否考虑过使用双缓冲和
SwapBuffers()而不是glFlush()? -
该技术不适用于渲染 OpenGL 动画,但它是我知道在 Vista 之前的 Windows 上绘制透明 OpenGL 窗口的唯一方法。这个页面有一个有趣的例子,你可以试着把它倒过来看看它是怎么做的:coreytabaka.com/programming/cube-demo