Использование glBindBufferRange с обратной связью преобразования
У меня есть буфер, который я хотел бы заполнить последовательными обратными связями, и мне интересно, как именно это сделать.
glBindBufferRange
имеет пять аргументов, я понимаю, что первые три эквивалентны аргументам glBindBufferBase
, но у меня есть несколько вопросов о offset
а также size
аргументы.
Если произойдет мой первый отзыв о преобразовании n
примитивы, полученные из GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN
мои примитивы являются точками, и я хочу продолжить с этой позиции в буфере, если смещение glBindBufferRange
быть установленным n*4*sizeof(GLfloat)
? (при условии, что я получаю вывод геометрического шейдера vec4)
Документы просто говорят, что offset
а также size
должно быть в базовых машинных единицах (хотя они имеют два разных типа, GLintptr и GLsizeiptr), но я не совсем уверен, что это значит, поэтому я предположил, байты, это правильно?
1 ответ
Да, объем данных, записанных в буфер во время обратной связи преобразования, представляет собой количество записанных примитивов * количество компонентов этих примитивов * размер примитива. И да, "базовые единицы машины" стандартны для "байта".