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_Vertexvec4glVertex顶点的全局空间坐标
gl_Colorvec4glColor主颜色值
gl_SecondaryColorvec4glSecondaryColor辅助颜色值
gl_Normal  vec4glNormal光照法线
gl_MultiTexCoordnvec4glMultiTexCoord(n,...)纹理单位n的纹理坐标,n的取值范围是0~7
gl_FogCoordfloatglFogCoord  雾坐标
gl_VertexIDint-自上次渲染调用开始,当前顶点的索引
gl_InstanceIDint

glDrawArraysInstanced

glDrawElementsInstanced

相关图元的实例ID

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/wustlj/archive/2013/06/16/3138284.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值