2010-10-19 124 views

回答

1

我不確定我是否正確理解您嘗試呈現的幾何圖形。如果它是一種將電網這裏是我會怎麼做:用用於給指數

8--9--a--b 
| /| /| /| 
|/ |/ |/ | 
4--5--6--7 
| /| /| /| 
|/ |/ |/ | 
0--1--2--3 

創建和填寫的元件陣列緩存:

與所有的頂點創建和填充頂點緩衝區對象使您的四格:使用

{ 0,1,5,4, 1,2,6,5, 2,3,7,6, 4,5,9,8, 5,6,a,9, 6,7,b,a } 

安裝一切GL *指針,使用帶有GL_QUADS glDrawElements來呈現。頂點緩存將處理已經變換的頂點:第一個四邊形之後的每個四邊形只需要變換2個頂點。

我不認爲你會得到什麼,如果你三帶四帶它,除了在元素數組緩衝區一些內存。

如果你想剝離它,創建相應的元素陣列緩衝區,併爲每一行調用glDrawElements。這可以使用Nvidia唯一的擴展名在一個通話中完成GL_NV_primitive_restart

如果不是網格,您可以嘗試NvTriStrip

+0

謝謝!這是我最終做的,似乎解決了我的問題。 – blueberryfields 2010-10-19 22:05:59

+0

我想補充一點,如果你製作三條線,你不需要爲每一行分別繪製調用。您可以製作退化的三角形,將這些行連接成一個可渲染的條。 – codelark 2010-10-19 22:45:36

+0

現在我試圖只用GL_TRIANGLES來完成它,但它並沒有完全解決。我正在使用一種算法將每個方塊變成兩個三角形{0,4,1,4,5,1},但是由於原因,當我達到16x16或更高的方塊時,它會發生故障。 – blueberryfields 2010-10-20 19:01:29