Android OpenGL 教程 第三课

来源:互联网 发布:苹果cms通用接口 编辑:程序博客网 时间:2024/05/16 16:03

第三课 给多边形上色:

作为第二课的扩展,我将叫你如何使用颜色。你将理解两种着色模式,在左图中,三角形用的是光滑着色,四边形用的是平面着色。

 

这次增加的代码不算多。

增加一个color的buffer

[java] view plaincopy
  1. private float[] mColorArray={  
  2.            1f,0f,0f,1f,     //红  
  3.            0f,1f,0f,1f,     //绿  
  4.            0f,0f,1f,1f      //蓝  
  5.     };  
  6. private FloatBuffer mColorBuffer;  
  7.    
  8. gl.glTranslatef(-1.5f, 0.0f, -6.0f);  
  9. //     gl.glColor4f(1f, 1f, 1f, 1f); 注释掉原来的三角形的红色  
  10. gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);  
  11. gl.glEnableClientState(GL10.GL_COLOR_ARRAY);  
  12. //使用数组作为颜色  
  13. gl.glColorPointer(4, GL10.GL_FLOAT, 0, mColorBuffer);  
  14. //数组指向一个buffer    
  15. gl.glVertexPointer(3, GL10.GL_FLOAT, 0, mTriangleBuffer);  
  16. gl.glDrawArrays(GL10.GL_TRIANGLES, 03);  
 

 

这样话出一个颜色渐变的三角形

 

画四边形加上这一句,就出来了蓝色的四边形

gl.glColor4f(0.5f, 0.5f, 1f, 1f);

 

好了,我今天无意中看到了一个IPHONE的opengles教程,和我的很类似,所以学学openggl是必要的,上层的什么平台不重要,用什么语言不重要,底层的opengl的代码和API都是一样的。

0 0