OpenGL简介

来源:互联网 发布:数据库和服务器的关系 编辑:程序博客网 时间:2024/05/18 01:16

OpenGL简介

OpenGL(Open Graphics Library)定义了一个跨编程语言、跨平台的编程接口的规格,是一个性能卓越的三维图形标准。OpenGL是一个专业的图形程序接口,是一个功能强大、调用方便的底层图形库。OpenGL的前身是SGI公司为其图形工作站开发的IRIS GL。IRIS GL是一个工业标准的3D图形软件接口,SGI公司便在IRIS GL的基础上开发了OpenGL。

 

OpenGL与OpenGL ES的区别

OpenGL ES是专为内嵌和移动设备设计的一个2D/3D轻量图形库,它是基于OpenGL API设计的,是OpenGL 三维图形API的子集,针对手机、PDA和游戏主机等嵌入式设备而设计。该API由Khronos集团定义、推广,Khronos是一个图形软硬件行业协会。

 

OpenGL ES的版本

OpenGL ES现在主要有两个版本:OpenGL 1.x 针对固定管线硬件,OpenGL 2.x针对可编程管线硬件。

OpenGL ES 是从 OpenGL 裁剪定制而来的,去除了 glBegin/glEnd,四边形(GL_QUADS)、多边形(GL_POLYGONS)等复杂图元等许多非绝对必要的特性。经过多年发展,现在主要有两个版本,OpenGL ES 1.x 针对固定管线硬件的,OpenGL ES 2.x 针对可编程管线硬件。OpenGL ES 1.0 是以 OpenGL 1.3 规范为基础的,OpenGL ES 1.1 是以 OpenGL 1.5 规范为基础的,它们分别又支持 common 和 common lite 两种profile。lite profile只支持定点定点实数,而common profile既支持定点数又支持浮点数。 OpenGL ES 2.0 则是参照 OpenGL 2.0 规范定义的,common profile发布于2005-8,引入了对可编程管线的支持。


下面是我们列举的一些被Opengl ES裁剪掉的Opengl功能,因此大家在使用api时需要注意,不能使用以下这些api:
1. glBegin/glEnd

2. glArrayElement

3. 显示列表

4. 求值器

5. 索引色模式

6. 自定义裁剪平面

7. glRect

8. 图像处理(这个一般显卡也没有,FireGL/Quadro显卡有)

9. 反馈缓冲

10. 选择缓冲

11. 累积缓冲

12. 边界标志

13. glPolygonMode

14. GL_QUADS、GL_QUAD_STRIP、GL_POLYGON
15. glPushAttrib、PopAttrib、glPushClientAttrib、glPopClientAttrib

16. TEXTURE_1D、TEXTURE_3D、TEXTURE_RECT、TEXTURE_CUBE_MAP

17. GL_COMBINE

18. 自动纹理坐标生成

19. 纹理边界

20. GL_CLAMP、GL_CLAMP_TO_BORDER

21. 消失纹理代表

22. 纹理LOD限定

23. 纹理偏好限定

24. 纹理自动压缩、解压缩

25. glDrawPixels、glPixelTransfer、glPixelZoom

26. glReadBuffer、glDrawBuffer、glCopyPixels
由于篇幅关系,这里我们列举的可能不是全部,更多详细内容大家可以参考www.khronos.org/opengles/。