zoukankan      html  css  js  c++  java
  • OpenGLES 3.0 着色器语言规范变化

    OpenGLES 3.0 着色器脚本

    #version 300 es
    layout(location = 0) in vec4 vPosition;
    void main()
    {
    gl_Position = vPosition;
    }
    1
    2
    3
    4
    5
    6
    其中,#version 300 es 为 OpenGLES 3.0 版本声明,3.0 中使用 in 和 out 关键字取代 attribute 和 varying ,layout 关键字直接为脚本中的属性指定位置,为属性赋值变成了:

    GLfloat vVertices[] = {
    0.0f, 0.5f, 0.0f,
    -0.5f, -0.5f, 0.0f,
    0.5f, -0.5f, 0.0f,
    0.0f, -1.0f, 0.0f,
    0.5f, -0.5f, 0.0f,
    -0.5f, -0.5f, 0.0f
    };

    //第一个参数为对应属性的 location 值
    glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, 0, vVertices );
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    而原来 2.0 的赋值方式为:

    positionLoc = glGetAttribLocation(program, "vPosition");
    glVertexAttribPointer(positionLoc, 3, GL_FLOAT, GL_FALSE, 0, vVertices );
    1
    2
    绘制三角形
    绘制一个三角形的步骤:(http://www.amjmh.com/v/)

    创建 OpenGLES 环境(可以借助于 GLSurfaceView 创建的上下文对象);
    编译并链接着色器程序;
    指定着色器程序,为着色器程序中的变量赋值;
    绘制。

  • 相关阅读:
    定位
    浮动
    标准文档流
    盒模型
    CSS继承性和层叠性
    微信公众平台-信息的获取
    信息系统项目管理师-整体介绍
    Dijkstra算法 c语言实现
    windows下c语言获取程序当前的执行目录,读文件的代码片
    网络流问题,及其代码
  • 原文地址:https://www.cnblogs.com/hyhy904/p/11460277.html
Copyright © 2011-2022 走看看