说起来很惭愧,一直没有接触过OpenGL,以前从来没有这方面的需求,今天决定学习一下!
OpenGL(Open Graphics Library)定义了一个跨编程语言、跨平台的编程接口的规格,是一个性能卓越的三维图形标准!
OpenGL ES与OpenGL的区别:
OpenGL ES是专为内嵌和移动设备设计的一个2D/3D轻量级图形库,它基于OpenGL API设计,是OpenGL三维图形API的子集
Android里有三个与OpenGL有关的包:
android.opengl
javax.microedition.khronos.egl
javax.microedition.khronos.opengles
今天用到的不多,只有几个类而已
首先,写一个类实现Renderer接口,并实现它的三个抽象方法,要吃饭了,直接上代码吧
代码注释写的很清楚,值得一提的是在onSurfaceChanged()里
// 设置视口的大小 gl.glFrustumf(-ratio, ratio, -1, 1, 1, 10); // 选择模型观察矩阵 gl.glMatrixMode(GL10.GL_MODELVIEW);
顺序不能写反,否则会出问题,至于什么问题,自己试下就知道了,我也是偶然发现的
没什么好说的,基本上都是固定的,要记得 setContentView(R.layout.main)是无效的!
写完收工,刚好吃饭去...
本文介绍了Android中使用OpenGL ES的基础知识,包括OpenGL ES与OpenGL的区别、涉及的主要Android包,以及如何创建一个实现Renderer接口的类来绘制三角形和正方形。在代码示例中,详细解释了onDrawFrame、onSurfaceChanged和onSurfaceCreated方法的实现,演示了如何设置视口、投影矩阵和模型观察矩阵。
1839





