美文网首页
3 绘制三角形

3 绘制三角形

作者: super小立立 | 来源:发表于2017-12-12 09:12 被阅读0次

GLES20彩色三角形

新建顶点着色器,片段着色器

  • 在 main/res/raw 目录下创建两个glsl 文件

    • fragment_triangle.glsl

      #version 100
      precision mediump float;
      varying vec4 vColor;
      void main(){
        gl_Fragment = vColor;
      }
      
    • vert_triangle.glsl

      #version 100 
      attribute vec4 vPosition;
      attribute vec4 aColor;
      
      varying vec4 vColor;
      void main(){
        gl_Position = vPostion;
        vColor = aColor
      }
      

创建MyRenderer 绘制图像

  1. 声明片面着色器代码,顶点着色器, 以及坐标点属性(坐标点, 和每个坐标对应的颜色值 float类型)

    颜色值Color 的类型为 RGBA格式, 其中 最大值为1, 最小值为0.

    坐标点为 xyz 轴,顺序数即可,

    
    private float[] triangleArray = new float[]{
            0.5f,-0.5f,0,
            0.5f,0.5f,0,
            -0.5f,-0.5f,0
    };
    
    float color[] = {
            0.0f, 1.0f, 0.0f, 1.0f,
            1.0f, 0.0f, 0.0f, 1.0f,
            0.0f, 0.0f, 1.0f, 1.0f
    };
    

  2. 使用定义的函数将 shader 和 program 链接

    2-提取 Program 对象的工具类.md

    ShaderUtils.createProgram(this.getResources() , vertexCodePath , fragmentCodePath)
    

  3. 在MyRenderer 的onDrawFrame(GL10 gl)里面开始绘制图像

     @Override
        public void onDrawFrame(GL10 gl) {
            GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT);
            //将 mProgram 里面的程序加载入 GLES20 的环境.
            GLES20.glUseProgram(mProgram);
    
            //开始对着色器里面的变量进行赋值.
            int positionHandler = GLES20.glGetAttribLocation(mProgram , "vPosition");
            GLES20.glEnableVertexAttribArray(positionHandler);
            GLES20.glVertexAttribPointer(positionHandler,3,GLES20.GL_FLOAT ,false,12,triangleBuffer);
    
    //加载彩色句柄, 设置3个点的颜色值.
            int colorHandler = GLES20.glGetAttribLocation(mProgram , "aColor");
            GLES20.glEnableVertexAttribArray(colorHandler);
            GLES20.glVertexAttribPointer(colorHandler,4,GLES20.GL_FLOAT ,false,0,colorBuffer);
    
            GLES20.glDrawArrays(GLES20.GL_TRIANGLES , 0,3);
            GLES20.glDisableVertexAttribArray(positionHandler);
        }
    }
    

相关文章

  • canvas画矩形圆形直线三角形

    开发笔记之-canvas画矩形圆形直线三角形 1.页面如下: 2.绘制长方形 3.绘制圆 4.绘制三角形 5.绘制...

  • 绘制三角形,矩形,圆形

    绘制三角形 绘制矩形 绘制圆形

  • iOS 绘制图形

    绘制几种常见图形的类方法。 1.绘制圆形 2.绘制同心圆 3.绘制矩形 4.绘制圆角矩形 5.绘制三角形

  • 三、OpenGL 3D绘制

    1、三角形变金字塔 有了上面OpenGL绘制2D三角形的经验,大家可以想下,要绘制3D的图形,需要怎么做呢? 也许...

  • OpenGL ES for Android 绘制矩形和正方形

    前面的文章介绍了如何 绘制三角形,在OpenGL ES中没有直接绘制矩形的方式,通过绘制2个三角形的方式绘制矩形。...

  • Objective-C ios图形各种线条绘制

    IOS 图形绘制 绘制直线 矩形绘制 三角形绘制 任意弧形绘制 圆形绘制 绘制的属性 虚线的绘制 UIView d...

  • canvas画三角形

    绘制一个三角形例如,绘制三角形的代码如下: 输出看上去如下:

  • 43. 线段绘制

    本文解释线段绘制,并通过线段绘制出三角形 线段与线段构成的三角形如下:

  • OpenGL ES 3.0(四)图元、VBO、VAO

    图元 OpenGL ES 3.0 可供绘制的图元类型有:1) Triangles,三角形2) Lines,线3) ...

  • canvas绘制仪表盘

    效果图 html添加canvas js获取canvas 定义方法绘制圆环 绘制刻度线 绘制文字 绘制圆 绘制三角形...

网友评论

      本文标题:3 绘制三角形

      本文链接:https://www.haomeiwen.com/subject/umzwixtx.html