WebGLRenderingContext: activeTexture() 方法

Baseline 已广泛支持

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

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

WebGLRenderingContext.activeTexture() 方法是 WebGL API 的一部分,用于指定要激活的纹理单元。

语法

js
activeTexture(texture)

参数

texture

要激活的纹理单元。该值为 gl.TEXTUREI,其中 I 的取值范围是 0 到 gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS - 1

返回值

无(undefined)。

异常

如果 texture 不是 gl.TEXTUREI(其中 I 的取值范围是 0 到 gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS - 1)之一,则会抛出 gl.INVALID_ENUM 错误。

示例

以下调用将 gl.TEXTURE1 选为当前纹理。后续修改纹理状态的调用将影响此纹理。

js
gl.activeTexture(gl.TEXTURE1);

纹理单元的数量取决于具体实现,您可以使用 MAX_COMBINED_TEXTURE_IMAGE_UNITS 常量来获取此数量。根据规范,它至少为 8。

js
gl.getParameter(gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS);

要获取当前激活的纹理,请查询 ACTIVE_TEXTURE 常量。

js
gl.activeTexture(gl.TEXTURE0);
gl.getParameter(gl.ACTIVE_TEXTURE);
// returns "33984" (0x84C0, gl.TEXTURE0 enum value)

规范

规范
WebGL 规范
# 5.14.3

浏览器兼容性

另见