Tha*_*nks 7 iphone cocoa-touch opengl-es uikit
目前我有一个用户界面,可以大量使用核心动画.我想知道再花2个月学习openGL ES是否值得?这真的能提高2D表面的绘图性能吗?我没有3D对象,但有高度动画的2D内容.有时3D失真,大量旋转和缩放.
特别是我使用CA制作了一个包含大量精灵的整个游戏.性能还可以但并不完美.
理论上,OpenGL应该是设备上最快的API,因为它最接近硬件.(如果我错了,请有人纠正我.)在OpenGL中,你可以做一些巧妙的技巧,这将有助于你的表现 - 你可以批量绘制精灵,你可以使用点精灵,你可以尝试压缩纹理等
另一方面,你非常接近硬件,并没有留下太多的抽象,至少在与Core Animation比较时.你必须处理非二次幂的纹理,投影,矩阵,你必须自己编写动画代码等等.有很多地方你可能会出错并严重杀死性能而不是让它变得更好.
我喜欢OpenGL的是它是跨平台的.关于OpenGL有很多资源,还有很多需要改进的地方.如果你想写游戏并有时间学习OpenGL,那就去做吧.将OpenGL基础知识包装到OOP设计中并不难,最终您将获得更多的性能改进空间.一个好的起点是适用于iPhone的Cocos 2D引擎.
(免责声明:我对OpenGL知之甚少,对Core Animation也不了解.我使用OpenGL为iPhone编写了两款2D游戏.)
这取决于您正在做什么以及您的目标设备。如果您正在做的事情可以从可编程图形管道中受益并针对 iPhone 3GS,那么您可能会看到一些好处,仅仅是因为该功能没有通过 CoreAnimation 公开,所以您必须以某种奇怪的方式来完成它(操纵图像等)。iPhone 3G 硬件没有可编程着色器,因此即使您的效果可以用着色器来表达,迁移到 OpenGL 也不会在旧手机上提供这种好处。
如果您所做的只是移动、旋转和缩放 2D 表面,那么 CoreAnimation 将提供与 OpenGL 非常相似的性能,稍好或稍差,具体取决于数据进入图层的方式等。
| 归档时间: |
|
| 查看次数: |
1963 次 |
| 最近记录: |