WEBGL_multi_draw: multiDrawArraysInstancedWEBGL() 方法
WEBGL_multi_draw.multiDrawArraysInstancedWEBGL() 是 WebGL API 的一個方法,用於從陣列資料渲染多個圖元。它等同於多次呼叫 gl.drawArraysInstanced() 方法。
語法
js
multiDrawArraysInstancedWEBGL(mode,
firstsList, firstsOffset,
countsList, countsOffset,
instanceCountsList, instanceCountsOffset,
drawCount)
引數
模式-
一個
GLenum,指定要渲染的圖元的型別。可能的值有:gl.POINTS:繪製一個點。gl.LINE_STRIP:繪製一條連線到下一個頂點的直線。gl.LINE_LOOP:繪製一條連線到下一個頂點的直線,並將最後一個頂點連接回第一個頂點。gl.LINES:在兩個頂點之間繪製一條線。gl.TRIANGLE_STRIPgl.TRIANGLE_FANgl.TRIANGLES:為一組三個頂點繪製一個三角形。
firstsList-
一個
Int32Array或Array(包含GLint型別的值),指定了向量點陣列的起始索引列表。 firstsOffset-
一個
GLuint型別的值,定義了 `firstsLists` 陣列的起始點。 countsList-
一個
Int32Array或Array(包含GLsizei型別的值),指定了要渲染的索引數量列表。 countsOffset-
一個
GLuint型別的值,定義了 `countsList` 陣列的起始點。 instanceCountsList-
一個
Int32Array或Array(包含GLsizei型別的值),指定了要執行的元素範圍的例項數量列表。 instanceCountsOffset-
一個
GLuint型別的值,定義了 `instanceCountsList` 陣列的起始點。 drawCount-
一個
GLsizei,指定要執行的元素範圍的例項數量。
返回值
無。
異常
- 如果
mode不是接受的值之一,則會丟擲gl.INVALID_ENUM錯誤。 - 如果 `drawCount` 或 `firstsList`、`countsList` 或 `instanceCountsList` 中的項為負數,則會丟擲 `gl.INVALID_VALUE` 錯誤。
- 如果
gl.CURRENT_PROGRAM為null,則會丟擲gl.INVALID_OPERATION錯誤。
示例
js
const firsts = new Int32Array(/* … */);
const counts = new Int32Array(/* … */);
const instanceCounts = new Int32Array(/* … */);
ext.multiDrawArraysInstancedWEBGL(
gl.TRIANGLES,
firsts,
0,
counts,
0,
instanceCounts,
0,
firsts.length,
);
規範
| 規範 |
|---|
| WebGL WEBGL_multi_draw 擴充套件規範 |
瀏覽器相容性
載入中…