Мой вершинный шейдер 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). Я проверил на других машинах, чтобы убедиться, что это не проблема реализации. Любая помощь?

1

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]