【发布时间】:2012-03-24 09:22:00
【问题描述】:
我正在使用 OpenGL,并使用缓冲区将顶点数据存储在视频内存中。为了效率/方便,我分配了大块视频内存,然后根据需要保留块。我正在使用三种数据结构:
- 缓冲区本身。
- 缓冲区的“块” - 缓冲区内的连续内存块。
- 常规块中的“跳过块”。 OpenGL 允许您交错顶点属性,而这些“skippy chunks”可以让您描述不同的属性是如何在一个块/缓冲区中编织在一起的。
现在我认为“缓冲区”是第一个数据结构的好名字,但是另外两个叫什么?我假设有一个技术术语,但我不知道,又不知道怎么找……
这是一个内存布局示例,用于支持我的粗略描述(此缓冲区具有三种类型的属性:颜色、顶点和法线):
+--+--+--+--+--+--+--+--+--+--+--+
|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)
提前致谢!
【问题讨论】:
-
OpenGL 文档如何称呼它?
-
@cdeszaq:这些是用户定义的结构,OpenGL 本身并不知道缓冲区对象的内部结构。
标签: opengl memory-management data-structures terminology