Задать вопрос
@alex_ak1

Почему не работает геометрический шейдер?

Пытаюсь написать простой геометрический шейдер.
Вертексный шейдер:
in vec4 vert;
void main(void) {
	gl_Position = gl_ModelViewProjectionMatrix  * (vert + vec4(-1,0,0,0));
}

И геометрический:
out vec4 vert;
void main(void) { int i;
for( i = 0; i < gl_in.length(); i++ )
	{
		vert = gl_in[i].gl_Position;
		EmitVertex();
	}
EndPrimitive();
}


Если в программу добавляю только вершинный, то все нормально, пара линий рисуется.
Если добавляю геометрический - ничего не происходит, то есть экран пустой.
Что я забыл сделать, чтобы этот шейдер успешно пропустил через себя все примитивы.
После аттача геометрического шейдера вызываю установку параметров:
glProgramParameteriEXT( shader_prog, GL_GEOMETRY_INPUT_TYPE_EXT, GL_LINES);
	glProgramParameteriEXT(	shader_prog, GL_GEOMETRY_OUTPUT_TYPE_EXT, GL_LINES);
	glProgramParameteriEXT(	shader_prog, GL_GEOMETRY_VERTICES_OUT_EXT, 2);
  • Вопрос задан
  • 170 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы