转 gl_VertexID的含义
#version 430 //layout(location = 0) in vec4 VERTEX; uniform mat4 MODEL_MATRIX; uniform mat4 VIEW_MATRIX; uniform mat4 PROJECTION_MATRIX; //out vec4 VERTEX_COLOR; void main() { const vec4 vertices[3] = vec4[3]( vec4( 0.25, -0.25, 0.5, 1.0 ), vec4( -0.25, -0.25, 0.5, 1.0 ), vec4( 0.25, 0.25, 0.5, 1.0 ) ); gl_Position = PROJECTION_MATRIX * VIEW_MATRIX * MODEL_MATRIX * vertices[gl_VertexID];; //gl_Position = PROJECTION_MATRIX * VIEW_MATRIX * MODEL_MATRIX * VERTEX; } gl_VertexID是一个在OpenGL中是一个内置的变量,每个顶点运行它时它们的gl_VertexID都不一样。我们利用这样的特点,将此作一个索引,得到不同的gl_Position,用以传入下一阶段——栅格化(Rasterize),这样一个三角形就得以显示出来了。