AndroidOpenGL教程-第三课【转】

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

AndroidOpenGL教程-第三课【转】
第三课给多边形上⾊:
作为第⼆课的扩展,我将叫你如何使⽤颜⾊。

你将理解两种着⾊模式,在左图中,三⾓形⽤的是光滑着⾊,四边形⽤的是平⾯着⾊。

这次增加的代码不算多。

增加⼀个color的buffer
在OpenGLRenderer类中定义颜⾊数组:
private float[] mColorArray={
1f,0f,0f,1f, //红
0f,1f,0f,1f, //绿
0f,0f,1f,1f //蓝
};
private FloatBuffer mColorBuffer;
在onDrawFrame函数中加⼊:
gl.glTranslatef(-1.5f, 0.0f, -6.0f);
// gl.glColor4f(1f, 1f, 1f, 1f); 注释掉原来的三⾓形的红⾊
//设置定点数组
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
//设置颜⾊数组 -- 开启颜⾊渲染功能.
gl.glEnableClientState(GL10.GL_COLOR_ARRAY);
//使⽤数组作为颜⾊
gl.glColorPointer(4, GL10.GL_FLOAT, 0, mColorBuffer);
//数组指向⼀个buffer
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, mTriangleBuffer);
//绘制三⾓形
gl.glDrawArrays(GL10.GL_TRIANGLES, 0, 3);
在onSurfaceCreated函数中初始化mColorBuffer:
mColorBuffer = BufferUtil.floatToBuffer(mColorArray);
这样话出⼀个颜⾊渐变的三⾓形
画四边形加上这⼀句,就出来了蓝⾊的四边形
//关闭颜⾊数组 -- 关闭颜⾊渲染功能. (原⽂中没有这句,只有后⾯那句) gl.glDisableClientState(GL10.GL_COLOR_ARRAY);
gl.glColor4f(0.5f, 0.5f, 1f, 1f);
好了,我今天⽆意中看到了⼀个IPHONE的opengles教程,和我的很类似,所以学学openggl是必要的,上层的什么平台不重要,⽤什么语⾔不重要,底层的opengl的代码和API都是⼀样的。

(注:本教程转⾃其他⽹页,并加以修改,查看原⽹页请点击)。

相关文档
最新文档