Rui*_*res 7 iphone opengl-es core-graphics ios
我想知道使用Core Graphics而不是Open GL ES可以获得什么样的优势.我的主要问题是基于这个:
谢谢.
Bra*_*son 21
首先,我想在这里澄清一些术语.当人们谈论Core Graphics时,他们通常指的是Quartz 2D绘图,这是一个基于2-D矢量的绘图API.它用于将矢量元素绘制到屏幕或屏幕上下文(如PDF).核心动画负责动画,布局和一些涉及矩形图层和UI元素的有限三维效果.OpenGL ES是一个较低级别的API,用于与iOS设备上的图形硬件进行通信,以进行二维和三维绘图.
你在问题中提出了很多问题,对每种情况下最佳情况的判断是主观的,完全取决于开发人员及其特殊需求.但是,我可以提供一些一般性提示.
一般而言,您将在Apple的文档和工程师的演示文稿中看到的建议是,您最好使用最高级别的抽象来解决您的特定问题.
如果您只需绘制一个二维用户界面,首先应该尝试使用Apple提供的UIKit元素来实现它.如果他们没有您需要的功能,请制作自定义UIViews.如果您正在设计Mac-iOS跨平台代码(如Core Plot框架中),您可能会使用自定义Core Animation CALayers.在此过程中的每一步都需要您编写更多代码来处理上述级别为您执行的操作.
使用Core Animation可以完成大量的工作,性能非常好.这不仅限于二维动画,还可以扩展到一些简单的三维动画.
OpenGL ES位于您在屏幕上为iOS设备看到的所有内容的下方,尽管这不会向您展示.因此,它为屏幕渲染提供了最少的抽象,并且需要您编写最多的代码来完成某些操作.但是,在您希望从2-D显示中提取最佳性能(例如,在动作游戏中)或渲染真正的3-D对象和环境的情况下,它可能是必要的.
同样,我倾向于建议人们在编写应用程序时从最高抽象级别开始,只有当他们发现他们无法执行某些操作或性能不在他们试图达到的规范范围内时才会下降.更少的代码行使应用程序更易于编写,调试和维护.
也就是说,有一些很好的框架围绕抽象OpenGL ES开发,例如cocos2D和Unity 3D,这可能使得在许多情况下更容易使用OpenGL ES.对于每种情况,您都需要评估对应用程序的特定需求有意义的内容.
| 归档时间: |
|
| 查看次数: |
3742 次 |
| 最近记录: |