pet*_*ete 1 opengl colors vbo vertex-buffer
我有很多对象,但我想要其中一个对象(鼠标悬停在其上)以"发光"(快速改变颜色).
因此,一种方法是让每个对象都有自己的VBO.我不会有彩色阵列.然后我会喜欢,一千个VBO,每个都有大约20个四边形...如果它是选定的对象,我会在它之前调用glColor3f(blah,blah,blah),否则它将是默认颜色.
另一种方法是将它们全部放在一个大的VBO中.我将有一个彩色阵列.然后我会非常频繁地将glBufferSubDataARB做成颜色数组,以使一个对象发光.
哪种方式更好,为什么?如果两种方式都不好,还建议另一种方式.
你知道一些事情?忘了颜色数组.颜色数组是没有意义的,因为每个顶点没有不同的颜色,但对于整个对象组.
将所有顶点数据放入单个VBO中,不包含任何颜色数据.
然后,通过颜色(或对象组)循环,对每一个你会打电话glColor3f和glDrawArrays,其中first和count参数相匹配,属于该颜色的对象顶点的数量.
当你有一天从固定功能管道移动到着色器时,你只需要替换glColor3f为glUniform3f.
| 归档时间: |
|
| 查看次数: |
1267 次 |
| 最近记录: |