2011-06-03 85 views
1

好吧,我会听起来像这个白痴。开始。我该如何告诉OpenGL多久绘制一些东西?

我一直在做iOS开发大约一年,但只有今晚我才开始做与OpenGL相关的任何事情。我遵循了Jeff LaMarche的精彩指南,我正在绘制一个整洁的三角形,并且让它翻转过来。我是一个娱乐程序员。

好的,这里是一个愚蠢的问题部分:我如何设置OpenGL的某个地方来连续执行glRotatef和glDrawArrays +朋友,或者以每秒设置的帧数?我尝试过使用谷歌搜索,但真的不能拿出很好的搜索条件。

在此先感谢您,并准备好为这些问题提供更多的帮助。

回答

0

嗯,我不是主题的专家,但不能只是把旋转/绘制命令放在一个while循环中,当按下某个按钮或发生特定事件时结束?

2

虽然其他人对OpenGL ES的一般情况提出了很好的建议,但我知道您可能正在iOS上工作,Will,因此有更好的平台特定替代方案。在你的情况下,我相信你会更好地服务于CADisplayLink,它会触发与屏幕刷新率同步的回调。使用这种方法,您可以获得比使用定时器或循环内的某种轮询更平滑的更新。

与Grand Central Dispatch结合使用时,这特别有效,正如我在回答here中所述。当我使用循环切换到CADisplayLink进行更新时,由于丢帧较少,我的渲染在所有iOS设备上变得更平滑。在其上添加GCD使事情变得更好。

您可以参考我的Molecules代码以了解其中的一个示例(请参阅SLSMoleculeGLViewController了解如何使用此动画对我的自旋进行动画)。 Apple的OpenGL ES应用程序模板也使用CADisplayLink进行更新,最后我检查了一下。

+0

感谢Brad!我在这一个人面前对埃里克进行个人挑战。我将不得不向您展示我们在WWDC上的工作。 :) – wjl 2011-06-03 22:36:29

相关问题