Вопрос

Я пытаюсь получить простой проход через геометрию шейдер для работы под Mac OS X 10.6. Код компилизируется и ссылается без проблем, но по какой -то причине геометрия не тянется на экран. Вот мой код шейдера:

#version 120
#extension GL_EXT_geometry_shader4: enable

void main()
{
    gl_Position = gl_PositionIn[0];
    EmitVertex();

    EndPrimitive();
}

Если бы кто -нибудь мог бы помочь, я бы это оценил.

Это было полезно?

Решение

Так что, как оказалось, проблема вообще не была в коде шейдера. По -видимому, при использовании версии 120 в геометрическом шейдере вы должны установить типы ввода и вывода следующим образом:

glProgramParameteriEXT(shaderProgramID, GL_GEOMETRY_OUTPUT_TYPE_EXT, GL_POINTS);
glProgramParameteriEXT(shaderProgramID, GL_GEOMETRY_VERTICES_OUT_EXT, GL_POINTS);

После этого все сработало отлично.

Другие советы

Геометрический шейдер работает на целых примитивах. Ваш выглядит так, как будто он подходит только для очков. Если вы не проходите в точках, вам нужно обрабатывать все gl_VerticesIn (счет) вершины.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top