管理OpenGL VBO和颜色

时间:2009-11-21 07:03:45

标签: opengl vbo

我正在创建一个使用VBO绘制的应用程序。该应用程序绘制多种颜色的线段。因此,我正在为每种颜色创建一个顶点和索引数组,并按颜色将这些段排序到适当的数组中。

但是,我希望用户能够设置任何线段的颜色。因此,我潜在的颜色数量几乎是无限的(显然不是真的,但也可能是这样)。我猜测生成2000个VBO以容纳1,000个顶点和索引数组以支持1,000种颜色并不是一件好事。

显然,人们可以在每次绘制新颜色的顶点数组时生成有限数量的VBO并复制新数据,但这看起来非常低效。

处理这种情况的任何建议?

1 个答案:

答案 0 :(得分:1)

好吧,考虑到你没有准确说出vbo中的内容(位置?颜色?)或者你最终如何绘制(固定功能?程序?),这对帮助来说并不是一件容易的事。

无论如何,这里有一些你想要记住的事实:

  • 您不必创建许多vbos。 VBO(就像IBO一样)用于存储,它可以存储任意数量的数据集。这有助于各种Draw函数的“firstIndex / firstVertex”参数以及gl*Pointer的其他偏移
  • 不必为每个顶点指定颜色。如果将它存储在VBO中,请将其取出并使用常量颜色(如何操作取决于您的绘图方法。对于程序,通过统一而不是属性指定颜色)

在那里,我希望你能够开始。