Android OpenGL实战 颜色和旋转
2010-05-14 16:53:00 来源:WEB开发网经过OpenGl实战一,已经熟悉了OpenGL开发框架的搭建,到目前为止都是比较简单的,我们已经实现了画出三角形和四边形,在OpenGl中绘制的任何模型都会被分解为三角形和四边形两种简单的图形,但是只有图形是不生动的,所以在三角形和多边形的基础上我们着色,并加上简单的旋转动作!
一、颜色
平滑着色Smooth coloring
单调着色Flat coloring
两者的区别在于:平滑着色指定每个顶点颜色,平滑过渡,单调着色相当于填充颜色(单色)
使用起来都很简单,但还是有区别的:
平滑着色:
view plaincopy to clipboardprint?
private int one = 0x10000;
/**
* 三角形的顶点颜色值
* 参数:
* 1、红色分量
* 2、绿色分量
* 3、蓝色分量
* 4、alpha值
*/
private IntBuffer colorBuffer=IntBuffer.wrap(new int[]{
one,0,0,one,
0,one,0,one,
0,0,one,one,
});
private
int one = 0x10000;
/**
* 三角形的顶点颜色值
* 参数:
* 1、红色分量
* 2、绿色分量
* 3、蓝色分量
* 4、alpha值
*/
private IntBuffer colorBuffer=IntBuffer.wrap(new int[]{
one,0,0,one,
0,one,0,one,
0,0,one,one,
});
上面是定义顶点颜色,着色前需要开启颜色渲染功能,着色后要关闭颜色渲染功能,具体代码如下:
view plaincopy to clipboardprint?
//开启色彩渲染功能
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);
更多精彩
赞助商链接