1.每个Vertex Shader都有用户定义的输入属性,例如:位置,法线向量和纹理坐标等。Vertex Shaders也接收一致变量(uniform variables).
- uniform variables:一个只读的全局变量是为所有的顶点绘制调用
2.除了用户定义的输入变量,GLSL为每个Vertex定义了一组输入属性(内置变量),
in int gl_VertexID;
in int gl_InstanceID;
- gl_VertexID:当前被处理的顶点的索引。它是当前顶点在数组中的索引。对应OpenGL命令是glDraw*系列
- gl_InstanceID:指出了当前被渲染的instance。一般这个值是零,假如没有使用instance。
3.除了用户定义的输出变量,GLSL同时也定义了一组输出属性(内置变量),
out gl_PerVertex {
vec4 gl_Position;
float gl_PointSize;
float gl_ClipDistance[];
};