Управление памятью: назовите эту структуру - PullRequest
0 голосов
/ 07 марта 2012

Я работаю с OpenGL и использую буферы для хранения данных вершин в видеопамяти. Для удобства / удобства я выделяю большие порции видеопамяти, а затем резервирую порции по мере необходимости. Я использую три структуры данных:

  • Сам буфер.
  • «Кусок» буфера - непрерывный блок памяти в буфере.
  • «Скиппи чанк» внутри обычного куска. OpenGL позволяет вам чередовать ваши атрибуты вершин, а эти «скиппи-чанки» позволяют вам описать, как различные атрибуты сплетаются вместе в чанке / буфере.

Теперь я считаю, что "Буфер" - это хорошее название для этой первой структуры данных, но как называются две другие? Я предполагаю, что есть технический термин, но я его не знаю, и не знаю как его найти ...

А вот пример макета памяти, чтобы поддержать мое схематичное описание (этот буфер имеет три типа атрибутов: цвета, вершины и нормали):

+--+--+--+--+--+--+--+--+--+--+--+
|c1|c2|c3|c4|c5|v1|n1|v2|n2|v3|n3|
+--+--+--+--+--+--+--+--+--+--+--+
|------------Buffer--------------| <- Buffer Class
|----chunk1----|------chunk2-----| <- "Chunk" classes
               |--|  |--|  |--|    <- "Skippy Chunk" class (vertices)
                  |--|  |--|  |--| <- "Skippy Chunk" class (normals)

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 07 марта 2012

Часть с вашими "кусочками скиппи" напоминает чередующиеся массивы .Весьма распространено смешивать такие данные (вершины, координаты текстуры, нормали, цвета, ...) в блоке линейной памяти («буфере») и получать к нему доступ с использованием базовых адресов, смещений и шагов.

1 голос
/ 07 марта 2012

Buffer Chunk на самом деле является наиболее распространенным названием для них.

...