Однако способ, которым gl_InvocationID
отображается на координаты тесселяции, там не определен.
Это не должно быть. При условии, что отображение ваша работа .
Генератор примитивов тесселяции работает на основе абстрактного патча. Вы не предоставляете квад для тесселяции. Система тесселяции абстрактного, единичного четырехугольника и предоставляет позиции вершин в пространстве абстрактного четырехугольника для вашего TES. Ваша задача TES - сгенерировать из этой позиции вершины в абстрактном пространстве фактические данные вершины, используя данные патча, предоставленные командой TCS / рендеринга.
Как вы используете эти данные патча, чтобы сделать это полностью до вас.
Порядок вершин в выходных переменных без исправлений TCS такой же, как порядок вершин во входных переменных без исправлений TES. Таким образом, если вы пишете в индекс 1 в TCS, то значением, которое вы читаете в TES из индекса 1, будет это значение. Таким образом, вы знаете, какие значения в TES получены из каких вызовов в TCS (или отсутствуют TCS, какие вершины из примитива патча).
Это все, что вам нужно знать. Какая вершина в патче соответствует (0, 0) в кваде? Это зависит от вас и от того, как вы пишете свой TES. У вашего TES даже не должно быть единственной вершины, которая ей непосредственно соответствует; все зависит от того, как вы хотите сгенерировать данные вершин для своих тесселяционных данных.