在学习Android OpenGL ES开发之前,你必须具备Java 语言开发经验和一些Android开发的基本知识,但并不需要有图形开发的经验,本教程也会涉及到一些基本的线性几何知识,如矢量,矩阵运算等。
此外Android SDK 中有关OpenGL ES API的开发文档
注:上述Android 文档基本为空,可以参见JSR239的文档,比较详细。
和OpenGL ES Specification都是学习时常用到的参考资料。
什么是OpenGL ES?
- OpenGL ES (为OpenGL for Embedded System的缩写) 为适用于嵌入式系统的一个免费二维和三维图形库。
- 为桌面版本OpenGL 的一个子集。
- OpenGL ES 定义了一个在移动平台上能够支持OpenGL最基本功能的精简标准,以适应如手机,PDA或其它消费者移动终端的显示系统。
- Khronos Group 定义和管理了OpenGL ES标准。
OpenGL 与 OpenGL ES的关系
OpenGL ES 是基于桌面版本OpenGL 的,下图显示了OpenGL 和 OpenGL ES之间的关系图
- OpenGL ES 1.0 基于OpenGL 1.3 , 在2003年发布
- OpenGL ES 1.1 基于OpenGL 1.5 , 在2004年发布
- OpenGL ES 2.0 基于OpenGL2.0, 在2007年发布
- OpenGL 2.0 向下兼容OpenGL 1.5 而 OpenGL ES 2.0 和OpenGL ES 1.x 不兼容,是两种完全不同的实现。
OpenGL ES Profiles
OpenGL ES 1.x 支持两种Profile以支持不同类型的嵌入设备。
- The Common Profile 针对支持硬件浮点运算的设备,API支持定点和浮点运算。
- The Common Lite Profile 针对不支持硬件浮点运算的设备,API只支持定点运算。
本教程主要针对 Common Profile 设备支持浮点运算。