WebGLRenderingContext: getVertexAttrib() 方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2015 年 7 月⁩以来,各浏览器均已提供此特性。

注意:此功能在 Web Workers 中可用。

WebGLRenderingContext.getVertexAttrib() 方法是 WebGL API 的一部分,用于返回指定位置的顶点属性信息。

语法

js
getVertexAttrib(index, pname)

参数

index

一个 GLuint,指定顶点属性的索引。

pname

一个 GLenum,指定要查询的信息。可能的值

gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING

返回当前绑定的 WebGLBuffer

gl.VERTEX_ATTRIB_ARRAY_ENABLED

返回一个 GLboolean,如果该 index 处的顶点属性已启用,则为 true。否则为 false

gl.VERTEX_ATTRIB_ARRAY_SIZE

返回一个 GLint,指示顶点数组元素的大小。

gl.VERTEX_ATTRIB_ARRAY_STRIDE

返回一个 GLint,指示数组中连续元素之间的字节数。0 表示元素是连续的。

gl.VERTEX_ATTRIB_ARRAY_TYPE

返回一个 GLenum,表示数组类型。可能是以下之一:

  • gl.BYTE
  • gl.UNSIGNED_BYTE
  • gl.SHORT,
  • gl.UNSIGNED_SHORT
  • gl.FLOAT
gl.VERTEX_ATTRIB_ARRAY_NORMALIZED

返回一个 GLboolean,如果指定 index 处的顶点属性数组的定点数据类型已标准化,则为 true。

gl.CURRENT_VERTEX_ATTRIB

返回一个 Float32Array(包含 4 个元素),表示指定 index 处的顶点属性的当前值。

使用 WebGL 2 上下文时,还可以使用以下值:

gl.VERTEX_ATTRIB_ARRAY_INTEGER

返回一个 GLboolean,指示指定 index 处的顶点属性数组中是否包含整数数据类型。

gl.VERTEX_ATTRIB_ARRAY_DIVISOR

返回一个 GLint,描述用于实例化渲染的频率除数。

当使用 ANGLE_instanced_arrays 扩展时

ext.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE

返回一个 GLint,描述用于实例化渲染的频率除数。

返回值

返回通过 pname 指定的请求的顶点属性信息。

示例

js
gl.getVertexAttrib(0, gl.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING);

规范

规范
WebGL 规范
# 5.14.10
WebGL 2.0 规范
# 3.7.8

浏览器兼容性

另见