属性除数没有实例化?

时间:2013-03-18 00:12:11

标签: c++ opengl opengl-3

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

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

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

我想要做的是指定ID为顶点位置缓冲区前进的每2个元素前进1个元素。我知道这要求我的顶点位置缓冲区首先被声明(所以我可以引用它来告诉OpenGL多长时间推进ID缓冲区),但它似乎仍然可能。但是,我在OpenGL规范中找不到允许这种操作的任何功能。

1 个答案:

答案 0 :(得分:2)

在OpenGL中通常不可能提供您想要的内容。它实际上是multi-indexed rendering的一种限制形式,所以你必须使用其中一种技术来获得它。