天天看点

OpenGLES应用开发实践指南——初识OpenGLES

 什么是OpenGL ES?

OpenGL ES (为OpenGL for Embedded System的缩写) 为适用于嵌入式系统的一个免费二维和三维图形库。

为桌面版本OpenGL 的一个子集。

OpenGL ES 定义了一个在移动平台上能够支持OpenGL最基本功能的精简标准,以适应如手机,PDA或其它消费者移动终端的显示系统。

Khronos Group 定义和管理了OpenGL ES标准。

OpenGL 与 OpenGL ES的关系OpenGL ES 是基于桌面版本OpenGL 的:

  • OpenGL ES 1.0  基于OpenGL 1.3 , 在2003年发布
  • OpenGL ES 1.1   基于OpenGL 1.5 ,  在2004年发布
  • OpenGL ES 2.0  基于OpenGL2.0,   在2007年发布
  • OpenGL2.0 向下兼容OpenGL 1.5   而 OpenGL ES 2.0 和OpenGL ES 1.x 不兼容,是两种完全不同的实现。

OpenGL ES 和 OpenGL 一样,是 khronos 所维护、定义的免授权费、跨平台的 3D Graphics API,不过和 OpenGL 不同的是,OpenGL ES 主要是针对嵌入式系统(embedded system)的环境(像是手机、PDA).

而近年来网页上的多媒体技术越来越複杂、多样化,也渐渐地需要用到 3D Graphics 的硬体加速,所以也出现了基于 OpenGL ES 2.0 而发展、直接在网页上做 3D 显示的 WebGL。

也由于 OpenGL ES 所针对的环境一般来说效能都较差、有支援的功能也较少,所以OpenGL ES 的技术方面的进展会比 OpenGL 来的慢、而且也有较多的限制。

目前 OpenGL ES 有两个大版本,一个是基于 OpenGL 1.3 / 1.5、使用「fixed function pipeline」的 1.0 / 1.1,另一个则是基于 OpenGL 2.0、使用「programmable pipeline」的 2.x。两者***的差别,就在于 OpenGL ES 2.0 移除了 fixed function pipeline 的功能,而要使用透过 vertex / fragment shader 来实作的 programmable pipeline。

继续阅读