![](https://csdnimg.cn/release/download_crawler_static/86106276/bg1.jpg)
说起来很惭愧,一直没有接触过 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 接口,并实现它的三个抽象方法,要吃饭了,直接上代码吧
view plaincopy to clipboardprint?
package com.yarin.android.Examples_12_01;
import java.nio.IntBuffer;
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;
import android.opengl.GLSurfaceView.Renderer;
public class GLRender implements Renderer
{
int one = 0x10000;
//三角形三个顶点
private IntBuffer triggerBuffer = IntBuffer.wrap(new int[]{
0,one,0, //上顶点
-one,-one,0, //左下点
one,-one,0,}); // 右下点
//正方形的 4 个顶点
private IntBuffer quaterBuffer = IntBuffer.wrap(new int[]{
one,one,0,
-one,one,0,
one,-one,0,
-one,-one,0});
@Override
public void onDrawFrame(GL10 gl)
{
// 清除屏幕和深度缓存
#p# #e#
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
// 重置当前的模型观察矩阵
gl.glLoadIdentity();
// 左移 1.5 单位,并移入屏幕 6.0
gl.glTranslatef(-1.5f, 0.0f, -6.0f);