学习iPhone开发的图形框架

时间:2009-12-23 13:51:30

标签: iphone opengl-es core-graphics

我有一些CocoaTouch Layer,核心服务层iPhone应用程序的开发经验。

现在,我必须迁移一些纯粹的2D和3D图形iPhone应用程序。

据我所知,我需要以下框架来学习:

1)核心图形 2)OpenGL ES 3)石英芯

我想知道应该快速学习这个框架的方法。

或者要学习哪个框架,哪个框架没有,并使用哪个来源我应该学习这个框架。

先谢谢

2 个答案:

答案 0 :(得分:6)

核心图形

为此,我首先建议阅读Quartz 2D Programming Guide。这是您在这个主题上可以找到的最好的文档集。接下来,我会阅读标记为core-graphicsquartz-2dquartz-graphics的一些问题。在这些问题的答案中有一些很好的源代码示例。

OpenGL ES

这里有许多“OpenGL ES入门”问题,其中包含许多资源的链接。其中包括:

我个人推荐书籍"Mobile 3D Graphics: with OpenGL ES and M3G"以及"OpenGL ES Programming Guide for iPhone OS"。我的应用程序Molecules是开源的,它使用OpenGL ES。最后,Jeff LaMarche在OpenGL ES上有一个great tutorial series

核心动画

通过Quartz Core,你可能意味着核心动画。再说一次,我从Apple的Core Animation Programming Guide开始,然后看一下你可以在各种core-animation标记的问题下找到的代码示例。除此之外,Bill Dudney的Core Animation for Mac OS X and the iPhone书是一本非常好的介绍,而Marcus Zarra和Matt Long的Core Animation书正在详细介绍这一主题。

答案 1 :(得分:3)

我不确定真的有一种快速的方法。文档相当广泛。而且你需要非常扎实的基本图形原理知识。我无法理解概念,并且使用了大量的图形工具包。

可能有用的几点:

  • 在尝试绘制旋转图像时,您需要将坐标转换转换回 QUARTZ 原点(左下角),而不是您设置的某个自定义原点,例如左上角

  • 所以你最好(除非你知道你并且没有其他人维护你的代码会想要旋转图像)接受你可能想到的使用左下角坐标(如果适用)的想法,而不是试图通过改变上下文CTM来覆盖它们

  • 不要以为Core Graphics可以做你想做的一切。对于某些任务,您可能需要自己手动操作像素

  • 设计内存限制以及缓冲区的数量和大小,牢记处理顺序

  • 设计时考虑到1024像素的纹理大小限制

  • 确保使用CPU和/或GPU功能范围内的算法和方法;先用模型测试,然后发现性能问题

  • 如果在OpenGL ES中制作3D动画,请确保您有一种方法可以将实时与您动画的物理模型进行协调和同步

  • 考虑色彩管理,着色和突出显示,特别注意设备的功能

  • 尽可能使用Core Animation代替Core Graphics