0

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

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

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

对处理这种情况有什么建议吗?

4

1 回答 1

1

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

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

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

在那里,我希望这足以让你开始。

于 2009-11-21T08:07:45.550 回答