转 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),这样一个三角形就得以显示出来了。

 

posted @ 2014-06-22 14:40  20118281131  阅读(3480)  评论(0编辑  收藏  举报