android OpenGL的一些知识

     Android 3D引擎采用的是OpenGL ES。OpenGL ES是一套为手持和嵌入式系统设计的3D引擎API。 在PC领域,一直有两种标准的3D API进行竞争,OpenGL和DirectX。一般主流的游戏和显卡都支持这两种渲染方式,DirectX在Windows平台上有很大的优势,但是OpenGL具有更好的跨平台性。
     由于嵌入式系统和PC相比,一般说来,CPU、内存等都比PC差很多,而且对能耗有着特殊的要求,许多嵌入式设备并没有浮点运算协处理器,针对嵌入式系统的以上特点,Khronos小组对标准的 OpenGL 系统进行了维护和改动,以期望满足嵌入式设备对3D绘图的要求。
      Android系统使用OpenGL的标准接口来支持3D图形功能,android 3D 图形系统也分为 java 框架和本地代码两部分。本地代码主要是实现OpenGL 接口的库,在Java 框架层,javax.microedition.khronos.opengles 是 java 标准的OpenGL包,android.opengl包提供了OpenGL系统和Android GUI系统之间的联系。
     OpenGL ES目前只支持三角形,因此,所有的图形绘制以及特效变换(如:折叠)都是基于三角形来进行的,旋转除外。比方说需要绘制正方形,那么实际的绘图过程是两个三角形拼凑而来。
      Android 中使用GLSurfaceView来显示OpenGL视图,该类位于android.opengl包里面。它提供了一个专门用于渲染3D的接口Renderer 。
     新建一个类实现Renderer接口
public class MyRenderer implements Renderer
{
}

然后在新类中重写以下三个方法:
public void onDrawFrame(GL10 gl)
{
}
public void onSurfaceChanged(GL10 gl, int width, int height)
{
}
public void onSurfaceCreated(GL10 gl, EGLConfig config)
{
}

相关解释:
onSurfaceCreated():当创建GLSurfaceView时被调用,只调用一次。在这个方法中执行只发生一次的动作,比如设置OpenGL环境参数或初始化OpenGL图形对象
onDrawFrame():系统在每次重绘GLSurfaceView时调用此方法。此方法是绘制图形对象的主要的执行点
onSurfaceChanged():当GLSurfaceView几何体改变时系统调用此方法,比如GLSurfaceView的大小改变或设备屏幕的方向改变。使用此方法来响应GLSurfaceView容器的变化。第一次启动应用的时候也会执行这个方法

具体可以参考博客:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值