OpenGL的全称是Open  Graphics  Library,即开放的图形库接口,它定义了一个跨编程语言、跨平台的编程接口的规范,它主要用于三维图形(实际上二维图形也可以)变成。OpenGL的前身是SGI公司为其图形工作站开发的IRIS  GL。IRIS  GL是一个工业标准的3D图形软件接口,功能虽然强大,但是移植性不好,于是SGI公司便在IRIS  GL的基础上开发了OpenGL。

OpenGL体系简单,而且具有跨平台的特性,它不像Direct3D(Microsoft 开发的3D图像库接口,OpenGL的最有力的竞争对手)只能在Windows系统上运行,因此OpenGL具有很广泛的适应性;它不仅适用于大型图形工作站,也适用于个人PC。

在图像工作站、个人PC上,OpenGL都可以工作良好,但三维图形计算必须需要处理大量数据,因此在一些如手机之类的小型设备上,如果希望使用OpenGL就比较困难。为此,Khronos集团为OpenGL提供了一个子集:OpenGL  ES(OpenGL  for  Embedded  System).

Khronos是一个图形软硬件行业协会,该协会主要关注图形和多媒体方面的开放标准,Khronos协会针对手机、PDA和游戏主机等嵌入式设置了OpenGL  ES。

OpenGL  ES是免费、跨平台的、功能完善的2D/3D图形库接口API,他针对多种嵌入式系统(包括控制台、移动电话、手持设备、家电设备和汽车)专门设计,它是一个精心提取出来的OpenGL的子集。

OpenGL  ES剔除了OpenGL中glBegin/glEnd,四边形(GL_QUADS)、多边形(GL_POLYGONS)等许多非绝对必要的特性。经过多年发展,目前的OpenGL  ES主要有两个版本,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既支持定点数又支持浮点数,common  profile发布于2005-8,引入了对可编程管线的支持。

目前Android  SDK已经支持OpenGL  ES 2.0的绝大部分功能,而且Android专门为OpenGL支持提供了android.opengl包,在该包下提供了GLSurfaceView、GLU、GLUtils等工具类,通过这些工具类在Android应用中使用OpenGL  ES更加方便。

最新文章

  1. js实现点击修改按钮之后单元格变成可编辑状态
  2. Swift利用协议优化NSNotificationCenter
  3. Struts2和Spring的整合
  4. 4、CC2541芯片中级教程-OSAL操作系统(简单AT指令实现+IIC软件和硬件实现驱动MPU6050)
  5. flex lineChart 显示所有的数据节点
  6. mysqlroot passwd
  7. JQuery知识快览之一—选择器
  8. js 作为属性的变量
  9. 怪胎:Android开发ImageView图片无法显示
  10. Oracle INTERVAL DAY TO SECOND数据类型
  11. 我的Pandas应用场景
  12. MySql 加锁问题
  13. 多线程junit单元测试
  14. 26.Django模板语言和分页
  15. SQLServer · 最佳实践 · 透明数据加密TDE在SQLServer的应用
  16. 远程连接MySQL数据库问题总结
  17. Struts2 REST 插件 XStream 远程代码执行漏洞 S2-052 复现过程
  18. C#并行编程(1):理解并行
  19. 基于VUE,VUX组件开发的网易新闻页面搭建过程
  20. POJ 1789 Truck History (Kruskal 最小生成树)

热门文章

  1. SQL触发器、事务
  2. Codeforces 713C Sonya and Problem Wihtout a Legend
  3. Tomcat的使用
  4. C++——string类和标准模板库
  5. [js] 跨域
  6. ttttttttttt
  7. 【转载】【Oracle 11gR2】db_install.rsp详解
  8. 转:21副GIF动图让你了解各种数学概念
  9. JavaScript的事件对象_鼠标事件
  10. Hbase之使用回调函数进行批处理操作