我正在尝试使用OpenGL可视化图形。我有顶点缓冲区,在3D空间中有点,还有一个索引缓冲区,用于指定顶点之间的线。我使用glDrawElements绘制图形。一切正常。问题是我需要可视化边缘权重。我的问题是边权重是成对属性,我不知道如何将这些信息放入我的着色器。只有我能想到的解决方案是使用DrawRangeElements单独绘制每条边,并在每次调用之间设置边缘权重。有没有更好的方法呢?
答案 0 :(得分:1)
无需使用几何着色器。只需将它们渲染为GL_LINES
,根据需要复制位置,并为一行上的每对顶点提供相同的“权重”属性。这最终与渲染立方体没有什么不同,每个面都需要自己的法线。
如果(并且仅当)你绝对必须拥有那个记忆,并且你不能简单地压缩你的顶点数据(使用标准化短裤,非标准化短裤或其他),这里是some techniques you can use。请注意:这是一种内存与性能的权衡。因此,除非您有真正的内存压力,否则只需复制顶点数据并将其结束。