2011-12-12 85 views
0

我有線在以下形式的2D陣列:OpenGL - 如何以特殊形式快速繪製線陣列?

lines[MAX_LINES][MAX_POINT_INDICES]; 

例如,它可能看起來像:

lines[1] = {2, 3, 0, 0, 0}; //lines from 1 to 2, from 1 to 3, 0=END 
lines[2] = {3, 0, 0, 0, 0}; //lines from 2 to 3, 0=END 
lines[3] = {4, 5, 6, 7, 0}; //lines from 3 to 4, 3->5, 3->6, 3->7, 0 means END 
... 

所以,每一行像三角形扇限定。現在,我想使用OpenGL繪製所有這些線,但我無法找到任何快速的方法,除非按順序遍歷每一行。有什麼建議麼?

+1

依次遍歷數組得到點是一個解決方案。是什麼讓你感覺不夠快? – loxxy

+0

@loxxy我想也許OpenGL支持這種格式。我花了多少時鐘來準備每一行的行用於glDrawElements(GL_LINES,... – psihodelia

+0

我不認爲有一個好的方法來繪製這個東西,而不需要迭代它,如果你想繪製它與少數調用,您可能必須將您的數據結構更改爲可直接作爲GL_ELEMENT_ARRAY_BUFFER提供的內容。 – lvella

回答

0

就像loxxy所說的那樣,迭代你設置的數組是最快的方法。迭代速度並不慢,這就是OpenGL中繪製事物的方式 - 線性化。