WEBGL_compressed_texture_s3tc 扩展
WEBGL_compressed_texture_s3tc 扩展是 WebGL API 的一部分,并公开四种 S3TC 压缩纹理格式。
压缩纹理可减少 GPU 存储纹理所需的内存量,从而允许使用更高分辨率的纹理或更多相同分辨率的纹理。
可以使用 WebGLRenderingContext.getExtension() 方法来访问 WebGL 扩展。有关更多信息,请参阅 WebGL 教程中的 使用扩展。
常量
这些压缩纹理格式由四个常量公开,并可用于两个函数:compressedTexImage2D() 和 compressedTexSubImage2D()。
ext.COMPRESSED_RGB_S3TC_DXT1_EXT-
DXT1 压缩的 RGB 图像格式。
ext.COMPRESSED_RGBA_S3TC_DXT1_EXT-
DXT1 压缩的 RGB 图像格式,带有开关式 alpha 值。
ext.COMPRESSED_RGBA_S3TC_DXT3_EXT-
DXT3 压缩的 RGBA 图像格式。与 32 位 RGBA 纹理相比,它提供了 4:1 的压缩率。
ext.COMPRESSED_RGBA_S3TC_DXT5_EXT-
DXT5 压缩的 RGBA 图像格式。它也提供 4:1 的压缩率,但在 alpha 压缩方式上与 DXT3 压缩不同。
示例
js
const ext =
gl.getExtension("WEBGL_compressed_texture_s3tc") ||
gl.getExtension("MOZ_WEBGL_compressed_texture_s3tc") ||
gl.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");
const texture = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, texture);
gl.compressedTexImage2D(
gl.TEXTURE_2D,
0,
ext.COMPRESSED_RGBA_S3TC_DXT5_EXT,
512,
512,
0,
textureData,
);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
规范
| 规范 |
|---|
| WebGL WEBGL_compressed_texture_s3tc Khronos 批准的扩展规范 |
浏览器兼容性
加载中…