- 多数的OpenGL ES要求图形硬件带有帧缓存。
- 相比于OpenGL 2.0,OpenGL ES 2.0主要面向嵌入式和移动设备的图形硬件,它移除了大量的冗余和遗留功能,增加了少量新功能。详细可参考Spec (Difference)
什么是OpenGL ES 2.0
编程者视角
- 对编程者来说,OpenGL ES提供了一系列用于定义二维或三维几何对象的命令,以及可以控制这些对象如何渲染到帧缓存的命令。
- OpenGL ES提供了立即模式,即定义对象即绘制对象
- 典型的OpenGL ES程序分为几步:
- 打开一个窗口
- 分配上下文并和窗口绑定
- 发送OpenGL ES命令(包括绘制几何对象,控制对象的光照和染色,模型空间到屏幕空间的映射方式,以及帧缓存操作等等)
实现者视角
对实现者来说,OpenGL ES是一系列可影响图形硬件操作的命令。
- 如何在图形硬件和CPU之间划分任务来获得OpenGL ES调用的最佳性能是实现的关键点之一。图形硬件至少包括一个可寻址的帧缓存,其他完全交由CPU来做。但一般来说,还会实现不同程度的图形加速功能,例如可渲染二维直线和多边形的光栅化子系统,以及可以变换和计算几何数据的浮点处理器。
- OpenGL ES维护了大量的状态信息。状态信息控制着对象以何种方式绘制到帧缓存中。一部分对象可直接被用户访问,另一部分只能看到其对绘制产生的效果。
协议制定者视角
OpenGL ES是一个控制绘制操作的状态机。
相关文档
- OpenGL ES Spec应该和OpenGL ES Shading Language的文档一起阅读,OpenGL ES 2.0实现保证了至少能够支持shading language v1.0。
- 建议采用Khronos Native Platform Graphics Interface ( EGL Spec )来作为创建和管理图形上下文和窗口以及其他资源的API。