2008-11-06 42 views
1

我有一個數組,其中包含我使用頂點緩衝區對象複製到GPU的頂點列表。然而,頂點座標本身是沒有意義的,因爲我也有一個整數數組,其中包含一系列索引到頂點數組中。在OpenGL ES 1.x中使用頂點緩衝對象時,我可以使用索引基元嗎?

在這種情況下是有可能創建另一個緩衝區對象來存儲的索引,然後在渲染功能綁定兩個頂點數組和索引數組,附圖中:

//vertex coordinates 
glBindBuffer(GL_ARRAY_BUFFER, bufferId1);   
//index coordinates 
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, bufferId2); 

glVertexPointer(3, GL_FLOAT, 0, 0); 
//Not sure if this should be Unsigned BYTE or Unsigned SHORT 
glDrawElements(GL_POINTS, 6, GL_UNSIGNED_BYTE, 0); 

我已經閱讀了API和在困惑我之後:
「雖然非零緩衝區對象綁定到GL_ELEMENT_ARRAY_BUFFER目標,但傳統上將glDrawElements的indices參數解釋爲指向客戶端內存的指針,而是將其解釋爲緩衝區對象內的偏移量基本機器單位「。

我對圖形編程非常新穎,所以如果任何這些都沒有意義,請道歉。

回答

2

是的,這是可能的。 The official tutorial應該幫助你。他們建議不要使用無符號字節,堅持16或32位索引以提高速度。

+0

我不確定32位索引在ES中是否可行。 – WindRider 2013-07-27 18:05:59

相關問題