Откройте объекты буфера хранилища шейдеров GL для замены атрибутов вершин.

У меня в основном тот же вопрос, что и у парня, который задал здесь: blend-shapes-morph"> Массивы динамического размера в вершинном шейдере OpenGL ES; используется для смешивания форм/целей морфинга . Особенно меня беспокоит его последний оставшийся без ответа вопрос.

Так что я также хочу использовать произвольное количество blendshapes для каждого меша, который я обрабатываю. На данный момент я использую фиксированное число и рассматриваю фигуры как атрибут вершины. Преимущество здесь в том, что у меня всегда есть соответствующие данные для текущей вершины. Теперь, если я хочу использовать произвольное количество фигур, я решил использовать SSBO, поскольку их подсказка — это именно то, что мне нужно: данные с динамическим размером. Однако SSBO, насколько я понимаю, являются статическими, и для каждой обрабатываемой вершины в шейдере у меня есть доступные данные blendshape для всей сетки. Это означает, что мне придется ввести какой-то счетчик и попытаться выбрать правильную часть данных из моего SSBO для каждой вершины.

Верно ли это понимание? Я действительно не уверен, является ли это оптимальным решением, может быть, вы можете дать мне несколько советов.


person try_some_ubik    schedule 13.06.2016    source источник


Ответы (1)


Да, ваше понимание верно.

Вы можете использовать gl_VertexID или просто передать некоторый «номер вершины» в качестве атрибута, чтобы узнать, какие данные загружать в ваш SSBO для конкретной обрабатываемой вершины.

person 246tNt    schedule 13.06.2016