我從網頁上Tuning Your OpenGL ES App閱讀:重繪場景時的場景數據的變化
重繪場景只有在場景數據的變化: 您的應用程序應該等待,直到場景變化的東西渲染新幀之前。核心動畫會緩存呈現給用戶的最後一幅圖像,並繼續顯示直到出現新幀。
即使數據發生變化,也不需要以硬件處理命令的速度渲染幀。對於用戶而言,較慢但固定的幀速率通常比快速但可變的幀速率更平滑。對於大多數動畫來說,每秒30幀的固定幀速率已足夠,並有助於降低功耗。
從我的理解,有一個事件循環,不斷運行和重新渲染場景。我們只是覆蓋方法並將渲染代碼放在那裏。我無法控制何時調用此方法。那麼我怎麼才能「重繪場景只有當場景數據變化」?
就我而言,只有當用戶進行交互時(點擊,捏等),場景纔會有變化。理想情況下,當用戶不與我的場景進行交互時,我想不渲染,但是此函數正在不斷調用。很困惑。
Re:「'onDrawFrame'」 - 這不是iOS提供的,不是GLKit的一部分,也不遵循Objective-C或Swift慣用的命名約定。那麼它從哪裏來?這很可能來自答案的來源。 – Tommy