WebGLRenderingContext: drawElements() 方法
注意:此功能在 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_STRIPgl.TRIANGLE_FANgl.TRIANGLES:为一组三个顶点绘制一个三角形。
计数-
一个
GLsizei,指定要渲染的绑定元素数组缓冲区中的元素数量。例如,要使用gl.LINES绘制线框三角形,计数应为 2 个端点/线 × 3 条线 = 6 个元素。但是,要绘制相同的线框三角形,使用gl.LINE_STRIP时,元素数组缓冲区不会重复第一条线的末尾/第二条线的开头以及第二条线的末尾/第三条线的开头的索引,因此count将是四。要使用gl.LINE_LOOP绘制相同的三角形,元素数组缓冲区也不会重复第一个/最后一个顶点,因此count将是三。 type-
一个
GLenum,指定元素数组缓冲区中值的类型。可能的值为:gl.UNSIGNED_BYTEgl.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 |
浏览器兼容性
加载中…