В настоящее время я использую glDrawElements
для отправки кучи вершин для рендеринга графического процессора. Проблема, которую я сейчас испытываю, заключается в том, что я хотел бы присвоить значение для равномерной (называемой material
) для каждой вершины, поэтому ее можно использовать в вершинном шейдере. Как я могу это сделать?
Ты не можешь. Равномерные значения являются однородными для целого вызова рисования (отсюда и название) - и нельзя изменить символ в цепочке между вершинами одного примитива. Для значений per-vertex вы должны использовать атрибуты. GL гарантирует, что существует не менее 16 общих атрибутов, каждый из которых соответствует vec4
. Если это не enoguh, вы можете использовать некоторый атрибут (или встроенный gl_VertexID
) для индексации в объект буфера текстуры (или стандартную текстуру).
glVertexAttribPointer
, как мне получить доступ к его значению в шейдере?