WebGLRenderingContext: compressedTexSubImage2D() 方法
注意:此功能在 Web Workers 中可用。
compressedTexSubImage2D() 方法是 WebGL API 的 WebGLRenderingContext 接口的一部分,用于在压缩格式下指定纹理图像的二维子矩形。
压缩图像格式仅可通过 WebGL2RenderingContext 或某些 WebGL 扩展 获得。
语法
// WebGL 1:
compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, srcData)
// Additionally available in WebGL 2:
compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, srcData, srcOffset)
compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, srcData, srcOffset, srcLengthOverride)
compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, offset)
参数
目标-
一个
GLenum,指定活动压缩纹理的绑定点(目标)。可能的值gl.TEXTURE_2D:一个二维纹理。gl.TEXTURE_CUBE_MAP_POSITIVE_X:立方体贴图纹理的正 X 面。gl.TEXTURE_CUBE_MAP_NEGATIVE_X:立方体贴图纹理的负 X 面。gl.TEXTURE_CUBE_MAP_POSITIVE_Y:立方体贴图纹理的正 Y 面。gl.TEXTURE_CUBE_MAP_NEGATIVE_Y:立方体贴图纹理的负 Y 面。gl.TEXTURE_CUBE_MAP_POSITIVE_Z:立方体贴图纹理的正 Z 面。gl.TEXTURE_CUBE_MAP_NEGATIVE_Z:立方体贴图纹理的负 Z 面。
level-
一个
GLint,指定细节级别。级别 0 是基本图像级别,级别 n 是第 n 个 mipmap 缩减级别。 xoffset-
一个
GLint,指定压缩纹理图像中的水平偏移量。 yoffset-
一个
GLint,指定压缩纹理图像中的垂直偏移量。 width-
一个
GLsizei,指定压缩纹理的宽度。 height-
一个
GLsizei,指定压缩纹理的高度。 格式(format)-
一个
GLenum,指定压缩图像格式。可能值的列表,请参阅WebGLRenderingContext.compressedTexImage2D()。
纹理源可以通过两种方式提供:使用 srcData、srcOffset 和 srcLengthOverride 从 ArrayBuffer(可能共享)提供;或者,在 WebGL 2 中,从 gl.PIXEL_UNPACK_BUFFER 使用 imageSize 和 offset 提供。
srcData-
一个包含压缩纹理数据的
TypedArray或DataView。 srcOffset可选-
(仅限 WebGL 2)一个整数,指定
srcData开始读取的索引。默认为0。 srcLengthOverride可选-
(仅限 WebGL 2) 一个整数,指定
srcData中要读取的元素数量。默认为srcData.length - srcOffset。 imageSize-
(仅限 WebGL 2) 一个
GLsizei,指定图像数据的大小(以字节为单位)。 offset-
(仅限 WebGL 2)一个
GLintptr,指定绑定到gl.PIXEL_UNPACK_BUFFER的缓冲区中的起始地址。
返回值
无(undefined)。
示例
const ext =
gl.getExtension("WEBGL_compressed_texture_s3tc") ||
gl.getExtension("MOZ_WEBGL_compressed_texture_s3tc") ||
gl.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");
gl.compressedTexSubImage2D(
gl.TEXTURE_2D,
0,
256,
256,
512,
512,
ext.COMPRESSED_RGBA_S3TC_DXT5_EXT,
textureData,
);
规范
| 规范 |
|---|
| WebGL 规范 # COMPRESSEDTEXSUBIMAGE2D |
浏览器兼容性
加载中…
另见
- 使用 WebGL 扩展
WebGLRenderingContext.getExtension()WebGLRenderingContext.compressedTexImage2D()WebGL2RenderingContext.compressedTexSubImage3D()WebGL2RenderingContext.compressedTexImage3D()WEBGL_compressed_texture_s3tcWEBGL_compressed_texture_s3tc_srgbWEBGL_compressed_texture_etcWEBGL_compressed_texture_pvrtcWEBGL_compressed_texture_astcEXT_texture_compression_bptcEXT_texture_compression_rgtc