Использовать ‘in’ или ‘out’ в макете при создании оценочных шейдеров тесселяции?

#opengl #glsl #shader

#opengl #glsl #шейдер

Вопрос:

В OpenGL Programming Guide некотором коде используется ‘in’ в шейдере оценки тесселяции, подобном этому:

 layout(triangles,equal_spacing,ccw,points) out;
 

и в некоторые моменты, подобные этому:

 layout (quads,equal_spacing,cw) in;
 

имена переменных меняются, иногда это так out , иногда in я в замешательстве.И я изменил это в своем коде, различий нет, так в чем же разница между in и out ?

Ответ №1:

[…] имена переменных меняются, иногда это происходит out , иногда in .

Нет, это не так.

Шейдер оценки тесселяции позволяет указать квалификаторы макета ввода для режима примитива, расстояния между вершинами и порядка.
Шейдер управления тесселяцией позволяет вам указать квалификатор выходного макета для количества вершин.

См. Спецификацию OpenGL Shading Language 4.60 (HTML) — 4.4. Квалификаторы макета

Квалификатор макета:

 layout(triangles,equal_spacing,ccw,points) out;
 

неверно и вызывает ошибку времени компиляции.

Комментарии:

1. О, теперь я понимаю. Даже layout(triangles,equal_spacing,ccw,points) out; на моем компьютере все работает нормально, я напишу правильные коды. Спасибо!!!