Hal*_*lex 5 3d opengl-es ios glkit
在渲染循环中,这两种方法之间应该有什么区别?
苹果有这个说....
关于update() 视图控制器调用其委托的glkViewControllerUpdate:方法.您的代理人应更新不涉及将结果呈现到屏幕的帧数据.
关于drawInRect: GLKView对象使其OpenGL ES上下文成为当前上下文,并将其framebuffer绑定为OpenGL ES呈现命令的目标.然后,您的委托方法应该绘制视图的内容.
所以基本上,当我在我的视图控制器中创建一个GLKView时,该控制器就变成了一个delate,所以我正在并排查看这些方法.
我假设update()应该包含任何变换或其他逻辑.
首先,Apple 试图帮助您将时序与帧速率分离。如果您的游戏总是设法在为单个帧分配的时间内绘制一个帧,则两者将同步发生。但是,即使屏幕上出现大量对象并且您的帧速率略有下降,您仍然会获得相同数量的更新,因此对象仍会以相同的速度移动。
其次,它们帮助您将代码划分为模型-视图-控制器。您的对象的呈现方式应该与它们的行为方式分离。
因此,无论是什么导致您的动画,您的更新都应该进行,您的绘制应该呈现当前状态。
| 归档时间: |
|
| 查看次数: |
2902 次 |
| 最近记录: |