本节学习目标
- 内置的属性输入变量
- 用户定义的属性变量
- 如何把顶点数据通过应用程序发送到着色器程序
- 特殊输出变量
在讲解内容之前,先看一张图
GLSL 顶点着色器的输入和输入变量
先讲讲这个图!箭头的方向表示输入和输出
- uniform 变量,程序中保持常量
- attribute 变量,除了标准的顶点状态,他们还可以根据顶点进行更新
- varying 变量,用于向片段管线传递数据,这些数据包括颜色,纹理坐标和其它基于片段的数据
内置的属性输入变量
这些变量反应了当前的OpenGL 状态
|变量|类型|指定函数|描述|
|---|
|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,<p>glDrawElementsInstanc