--- title: WebGLRenderingContext.activeTexture() slug: Web/API/WebGLRenderingContext/activeTexture translation_of: Web/API/WebGLRenderingContext/activeTexture ---
WebGLRenderingContext.activeTexture()
是 WebGL API 方法之一,用来激活指定的纹理单元。
void gl.activeTexture(texture);
texture
gl.TEXTUREI
,其中的 I 在 0 到 gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS - 1
范围内。无返回值。
如果 texture 不是 gl.TEXTUREI(
I 在 0 到 gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS - 1
范围内),一个 gl.INVALID_ENUM
错误将被抛出。
接下来调用 gl.TEXTURE1
作为当前纹理,随后对纹理状态的更改将会影响到这个纹理。
gl.activeTexture(gl.TEXTURE1);
纹理单元的数量视实现而定, 你可以通过访问常量 MAX_COMBINED_TEXTURE_IMAGE_UNITS
来获取这个值。按照规范来说,最少是 8 个。
gl.getParameter(gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS);
想要获取激活的纹理,可以查询常量 ACTIVE_TEXTURE
。
gl.activeTexture(gl.TEXTURE0); gl.getParameter(gl.ACTIVE_TEXTURE); // returns "33984" (0x84C0, gl.TEXUTURE0 enum value)
Specification | Status | Comment |
---|---|---|
{{SpecName('WebGL', "#5.14.3", "activeTexture")}} | {{Spec2('WebGL')}} | Initial definition. |
{{SpecName('OpenGL ES 2.0', "glActiveTexture.xml", "glActiveTexture")}} | {{Spec2('OpenGL ES 2.0')}} | Man page of the OpenGL API. |