WebGL2RenderingContext: drawElementsInstanced() 方法
注意:此功能在 Web Workers 中可用。
WebGL2RenderingContext.drawElementsInstanced() 方法是 WebGL 2 API 的一部分,它像 gl.drawElements() 方法一样,使用数组数据渲染图元。此外,它还可以执行一组元素的多个实例。
注意:在使用 WebGL 1 时,ANGLE_instanced_arrays 扩展也可以提供此方法。
语法
js
drawElementsInstanced(mode, count, type, offset, instanceCount)
参数
模式-
一个
GLenum,指定要渲染的图元类型。可能的值有:gl.POINTS:绘制一个点。gl.LINE_STRIP:绘制一条连接到下一个顶点的直线。gl.LINE_LOOP:绘制一条连接到下一个顶点的直线,并将最后一个顶点连接回第一个顶点。gl.LINES:在两个顶点之间绘制一条线。gl.TRIANGLE_STRIPgl.TRIANGLE_FANgl.TRIANGLES:为一组三个顶点绘制一个三角形。
计数-
一个指定要渲染的元素数量的
GLsizei。 type-
一个
GLenum,指定元素数组缓冲区中值的类型。可能的值为:gl.UNSIGNED_BYTEgl.UNSIGNED_SHORTgl.UNSIGNED_INT当使用OES_element_index_uint扩展时。
offset-
一个指定元素数组缓冲区中偏移量的
GLintptr。必须是给定type大小的有效倍数。 instanceCount-
一个指定要执行的元素集实例数量的
GLsizei。
返回值
无(undefined)。
异常
- 如果
mode不是接受的值之一,则会抛出gl.INVALID_ENUM错误。 - 如果
offset是给定类型大小的有效倍数,则会抛出gl.INVALID_OPERATION错误。 - 如果
count或instanceCount为负数,则会抛出gl.INVALID_VALUE错误。
示例
js
gl.drawElementsInstanced(gl.POINTS, 2, gl.UNSIGNED_SHORT, 0, 4);
规范
| 规范 |
|---|
| WebGL 2.0 规范 # 3.7.9 |
浏览器兼容性
加载中…