对于每个属性,使用跨度顶点缓冲区与整齐的压缩缓冲区的优缺点是什么?我的意思是举个例子:
Stride:xyzrgb xyzrgb xyzrgb
紧凑:xyzxyzxyz rgbrgbrgb
乍一看,使用stride时可以轻松更改大小,但使用glBufferData()
重新分配顶点缓冲区时,顶点缓冲区的内容会被删除。
对我来说,使用紧凑模型似乎是最好的,因为位置、颜色和文本坐标可能来自本地内存中的不同数组,并且因为没有步长缓冲区数据函数;在上传之前必须将所有数组复制到交错缓冲区中,或者为每个顶点使用一个glBufferSubData()
(我猜这是个糟糕的想法)。
使用交错缓冲区(stride)似乎是一种常见的做法。为什么会这样呢?我有什么遗漏的吗?
https://stackoverflow.com/questions/17660360
复制相似问题