ANGLE_instanced_arrays: drawElementsInstancedANGLE() 方法
ANGLE_instanced_arrays.drawElementsInstancedANGLE()
是 WebGL API 的一种方法,它像 gl.drawElements()
方法一样,从数组数据中渲染基本图形。此外,它可以执行一组元素的多个实例。
注意: 当使用 WebGL2
时,此方法默认情况下可用作 gl.drawElementsInstanced()
。
语法
js
drawElementsInstancedANGLE(mode, count, type, offset, primcount)
参数
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
大小的有效倍数。 primcount
-
一个
GLsizei
,指定要执行的一组元素的实例数量。
返回值
无 (undefined
).
异常
- 如果
mode
不是接受的值之一,则会抛出gl.INVALID_ENUM
错误。 - 如果
offset
不是给定类型的有效倍数,则会抛出gl.INVALID_OPERATION
错误。 - 如果
count
或primcount
为负数,则会抛出gl.INVALID_VALUE
错误。
示例
js
const ext = gl.getExtension("ANGLE_instanced_arrays");
ext.drawElementsInstancedANGLE(gl.POINTS, 2, gl.UNSIGNED_SHORT, 0, 4);
规范
规范 |
---|
WebGL ANGLE_instanced_arrays Khronos 批准扩展规范 |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。
另请参阅
ext.drawArraysInstancedANGLE()
ext.vertexAttribDivisorANGLE()
WebGLRenderingContext.drawArrays()
WebGLRenderingContext.drawElements()
WebGL2RenderingContext.drawArraysInstanced()
WebGL2RenderingContext.drawElementsInstanced()
WebGL2RenderingContext.vertexAttribDivisor()
WEBGL_multi_draw.multiDrawElementsInstancedWEBGL()