8

我知道这glVertexAttribDivisor可用于修改在实例化渲染期间通用顶点属性的推进速率,但我想知道是否有任何方法可以在不实例化的情况下以特定速率推进属性。

这是我的意思的一个例子:

假设您正在定义组成一系列线的顶点位置列表,并且您希望与每条线关联一个 ID。因此,您创建了两个 vbo,每个 vbo 都包含与这些属性之一相关的数据(所有顶点位置或所有顶点 ID)。传统上,这意味着每个 vbo 必须是行数 X 2 的大小(以元素为单位)(因为每个点包含两条线)。这当然意味着我为一行中的每个点复制相同的 ID 值。

相反,我想做的是指定顶点位置缓冲区每 2 个元素推进 1 个元素的 ID。我知道这需要首先声明我的顶点位置缓冲区(以便我可以引用它来告诉 OpenGL 多久推进一次 ID 缓冲区),但它似乎仍然是可能的。但是,我在 OpenGL 规范中找不到任何允许这种操作的函数。

4

1 回答 1

2

你想要的东西在 OpenGL 中通常是不可能的。它实际上是多索引渲染的一种受限形式,因此您必须使用其中一种技术来获得它。

于 2013-03-18T02:19:49.933 回答