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
  • 相关阅读:
    div 居中
    [转贴]Linux新增用户和组
    wmsys.WM_CONCAT
    [转]深刻理解Oracle数据库的启动和关闭
    [转]JAVA 程序中使用ORACLE 绑定变量( bind variable )
    考研的一些入门知识
    [转帖]什么是CPU的核心
    js空格处理函数
    [转]Vi 基础命令
    EMPTY_CLOB()/EMPTY_BLOB()使用
  • 原文地址:https://www.cnblogs.com/wustlj/p/3138284.html
Copyright © 2011-2022 走看看