glDrawElements

glDrawElements是一個專業術語,用於函式。

基本信息

關於glDrawElements的使用
glDrawElements是一個OPENGL的圖元繪製函式,從數組中獲得數據渲染圖元。
函式原型為:
void glDrawElements( GLenum mode, GLsizei count,
GLenum type, const GLvoid *indices);
其中:
mode指定繪製圖元的類型,它應該是下列值之一,GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON.
count為繪製圖元的數量乘上一個圖元的頂點數。
type為索引值的類型,只能是下列值之一:GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT。
indices:指向索引存貯位置的指針。
glDrawElements函式能夠通過較少的函式調用繪製多個幾何圖元,而不是通過OPENGL函式調用來傳遞每一個頂點,法線,顏色信息。你可以事先準備一系列分離的頂點、法線、顏色數組,並且調用一次glDrawElements把這些數組定義成一個圖元序列。當調用glDrawElements函式的時候,它將通過索引使用count個成序列的元素來創建一系列的幾何圖元。mode指定待創建的圖元類型和數組元素如何如來創建這些圖元。但是如果GL_VERTEX_ARRAY 沒有被激活的話,不能生成任何圖元。被glDrawElements修改的頂點屬性在glDrawElements調用返回後的值具有不確定性,例如,GL_COLOR_ARRAY被激活後,當glDrawElements執行完成時,當前的顏色值是沒有指定的。沒有被修改的屬性值保持不變。
可以在顯示列表中包含glDrawElements,當glDrawElements被包含進顯示列表時,相應的頂點、法線、顏色數組數據也得進入顯示列表的,因為那些數組指針是ClientSideState的變數,在顯示列表創建的時候而不是在顯示列表執行的時候,這些數組指針的值影響顯示列表。glDrawElements只能用在OPENGL1.1或者更高的版本。

相關詞條

相關搜尋

熱門詞條

聯絡我們