我的GLSL顶点着色器不会生成三角形基元

时间:2015-01-11 21:07:58

标签: c++ opengl glsl opengl-4

以下是着色器源:

#version 430 core
void main(void){
    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 = vertices[gl_VertexID]; 
}

这是调用着色器的函数:

void render(){
    glClearBufferfv(GL_COLOR, 0, red);
    glUseProgram(myprogram);
    glDrawArrays(GL_TRIANGLES, 0, 3);
}

我似乎无法在屏幕上显示三角形。如果我用GL_POINTS替换GL_TRIANGLES,则使用1个输入并将gl_position设置为等于vec4(0.25,0.25,0.5,1.0),将呈现各个点。我已经在其他机器上进行了测试,以确保这不是一个实施问题。有什么帮助吗?

0 个答案:

没有答案