zoukankan      html  css  js  c++  java
  • Android OpenGL教程-第三课【转】

    第三课 给多边形上色:

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

    这次增加的代码不算多。

    增加一个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都是一样的。

    (注:本教程转自其他网页,并加以修改,查看原网页请点击这里

  • 相关阅读:
    一个强大的json解析工具类
    android存储路径问题
    android界面的滑动切换功能
    mysql数据库
    【hadoop+spark】搭建spark过程
    【设计模式】行为型01策略模式(strategy patten)
    【java爬虫】网络爬虫思路
    maven_nexus私服搭建
    【需要重新维护】Redis笔记20170811视频
    【工具】java 文本文档txt写出记录工具
  • 原文地址:https://www.cnblogs.com/wuqianling/p/6602097.html
Copyright © 2011-2022 走看看