内存管理:命名结构

时间:2012-03-06 20:38:34

标签: opengl memory-management data-structures terminology

我正在使用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 个答案:

答案 0 :(得分:1)

缓冲区块实际上是这些的最常用名称。

答案 1 :(得分:1)

带有“滑雪板块”的部分类似于interleaved arrays。 将这些数据(顶点,纹理坐标,法线,颜色......)混合在一大块线性存储器(“缓冲区”)中并使用基址,偏移和步幅访问它是很常见的。