如何有效地绘制锯齿线PyOpenGL?

时间:2013-12-05 15:20:37

标签: python macos opengl vbo pyopengl

所以我有一些代码来绘制一系列平行轴并使用这些轴绘制一些数据,输出看起来像这样:

Simple Parellel Co-Ordinates Plot

现在,我已经通过多种不同的方式实现了这一点,以尝试获得最具扩展性和效率的方法。

所有这些方法都可以将一条线绘制成一系列线段,其中一条线是两条轴之间的线,因为据我所知,OpenGL只允许绘制直线而不是“锯齿状”线。

  1. 通过将每个线段的顶点存储在Python列表中,并使用glDraw命令从此处指定“line”作为基元。

  2. 通过在VBO中存储每个线段的顶点,使得如果我选择重新绘制场景,则数据传输仅发生一次到GPU。使用glDrawArrays命令。

  3. 通过存储可能的轴刻度位置列表(该行的可能顶点) 在VBO中然后指定一个索引VBO以定义来自tick的哪个滴答 位置VBO线段使用。使用glDrawElements命令。

  4. 现在,第三种方法(索引VBO)将不允许不同行的不同颜色,因为共享顶点的行也将共享颜色。

    我需要建立最好的方法,因为我需要实际绘制5,000,000多行,并且当使用方法1或2超过10,000行时我的计算机挂起。

    如果需要,我可以为此发布一些代码,但是我正在寻找关于最佳方法的解释。

    我在Mac OSX 10.9(Mavericks)上使用PyOpenGL,它不太遗憾地支持Primitive Restart。

0 个答案:

没有答案