WebGLRenderingContext: drawElements() 方法

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

注意:此功能在 Web Workers 中可用。

WebGLRenderingContext.drawElements() 方法是 WebGL API 的一部分,用於從陣列資料中渲染圖元。

語法

js
drawElements(mode, count, type, offset)

引數

模式

一個 GLenum,指定要渲染的圖元型別。可能的值有:

  • gl.POINTS:繪製一個點。
  • gl.LINE_STRIP:繪製一條連線到下一個頂點的直線。
  • gl.LINE_LOOP:繪製一條連線到下一個頂點的直線,並將最後一個頂點連接回第一個頂點。
  • gl.LINES:在兩個頂點之間繪製一條線。
  • gl.TRIANGLE_STRIP
  • gl.TRIANGLE_FAN
  • gl.TRIANGLES:為一組三個頂點繪製一個三角形。
計數

一個 GLsizei,指定要渲染的繫結元素陣列緩衝區中的元素數量。例如,要使用 gl.LINES 繪製線框三角形,計數應為 2 個端點/線 × 3 條線 = 6 個元素。但是,要繪製相同的線框三角形,使用 gl.LINE_STRIP 時,元素陣列緩衝區不會重複第一條線的末尾/第二條線的開頭以及第二條線的末尾/第三條線的開頭的索引,因此 count 將是四。要使用 gl.LINE_LOOP 繪製相同的三角形,元素陣列緩衝區也不會重複第一個/最後一個頂點,因此 count 將是三。

type

一個 GLenum,指定元素陣列緩衝區中值的型別。可能的值為:

  • gl.UNSIGNED_BYTE
  • gl.UNSIGNED_SHORT

使用 OES_element_index_uint 擴充套件時

  • gl.UNSIGNED_INT
offset

一個 GLintptr,指定元素陣列緩衝區中的位元組偏移量。必須是給定 type 大小的有效倍數。

返回值

無(undefined)。

異常

  • 如果 mode 不是接受的值之一,則會丟擲 gl.INVALID_ENUM 錯誤。
  • 如果 offset 不是給定型別大小的有效倍數,則會丟擲 gl.INVALID_OPERATION 錯誤。
  • 如果 count 為負數,則會丟擲 gl.INVALID_VALUE 錯誤。

示例

js
gl.drawElements(gl.POINTS, 8, gl.UNSIGNED_BYTE, 0);

規範

規範
WebGL 規範
# 5.14.11

瀏覽器相容性

另見