В OpenGL Programming Guide
некоторый код использует «in» в шейдере оценки тесселяции следующим образом:
layout(triangles,equal_spacing,ccw,points) out;
и несколько раз так:
layout (quads,equal_spacing,cw) in;
имя переменных меняется, иногда это out
, иногда in
, я запутался. И я изменил его в своем коде, различий нет, так в чем разница между in
и out
?
[...] меняется имя переменных, иногда это
out
, иногдаin
.
Нет это не так.
Шейдер оценки тесселяции позволяет указать квалификаторы макета ввода для примитивного режима, расстояния между вершинами и порядка.
Шейдер управления тесселяцией позволяет указать квалификатор выходного макета для количества вершин.
См. Спецификация языка шейдеров OpenGL 4.60 (HTML) — 4.4. Квалификаторы макета
Квалификатор макета:
layout(triangles,equal_spacing,ccw,points) out;
неверно и вызывает ошибку времени компиляции.
О, теперь я понял.Даже
layout(triangles,equal_spacing,ccw,points) out;
отлично работает на моем компьютере,я напишу правильные коды.Спасибо!!!