zoukankan      html  css  js  c++  java
  • shader之attribute

    用户定义的属性变量都是全局变量,与OpenGL应用程序传递给在OpenGL实现内部执行的顶点着色器的值相关联

    1.获取位置索引

    GLint glGetAttribLocation (GLuint program, const GLchar* name)

    2.显式设置属性

    void glBindAttribLocation (GLuint program, GLuint index, const GLchar* name)

    必须在着色器程序被链接之前执行

    3.设置属性

    void glVertexAttrib{1234}f (GLuint indx, TYPE value)

    void glVertexAttrib{1234}fv (GLuint indx, const GLfloat* values)

    顶点着色器还可以利用定点数组:顶点属性变量的值可以存储在顶点数组中,并通过glDrawArrays(),glArrayElement()等函数进行更新

    void glVertexAttribPointer (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr)

    与其他类型的顶点数组一样,指定数组只是整个操作的一部分。每个客户端的数组都需要启用。

    void glEnableVertexAttribArray (GLuint index)

    void glDisableVertexAttribArray (GLuint index)

    4.内置的属性输入变量

    变量 类型 指定函数 描述
    gl_Vertex vec4 glVertex 顶点的全局空间坐标
    gl_Color vec4 glColor 主颜色值
    gl_SecondaryColor vec4 glSecondaryColor 辅助颜色值
    gl_Normal   vec4 glNormal 光照法线
    gl_MultiTexCoordn vec4 glMultiTexCoord(n,...) 纹理单位n的纹理坐标,n的取值范围是0~7
    gl_FogCoord float glFogCoord   雾坐标
    gl_VertexID int - 自上次渲染调用开始,当前顶点的索引
    gl_InstanceID int

    glDrawArraysInstanced

    glDrawElementsInstanced

    相关图元的实例ID
  • 相关阅读:
    学习博客 启动日记
    hystrix dashboard Unable to connect to Command Metric Stream解决办法
    iview-cli 项目、iView admin 跨域问题解决方案
    java面试题
    -bash: sdk: command not found
    Python之路径处理
    Python之简单文件操作
    Python之常用数据类型详解
    Python常用内置函数
    2015年开发业界十大技术视频排行榜
  • 原文地址:https://www.cnblogs.com/wustlj/p/3138284.html
Copyright © 2011-2022 走看看