Android 中的 OpenGL 简单入门 (下)
上篇博客中已经介绍了如何使用openGL为android提供的api绘制出简单的三角形和四边形,,,,上篇博客地址http://blog.csdn.net/a15874647/article/details/6713503
接下来介绍对图形进行色彩渲染,以及旋转,3D效果,纹理映射,贴图
2,颜色
为图形着色有两种不同的方式,,分别是光滑着色和平面着色。。
Smooth coloring(平滑着色),先为三角形的每个顶点设置一个颜色,这个颜色和之前所说的清屏颜色一样,为我们的三角形定义颜色数组:
int one = 0x10000;
//三角形的顶点颜色值(red,green,blue,alpha)
private IntBuffer colorBuffer = IntBuffer.wrap(new int[]{
one,0,0,one,
0,one,0,one,
0,0,one,one});
//同样需要使开启色彩渲染开关
gl.glEnableClientState(GL10.GL_COLOR_ARRAY);
android中提供了glColorPointer方法来设置颜色,它的参数类型和glVertexPointer类似:
gl.glColorPointer( 4, GL10.GL_FIXED,0,colorBuffer);
最后绘制方法和之前一样,注意使用完颜色后记得关闭,在openGL中使用glEnableClientState后都需要调用glDisableClientState来关闭相对应的功能
gl.glDisableClientState(GL10.GL_COLOR_ARRAY);
接下来是单调着色,单调着色实际上就是设置当前所使用的颜色,设置之后绘制的所有内容都是使用当前颜色,即使是在完全采用纹理贴图的时候,仍然可以用来调节纹理的色调(纹理贴图内容后面会说到)。。因为我们没有告诉openGL要改变顶点的颜色,,我们就可以直接
gl.glColor4f(0.5f,0.5f,1.0f,1.0f); 为四边形设置颜色, 这里的颜色取值范围是0-1,,建议多改变下颜色参数,,观察下效果就会慢慢适应了。。。
3,旋转
要实现旋转很简单,我们绘制的图形旋转都是围绕着X,Y,Z三个轴来旋转,,