2011-06-03 68 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