WebGL2RenderingContext: drawElementsInstanced() 方法
WebGL2RenderingContext.drawElementsInstanced()
方法是 WebGL 2 API 的一部分,它从数组数据渲染图元,类似于 gl.drawElements()
方法。此外,它还可以执行一组元素的多个实例。
注意:使用 WebGL 1 时,ANGLE_instanced_arrays
扩展也可以提供此方法。
语法
js
drawElementsInstanced(mode, count, type, offset, instanceCount)
参数
mode
-
一个
GLenum
,指定要渲染的图元类型。可能的值为:gl.POINTS
:绘制一个点。gl.LINE_STRIP
:绘制一条到下一个顶点的直线。-
gl.LINE_LOOP
:绘制一条到下一个顶点的直线,并将最后一个顶点连接回第一个顶点。 gl.LINES
:绘制一对顶点之间的线段。gl.TRIANGLE_STRIP
gl.TRIANGLE_FAN
gl.TRIANGLES
:为一组三个顶点绘制一个三角形。
count
-
一个
GLsizei
,指定要渲染的元素数量。 type
-
一个
GLenum
,指定元素数组缓冲区中值的类型。可能的值为:gl.UNSIGNED_BYTE
gl.UNSIGNED_SHORT
gl.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 |
浏览器兼容性
BCD 表格仅在浏览器中加载