OpenGL:很多小的VBO没关系好吗?

pet*_*ete 1 opengl colors vbo vertex-buffer

我有很多对象,但我想要其中一个对象(鼠标悬停在其上)以"发光"(快速改变颜色).

因此,一种方法是让每个对象都有自己的VBO.我不会有彩色阵列.然后我会喜欢,一千个VBO,每个都有大约20个四边形...如果它是选定的对象,我会在它之前调用glColor3f(blah,blah,blah),否则它将是默认颜色.

另一种方法是将它们全部放在一个大的VBO中.我将有一个彩色阵列.然后我会非常频繁地将glBufferSubDataARB做成颜色数组,以使一个对象发光.

哪种方式更好,为什么?如果两种方式都不好,还建议另一种方式.

Ben*_*igt 6

你知道一些事情?忘了颜色数组.颜色数组是没有意义的,因为每个顶点没有不同的颜色,但对于整个对象组.

将所有顶点数据放入单个VBO中,不包含任何颜色数据.

然后,通过颜色(或对象组)循环,对每一个你会打电话glColor3fglDrawArrays,其中firstcount参数相匹配,属于该颜色的对象顶点的数量.

当你有一天从固定功能管道移动到着色器时,你只需要替换glColor3fglUniform3f.