目前,我有一个用户界面,它大量使用了核心动画。我想知道是否值得再花两个月的时间来学习openGL ES?这真的能提高 2D 表面的绘图性能吗?我没有 3D 对象,而是高度动画的 2D 对象。有时会出现 3D 扭曲、大量旋转和缩放。
特别是,我仅使用 CA 制作了一个包含大量精灵的完整游戏。性能还可以,但并不完美。
理论上,OpenGL 应该是设备上最快的 API,因为它最接近硬件。 (如果我在这一点上错了,请有人纠正我。)在OpenGL中,你可以做一些巧妙的技巧,这将对你的性能有很大帮助——你可以批量绘制精灵,你可以使用点精灵,你可以尝试压缩纹理, ETC。
另一方面,您非常接近硬件,并且没有太多抽象,至少与核心动画相比是这样。你必须处理非二次幂的纹理、投影、矩阵,你必须自己编写动画代码等等。有很多地方你可能会出错并严重影响性能而不是使其变得更好。
我喜欢 OpenGL 的一点是它是跨平台的。关于OpenGL的资源有很多,还有很大的改进空间。如果您想编写游戏并且有时间学习 OpenGL,那就去做吧。将 OpenGL 基础知识包装到 OOP 设计中并不难,最终您将获得更多的性能改进空间。一个好的起点是适用于 iPhone 的 Cocos 2D 引擎 http://code.google.com/p/cocos2d-iphone/source/browse/.
(免责声明:我对 OpenGL 知之甚少,对核心动画一无所知。我使用 OpenGL 为 iPhone 编写了两款 2D 游戏。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)