Использование glBindBufferRange с обратной связью преобразования

У меня есть буфер, который я хотел бы заполнить последовательными обратными связями, и мне интересно, как именно это сделать.

glBindBufferRange имеет пять аргументов, я понимаю, что первые три эквивалентны аргументам glBindBufferBase, но у меня есть несколько вопросов о offset а также size аргументы.

Если произойдет мой первый отзыв о преобразовании n примитивы, полученные из GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTENмои примитивы являются точками, и я хочу продолжить с этой позиции в буфере, если смещение glBindBufferRange быть установленным n*4*sizeof(GLfloat)? (при условии, что я получаю вывод геометрического шейдера vec4)

Документы просто говорят, что offset а также size должно быть в базовых машинных единицах (хотя они имеют два разных типа, GLintptr и GLsizeiptr), но я не совсем уверен, что это значит, поэтому я предположил, байты, это правильно?

1 ответ

Решение

Да, объем данных, записанных в буфер во время обратной связи преобразования, представляет собой количество записанных примитивов * количество компонентов этих примитивов * размер примитива. И да, "базовые единицы машины" стандартны для "байта".

Другие вопросы по тегам