Demo展示:
几个重要模块
GLSurfaceView:
1.首先需要自定义类实现GlsurfaceView.Renderer接口
public abstract class AbstractMyRender implements GLSurfaceView.Renderer {
public float ratio;
// 围绕X轴旋转的角度
public float xrotate = 0f;
// 围绕Y轴旋转的角度
public float yrotate = 0f;
// 围绕Z轴旋转的角度
public float zrotate = 0f;
/*
这是第一步
*/
@Override
public void onSurfaceCreated(GL10 gl10, EGLConfig eglConfig) {
// 清屏色
gl10.glClearColor(0f,0f,0f,1f);
// 启用顶点缓冲区数组
gl10.glEnableClientState(GL10.GL_VERTEX_ARRAY);
}
/*
这是第二步
*/
@Override
public void onSurfaceChanged(GL10 gl10, int i, int i1) {
//设置视口
gl10.glViewport(0,0,i,i1);
ratio = (float)i/(float)i1;
// 投影矩阵
gl10.glMatrixMode(GL10.GL_PROJECTION);
// 加载单位矩阵
gl10.glLoadIdentity();
// 设置平截头体
gl10.glFrustumf(-ratio,ratio,-1,1,3f,7f);
}
/*
这是第三步
*/
public abstract void onDrawFrame(GL10 gl10);
}
2.定义子类继承自定义类并复写其中的方法(可以绘制不同的图案),例如绘制颜色立方体可以定义子类MyColorCubeRenderer
public class MyColorCubeRenderer extends AbstractMyRender {
@Override
public void onSurfaceCreated(GL10 gl10, EGLCon