关于OpenGL ES
Open Graphics Library(OpenGL)用于二维及三维数据的可视化。它是一种多用途的开放标准图形库,支持二维和三维数位内容创作,机械和建筑设计,虚拟样,飞行模拟,游戏,以及更多的应用。OpenGL允许应用程序开发人员配置3D图形管线,并提交数据。顶点是可转换及照明,组装原函数,创建2维图像。OpenGL被设计为翻译函数呼叫为图形命令并送至底层图形装置硬件。
因为底层硬件专门处理图形命令,所以OpenGL绘图非常快。
OpenGL for Embedded Systems (OpenGL ES)是OpenGL的一个简化版本,消除冗余的功能并提供一个库,既容易学习也容易实践在移动装置上。
一览
Apple 提供OpenGL ES 1.1 与 OpenGL ES 2.0:
●OpenGL ES 1.1实践了一个明确的固定功能的管线。它实践传统照明及阴影模式并允许在每个阶段配置以执行特殊任务或关闭不需要的功能。
●OpenGL ES 2.0 与OpenGL ES 1.1有很多相同通用功能,但移除了所有关于固定顶点及流水线阶段的功能。相反的,它提供了存取通用著色器(shader)管线的新功能。著色器允许你自定顶点及片段功能,并直接在图形硬件上执行。使用著色器,你的应用可以更清楚的自定每一个顶点跟片段的管线输入及计算。
OpenGLES 是基于C语言, 与平台无关的应用程序接口
因为OpenGLES是基于C的應用程序接口,所以非常容易移植及广泛支持。作为C应用程序接口,可与基于Objective-C的CocoaTouch应用程序无缝集成。OpenGLES规范中并没有声明窗口层,主操作系统需提供功能创建OpenGLES宣染内文(renderingcontext),用以接受命令及创建侦缓存(framebuffer)用来绘制命令结果。
相关章节“OpenGL ES on iOS” (13页), “Configuring OpenGL ES Contexts” (20页)
OpenGLES 被整合进 Core Animation
Core Animation是iOS图形基础,包含了应用程序显示在萤幕上的OpenGL ES内容。 当你开发OpenGL ES应用程序,OpenGL ES内容会被绘制在一个特殊的Core Animation层,这个层被称为CAEAGLLayer对象。用OpenGLES绘制的图片会被储存在CAEAGLLayer中。CoreAnimation组合其它层的图形内容并显示最后结果在萤幕上。
相关章节 “Drawing With OpenGL ES” (28页)