OpenGL - 在平行坐标图中绘制线条的更好方法吗?

时间:2013-12-12 13:37:01

标签: python performance opengl lines

所以我在python中编写了一些OpenGL代码来绘制平行坐标,即这样的图:

Parallel Co-Ordinates OpenGL

这当前通过将每条线分成n-1(其中n是轴数)较小的线来工作。然后用相同的颜色绘制每条较小的线条。

每个完整的行都会重复此操作,并且每次都会更改颜色。

为了简单起见,我们将每条完整的线条定义为最大线条,将构成这条最大线条的较小线条定义为线段。

我的问题是,是否有更简单的方法来绘制这些最大线?也许一种方法,我不需要将最大线分成线段?

我在我当前的实现中使用VBO,并且绘制400万个最大线(即,有6个轴的2000万个线段)的时间是大约。 108秒= 1分48秒。

1 个答案:

答案 0 :(得分:1)

您可以使用模式glDrawArrays拨打GL_LINE_STRIP,而无需将最大线分开

如果你有一个包含所有最大行的vbo填充(每个n点是一行),那么你可以循环它(使用C ++代码)

for(int index = 0; index < lineCount*n; index +=n)
{
    glDrawArrays(GL_LINE_STRIP, i, n);
}

或使用glMultiDrawArrays收集待绘制的线条,如果您不需要绘制所有线条