代码之家  ›  专栏  ›  技术社区  ›  muksie

带附加数据的opengl索引缓冲区对象

  •  1
  • muksie  · 技术社区  · 16 年前

    我有一大组线,我用glmultidrawarrays(gl_line_strip,…)从顶点缓冲区对象渲染它们;

    这非常有效。现在我有很多顶点对,我也必须可视化。每对由两条不同直线上的两个顶点组成,顶点之间的距离很小。但是,我喜欢在所有顶点对之间画一条距离小于某个值的线。

    我喜欢的是具有以下结构的缓冲区对象:

    i1, j1, r1,
    i2, j2, r2,
    i3, j3, r3,
    ...
    

    其中i和j是指向顶点的索引,r是这些顶点之间的距离。因此,每个顶点对都存储为(i,j,r)元组。然后我喜欢有一个(顶点)明暗器,它只绘制顶点对与r<一些_值作为一条线。

    所以我的问题是,实现这一目标的最佳途径是什么?

    1 回复  |  直到 16 年前
        1
  •  0
  •   falstro    16 年前

    我想经典的做法是将额外的数据存储在纹理中,并在着色器中进行查找。但是如果它真的是固定的,你可以将距离本身存储为指定给顶点的纹理坐标,并直接使用它。我认为无论如何求解,都必须将其与每个顶点一起存储(着色器通常不喜欢使用对)。

    这是假设你没有重用多行顶点。

    编辑:
    好吧,既然你在重复使用顶点,我想你需要聪明点。如果它是最多两条(或固定数量)线(如线条条)的一部分,则可以进行两次调用,第一次调用使用第一个纹理坐标,依此类推。我看看能不能想出别的办法。

    推荐文章