Quartz2d到OpenGL ES的描述语言有多大差异?
它们在描述能力上似乎相似......除了Quartz大多是2d并且OpenGL是开箱即用的3d(但可以做成2d聚焦)。
从2dQuartz到2d OpenGL ES的映射是否有所不同?我确定某些特定功能必须存在差异,这些功能可能会在一个与另一个之间以不同方式处理......但是要做翻译吗?
任何有OpenGL和Quartz2d经验的人都有一些见解吗?
答案 0 :(得分:1)
Quartz和OpenGL ES是两种完全不同的动物。虽然它们都有一个基于C的API来处理状态机并且它进入上下文,但它们的目的却不同。在Quartz中,您可以指定直线,贝塞尔曲线和二次曲线,圆弧或矩形,以及填充,渐变和阴影/发光。在OpenGL ES中,您可以提供生成场景的顶点,栅格纹理和光照信息。
它们在特定情况下都很有用。您可以使用Quartz将2-D静态元素绘制到视图,图层或纹理中,然后使用Core Animation在3-D空间中放置和移动该视图或图层,或者使用OpenGL ES对纹理执行相同操作。
不要试图在另一个上覆盖一个API,而是使用更适合您正在做的事情,或者寻找像cocos2d这样的框架,它允许您构建和动画2-D场景或Core Animation你可以将Quartz绘制成一个图层,但仍然使用一个很好的抽象API来移动这些图层。