我是Open GL的新手(我使用的是旧的Open GL API),我试图按照以下步骤实施第3步:
1. Draw something
2. Draw some more things.
3. Don't draw anything NEW for some time t. But keep displaying whatever has been drawn so far.
4. Time t has elapsed, move on to drawing new things.
sleep()
和其他类似的功能显然不起作用,因为它在睡眠时间内不会绘制任何的东西,所以你只需得到一个空白屏幕时间t。
我该怎么做?
答案 0 :(得分:3)
一个选项是您绘制到前缓冲区。假如你想先绘制A,然后等待几秒钟,然后画B:
现在通常不推荐绘制到前端缓冲区,甚至在OpenGL的某些变体(例如OpenGL ES)中也不支持。
更标准的选项是,当您想要使用更多内容更新整个场景时,再次绘制整个场景:
如果绘图A非常昂贵,您可以考虑将其渲染到屏幕外帧缓冲区(FBO)的方法,然后在需要时将其复制到默认的帧缓冲区: