OpenGL是一套3D图形软件接口标准,具有体系结构简单、使用方便、与操作平台无关等优点。
已成为目前三维图形开发标准。[www.opengl.org]【OpenGL 在1.3版时及之后,OpenGL API不再采用纯软件的形式进行运算,开始与
硬件芯片结合,出现了OpenGL硬加速的实现形式。
OpenGL硬加速的优点在于 使CPU从繁重的图形运算工作中解脱出来,将运算重点
集中于非界面应用,即嵌入式操作系统中优先级最高,但与界面无关的应用。
GPU图形处理器与CPU中央处理器的分工合作,带来高效率。】
OpenGL ES是专为内嵌和移动设备设计的一个2D/3D轻量图形库,基于OpenGL API设计。
应该说OpenGL ES在高效完成2D/3D界面的同时达到了降低功耗的效果。
【OpenGL ES 1.0版基于 OpenGl 1.3版,OpenGL ES 1.1版基于 OpenGL 1.5版】
【Android平台在sdk2.0之前支持OpenGL ES 1.1;在sdk2.0之后支持OpenGL ES2.0】
【OpenGL ES硬加速也有缺点,即增加设备成本;取决于应用是否需要强劲的性能】
------------------------------------------------------------------------
OpenGL ES 相对于 OpenGL删减了一切低效能的操作方式:
没有了double型数据类型,加入了高性能的定点小数数据类型。
没有了glBegin/glEnd/glVertex,只能用glDrawArrays等。
没有了实时将非压缩图片数据转成压缩贴图的功能,程序必须直接提供压缩好的贴图。
-------------------------------------------------------------------------
OpenGL ES 1.x 版本介绍:
此版本为固定渲染管线(Fixed_Function)而设计。子版本有:1.0、1.1
1.1版向下兼容1.0版。基本不考虑1.0版本了。
--------------------------------------------------------------------------
OpenGL ES 2.x 版本介绍:
此版本为可编程渲染管线(Programmable)而设计。目前只有2.0版,基于OpenGL2.0
与1.x的区别是:可以支持vertex 和 pixel shader。
2.0不再支持1.x里的固定管线功能。即2.x不向下兼容1.x。
=================================================================================
OpenGL ES开发包:android.opengl.*;
OpenGL ES视图: GLSurfaceView //OpenGL视图 Renderer //渲染器
Renderer接口:
onSurfaceCreated(GL10 gl, EGLConfig config)
onSurfaceChanged(GL10 gl, int width, int height)
ondrawFrame(GL10 gl)