我已经看到了很多关于哪个更好的争论,石英还是用于2D游戏的OpenGL ES。不管像Cocos2D这样的库,我很好奇是否有人能指出使用OpenGL ES作为2D平台的教学资源。我的意思是,我们真的在说学习3D编程是值得的吗? increase...or可以从2D的角度来学习吗?
发布于 2009-12-19 03:52:52
GL可能会提供更好的性能,CPU使用率更低,电池消耗更少,等等。使用GL绘制2D图形就像使用GL绘制3D图形一样,只是不需要更改Z坐标。
也就是说,使用Quartz编写2D绘图代码更容易,因此您必须做出权衡。
发布于 2009-12-19 10:19:04
抄袭自我提供给here的类似答案
当您提到Quartz时,您可能指的是核心动画。Quartz处理视图或层中的静态2-D绘图。在iPhone上,所有用于显示的石英绘图都是在核心动画层上完成的,可以直接绘制,也可以通过层支持视图完成。每次执行此绘制时,都会将图层发送到GPU进行缓存。这种重新缓存是一项开销很大的操作,因此尝试通过使用Quartz在每一帧中重新绘制对象来使其具有动画效果会导致糟糕的性能。
但是,如果您可以将图形拆分为内容不会频繁更改的子画面,则可以使用Core Animation获得非常好的性能。这些精灵中的每一个都将被托管在核心动画CALayer或UIKit UIView中,然后围绕屏幕进行动画。由于层被缓存在GPU上,基本上是作为纹理,它们可以非常平滑地移动。我已经能够在原始的iPhone (不是3G S)上以60FPS的速度同时移动50个半透明层(在30FPS时为100)。
您甚至可以使用Core Animation进行一些基本的3-D布局和动画,如我在this sample application中所示。但是,您只能使用扁平的矩形结构(层)。
如果你需要做真正的3-D工作,或者想要挤出设备的最后一点性能,你会想看看OpenGL ES。然而,OpenGL ES远没有核心动画那么容易使用,所以我的建议是先尝试核心动画,只有当你不能做你想做的事情时才切换到OpenGL ES。我已经在我的应用程序中使用了这两个工具,并且我非常喜欢使用Core Animation。
https://stackoverflow.com/questions/1929808
复制相似问题