WebGL2RenderingContext: uniform[1234][uif][v]() 方法

Baseline 已廣泛支援

此功能已成熟,並可在多種裝置和瀏覽器版本上執行。自 2021 年 9 月起,所有瀏覽器均已支援此功能。

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

WebGL2RenderingContext.uniform[1234][uif][v]() 方法是 WebGL API 的一部分,用於指定 uniform 變數的值。

這些方法的名稱構成方式如下:

  • uniform 變數中元件的數量(1、2、3 或 4)。
  • uniform 變數的型別(i 表示整數,f 表示浮點數,ui 表示無符號整數)。
  • 對於向量型別,末尾是否有向量(v)字尾。

它們可以透過正則表示式 uniform[1234](u?i|f)v? 進行匹配。

這些簽名中的大多數都繼承自 WebGL 1 API。WebGL 2 添加了無符號整數版本,以及向量方法中額外的 srcOffsetsrcLength 引數。

語法

js
uniform1ui(location, v0)
uniform2ui(location, v0, v1)
uniform3ui(location, v0, v1, v2)
uniform4ui(location, v0, v1, v2, v3)

uniform1fv(location, data)
uniform1fv(location, data, srcOffset)
uniform1fv(location, data, srcOffset, srcLength)

uniform2fv(location, data)
uniform2fv(location, data, srcOffset)
uniform2fv(location, data, srcOffset, srcLength)

uniform3fv(location, data)
uniform3fv(location, data, srcOffset)
uniform3fv(location, data, srcOffset, srcLength)

uniform4fv(location, data)
uniform4fv(location, data, srcOffset)
uniform4fv(location, data, srcOffset, srcLength)

uniform1iv(location, data)
uniform1iv(location, data, srcOffset)
uniform1iv(location, data, srcOffset, srcLength)

uniform2iv(location, data)
uniform2iv(location, data, srcOffset)
uniform2iv(location, data, srcOffset, srcLength)

uniform3iv(location, data)
uniform3iv(location, data, srcOffset)
uniform3iv(location, data, srcOffset, srcLength)

uniform4iv(location, data)
uniform4iv(location, data, srcOffset)
uniform4iv(location, data, srcOffset, srcLength)

uniform1uiv(location, data)
uniform1uiv(location, data, srcOffset)
uniform1uiv(location, data, srcOffset, srcLength)

uniform2uiv(location, data)
uniform2uiv(location, data, srcOffset)
uniform2uiv(location, data, srcOffset, srcLength)

uniform3uiv(location, data)
uniform3uiv(location, data, srcOffset)
uniform3uiv(location, data, srcOffset, srcLength)

uniform4uiv(location, data)
uniform4uiv(location, data, srcOffset)
uniform4uiv(location, data, srcOffset, srcLength)

引數

location

一個包含要修改的 uniform 屬性位置的 WebGLUniformLocation 物件。

data, v0, v1, v2, v3

將用於 uniform 變數的新值。可能的型別:

  • 對於無符號整數值(帶 ui 的方法)、整數值(帶 i 的方法)或浮點數(帶 f 的方法),使用 Number
  • 對於無符號整數向量方法(帶 uiv 的方法),使用 Uint32Array(或無符號整數數字的 Array)。
  • 對於整數向量方法(帶 iv 的方法),使用 Int32Array(或整數數字的 Array)。
  • 對於浮點數向量方法(帶 fv 的方法),使用 Float32Array(或數字的 Array)。
srcOffset 可選

一個非負整數,指定要使用的 data 陣列中的第一個元素的索引。預設為 0

srcLength 可選

一個非負整數,指定要使用的 data 陣列中的元素數量。預設為 0,表示 data.length - srcOffsetsrcOffset + srcLength 必須小於或等於 data.length

返回值

無(undefined)。

規範

規範
WebGL 2.0 規範
# 3.7.8

瀏覽器相容性

另見