在OpenGL中,一切都与主回路的工作(据我所知)。如果你想绘制一个物体给定的时间,这是一个问题。现在,我做的是以下几点:我测量我的应用程序的近似FPS,并设置一个计数器,以减少主循环中的每次迭代。当计数器达到0时,我停止绘图。因此,例如,如果我想在屏幕上绘制一个物体2秒,并且我的FPS为30,则将计数器设置为60并绘制对象,直到计数器达到0.绘制X秒对象在OpenGL
这可以正常工作,但它不是大。例如,由于对象有时距主循环“远”,所以很难写出类似 drawObjectFor(object, time)
的东西。有没有更好的方法来做到这一点?
是的,我也想过类似的东西,但我想知道是否没有更直接的方法来实现它,例如通过创建独立于程序其余部分的新线程 – seb 2011-04-27 11:14:31
适当的实时循环对于OpenGL应用程序通常比线程更好(至少对于渲染部分 - 你可以使用线程来处理其他任何事情,注意线程同步)。然而,为场景中的每个对象生成一个线程并不是真正可扩展的,并且对于所有消失的对象和其他任何对象都有一个线程,就像没有多线程一样好。 – Kos 2011-04-27 14:49:26