时间:2010-11-18 01:36:50

标签: opengl indices

查看OpenGL中顶点数组的文档,我发现的两个最常用的索引类型是GLubyte(GL_UNSIGNED_BYTE)和GLshort(GL_SHORT)。 我想知道使用这两个指数

之间是否存在任何实际差异

谢谢, Dragonwrenn

3 个答案:

答案 0 :(得分:8)

对于最多有256个顶点的模型,

GL_UNSIGNED_BYTE是可以的 - 实际上并不多。

占用2个字节的

GL_UNSIGNED_SHORT会将你限制在65536个顶点 - 这仍然是少数几个。

我认为最常见的变体是GL_UNSIGNED_INT,因为对于中多边形和高多边形模型,甚至2个字节也可能不够。

答案 1 :(得分:4)

GL_UNSIGNED_BYTE是1个字节,GL_SHORT是2个字节。字节的唯一优点是它们更小,因此它们需要更少的内存来存储,并且传输到图形存储器的时间更少(假设顶点数组或VBO)。

请注意并非所有类型都适用于所有用途:例如,您不能拥有GL_UNSIGNED_BYTE顶点。

答案 2 :(得分:3)

GPU只能处理16或32位索引,因此使用GL_UNSIGNED_BYTE时会产生额外的开销,并且不会节省内存。