WebGLRenderingContext.uniform[1234][fi][v]()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

WebGL APIWebGLRenderingContext.uniform[1234][fi][v]() 方法指定了 uniform 变量的值。所有在 ShaderProgram 对象中定义的,且激活的 uniform 变量在 ShaderProgram 执行 link 成功后被初始化为 0。它们将保留通过调用此方法分配给它们的值,直到再次将其初始化为 0 时,也就是 ShaderProgram 对象上发生下一次成功的 link 操作为止。

备注: 这里描述的许多函数都扩展了 WebGL 2 接口,可在以下地址查看 WebGL2RenderingContext.uniform[1234][uif][v]()

语法

js
uniform1f(location, v0)
uniform1fv(location, value)
uniform1i(location, v0)
uniform1iv(location, value)

uniform2f(location, v0, v1)
uniform2fv(location, value)
uniform2i(location, v0, v1)
uniform2iv(location, value)

uniform3f(location, v0, v1, v2)
uniform3fv(location, value)
uniform3i(location, v0, v1, v2)
uniform3iv(location, value)

uniform4f(location, v0, v1, v2, v3)
uniform4fv(location, value)
uniform4i(location, v0, v1, v2, v3)
uniform4iv(location, value)

参数

location

WebGLUniformLocation 对象包含了将要修改的 uniform 属性位置。

value, v0, v1, v2, v3

新的值将被用于 uniform 变量。可能的类型:

  • 浮点值 Number(方法名跟"f").
  • 浮点数组 (例如 Float32ArrayArray 的数组) 用于浮点型向量方法 (方法名跟 "fv").
  • 整型值 Number (方法名跟"i").
  • 整型数组Int32Array 用于整型向量方法 (方法名跟 "iv").

返回值

无(undefined)。

示例

js
gl.uniform1f(u_alpha, 0.8);

规范

Specification
WebGL Specification
# 5.14.10

浏览器兼容性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
uniform1f

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

参见