Каков порядок расположения вершин в виде квадратов? - PullRequest
2 голосов
/ 21 февраля 2020

Каковы последовательные координаты тесселяции четырех вершин четырехугольника? В разделе 11.2 Tessellation документации OpenGL 4.6 четыре вершины четырехугольника рассматриваются по их координатам тесселяции и определяется их отношение к внешним и внутренним уровням тесселяции. Однако способ gl_InvocationID сопоставления с координатами тесселяции там не определен.

1 Ответ

2 голосов
/ 21 февраля 2020

Однако способ, которым gl_InvocationID отображается на координаты тесселяции, там не определен.

Это не должно быть. При условии, что отображение ваша работа .

Генератор примитивов тесселяции работает на основе абстрактного патча. Вы не предоставляете квад для тесселяции. Система тесселяции абстрактного, единичного четырехугольника и предоставляет позиции вершин в пространстве абстрактного четырехугольника для вашего TES. Ваша задача TES - сгенерировать из этой позиции вершины в абстрактном пространстве фактические данные вершины, используя данные патча, предоставленные командой TCS / рендеринга.

Как вы используете эти данные патча, чтобы сделать это полностью до вас.

Порядок вершин в выходных переменных без исправлений TCS такой же, как порядок вершин во входных переменных без исправлений TES. Таким образом, если вы пишете в индекс 1 в TCS, то значением, которое вы читаете в TES из индекса 1, будет это значение. Таким образом, вы знаете, какие значения в TES получены из каких вызовов в TCS (или отсутствуют TCS, какие вершины из примитива патча).

Это все, что вам нужно знать. Какая вершина в патче соответствует (0, 0) в кваде? Это зависит от вас и от того, как вы пишете свой TES. У вашего TES даже не должно быть единственной вершины, которая ей непосредственно соответствует; все зависит от того, как вы хотите сгенерировать данные вершин для своих тесселяционных данных.

...