2011-09-04 159 views
0

我設置一個頂點緩存對象(VBO)與頂點和索引數據只是glDrawElements之前所需的命令。我也創建了一個GL程序來使用自定義着色器,所以我在我的代碼中調用glUseProgram的OpenGL ES 2.0:與VBO

我的頂點數據每幀都有變化,所以我提供了GL_STREAM_DRAW給我的兩個glBufferData調用(一個用於頂點數據,一個用於索引)。

我用glBufferSubData當他們改變修改我的頂點數據的區域。在每一幀我想從第一個頂點到第N個,N是一個變化的值。

我的問題是:每次,我稱之爲glDrawElements該命令必須我稱之爲理想情況下,我想簡單地在每個框架中調用glDrawElements,這是出於性能原因。

我研讀了這本書「的OpenGL ES 2.0編程指南」,但無處它告訴我哪些命令我必須用我每次畫的時候,而我只需要調用一次。

回答

1

glDrawElements提交幾何。如果您正在使用維也納組織則使用在當前綁定GL_ELEMENT_ARRAY_BUFFER在開往每個屬性GL_ARRAY_BUFFER或緩衝區的相關部分索引項條目。

如果不更改任何其他綁定則是沒有必要重複比glDrawElements以外的任何電話。如果您目前撥打glDrawElements的位置複製並粘貼該行出現兩次,則所有幾何圖形都將被繪製兩倍的次數。