Android OpenGL实战 颜色和旋转
2010-05-14 16:53:00 来源:WEB开发网/**
* 设置顶点数据
* 参数:
* 1、顶点尺寸----这里使用的是xyz坐标系,所以是3
* 2、顶点类型----这里是固定的,所以用GL_FIXED
* 3、步长
* 4、顶点缓存----即顶点数组
*/
gl.glVertexPointer(3,GL10.GL_FIXED, 0, triggerBuffer);
//开启色彩渲染功能
gl.glEnableClientState(GL10.GL_COLOR_ARRAY);
//设置三角形颜色
gl.glColorPointer(4, GL10.GL_FIXED, 0, colorBuffer);
/**
* 绘制顶点
* 参数:
* 1、绘制的模式----我们使用 GL_TRIANGLES来表示绘制三角形
* 2、开始位置
* 3、要绘制的顶点计数
*/
gl.glDrawArrays(GL10.GL_TRIANGLES, 0, 3);
//关闭色彩渲染功能
gl.glDisableClientState(GL10.GL_COLOR_ARRAY);
//重置当前的模型观察矩阵
gl.glLoadIdentity();
//右移1.5,进入6.0
gl.glTranslatef(1.5f, 0.0f, -6.0f);
//设置四边形顶点数据
gl.glVertexPointer(3, GL10.GL_FIXED, 0, quaterBuffer);
//设置四边形颜色-单调着色
gl.glColor4f(0.5f, 0.5f, 1.0f, 1.0f);
//旋转四边形
gl.glRotatef(rotateQuad, 1.0f, 0.0f, 0.0f);
//绘制顶点(注意参数一不同)
gl.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, 4);
//取消顶点设置
gl.glDisableClientState(GL10.GL_VERTEX_ARRAY);
//改变旋转角度
rotateTri+=0.5;
rotateQuad-=0.5;
}
/**
* 当窗口大小发生改变是调用此方法
* 不管窗口大小是否已经改变,此方法至少执行一次
* 所以在此方法中设置OpenGL场景的大小
*/
@Override
public void onSurfaceChanged(GL10 gl, int width, int height) {
float ratio = (float) width / height;
//设置OpenGL场景大小为屏幕大小
gl.glViewport(0, 0, width, height);
/*为屏幕设置透视图*/
更多精彩
赞助商链接