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或者更高的版本。
相關詞條
-
glDrawElements
glDrawElements是一個專業術語,用於函式。
-
glVertexPointer
client-side 當glDrawArrays或者glDrawElements...glDrawArrays、glDrawElements兩個函式使用的。 使用...glDrawElements可以根據序列化的頂點集合來創建相同的序列...
-
glVertexAttribPointer
,那么當glDrawArrays或者glDrawElements被調用時...glDrawElements被調用時,每個頂點屬性數組初始狀態是禁用的,不會被訪問...
簡介 描述 注意 錯誤 實例 -
glColorPointer
、 glDrawElements 或 glDrawArrays 使用,因此...
簡介 語法 參數 備註