Доступ к примитиву id / index, в котором вершина принадлежит glsl: vertex-shader - PullRequest
0 голосов
/ 13 сентября 2018

Я рисую множество полигонов, используя команду glMultiDrawArray. Я хочу покрасить каждый многоугольник другим цветом. Если я смогу получить доступ к примитивному индексу (или многоугольнику), к которому относится вершина внутри вершинного шейдера, я могу посмотреть цвет в массиве и установить цвет.

Итак, мой вопрос: возможно ли получить доступ к примитивному индексу в (вершинном) шейдере?

Какие есть другие варианты окраски каждого многоугольника другим цветом?

1 Ответ

0 голосов
/ 13 сентября 2018

Вершинные шейдеры работают с вершинами , а не с примитивами (отсюда и название;)). Как таковые, они не имеют доступа к каким-либо отдельным данным. Теперь, если каждая вершина связана только с одним примитивом, то операции с вершинами фактически являются пермитивными. Но это обычно требует репликации большого количества информации для каждой вершины, так как большинство сеток будет совместно использовать вершины для нескольких примитивов.

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

...