1
想象一下,擁有一個4x4的正方形,裏面有16個較小的正方形,並具有關於正方形應該是什麼樣子的相關數據(即不透明度,顏色等)。什麼是將矩陣矩陣轉換爲三角形條的快速算法?
是否有一個現有的,高效的算法,用於將這組正方形轉換爲開放式gl兼容的三角形條?
想象一下,擁有一個4x4的正方形,裏面有16個較小的正方形,並具有關於正方形應該是什麼樣子的相關數據(即不透明度,顏色等)。什麼是將矩陣矩陣轉換爲三角形條的快速算法?
是否有一個現有的,高效的算法,用於將這組正方形轉換爲開放式gl兼容的三角形條?
我不確定我是否正確理解您嘗試呈現的幾何圖形。如果它是一種將電網這裏是我會怎麼做:用用於給指數
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。
謝謝!這是我最終做的,似乎解決了我的問題。 – blueberryfields 2010-10-19 22:05:59
我想補充一點,如果你製作三條線,你不需要爲每一行分別繪製調用。您可以製作退化的三角形,將這些行連接成一個可渲染的條。 – codelark 2010-10-19 22:45:36
現在我試圖只用GL_TRIANGLES來完成它,但它並沒有完全解決。我正在使用一種算法將每個方塊變成兩個三角形{0,4,1,4,5,1},但是由於原因,當我達到16x16或更高的方塊時,它會發生故障。 – blueberryfields 2010-10-20 19:01:29