Мой вершинный шейдер GLSL не производит примитив треугольника

Вот источник шейдера:

#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_TRIANGLES на GL_POINTS, использую 1 вход и устанавливаю gl_position равным vec4(0,25, 0,25, 0,5, 1,0). Я проверил на других машинах, чтобы убедиться, что это не проблема реализации. Любая помощь?

0 ответов

Другие вопросы по тегам