所以我在python中编写了一些OpenGL代码来绘制平行坐标,即这样的图:
这当前通过将每条线分成n-1(其中n是轴数)较小的线来工作。然后用相同的颜色绘制每条较小的线条。
每个完整的行都会重复此操作,并且每次都会更改颜色。
为了简单起见,我们将每条完整的线条定义为最大线条,将构成这条最大线条的较小线条定义为线段。
我的问题是,是否有更简单的方法来绘制这些最大线?也许一种方法,我不需要将最大线分成线段?
我在我当前的实现中使用VBO,并且绘制400万个最大线(即,有6个轴的2000万个线段)的时间是大约。 108秒= 1分48秒。
答案 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
收集待绘制的线条,如果您不需要绘制所有线条