WebGLRenderingContext: uniform[1234][fi][v]() 方法

Baseline 已广泛支持

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

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

WebGL APIWebGLRenderingContext.uniform[1234][fi][v]() 方法用于指定 uniform 变量的值。在程序对象成功链接时,程序对象中定义的所有活动的 uniform 变量都将初始化为 0。它们将保留调用此方法分配给它们的值,直到程序对象发生下一次成功的链接操作,届时它们将再次初始化为 0。

注意: 此处描述的许多函数都有扩展的 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

一个包含要修改的 uniform 属性位置的 WebGLUniformLocation 对象。

value, v0, v1, v2, v3

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

  • 浮点 Number,用于浮点值(方法名带有“f”)。
  • 浮点数序列(例如 Float32Array 或数字的 Array),用于浮点向量方法(方法名带有“fv”)。
  • 整数 Number,用于整数值(方法名带有“i”)。
  • Int32Array,用于整数向量方法(方法名带有“iv”)。

返回值

无(undefined)。

示例

js
gl.uniform1f(u_alpha, 0.8);

规范

规范
WebGL 规范
# 5.14.10

浏览器兼容性

另见