WEBGL_compressed_texture_astc 扩展
WEBGL_compressed_texture_astc
扩展是 WebGL API 的一部分,它将 自适应可缩放纹理压缩 (ASTC) 压缩纹理格式公开给 WebGL。
有关更多信息,请参阅 NVIDIA 发布的文章 使用 ASTC 纹理压缩制作游戏资产。
可以使用 WebGLRenderingContext.getExtension()
方法获得 WebGL 扩展。有关更多信息,请参阅 使用扩展,它位于 WebGL 教程 中。
实例方法
此扩展公开了一种新的方法。
ext.getSupportedProfiles()
-
返回一个包含实现支持的 ASTC 配置文件名称的字符串数组。
常量
压缩纹理格式由 28 个常量公开,可用于两个函数:compressedTexImage2D()
和 compressedTexSubImage2D()
。
常量 | 块 | 每像素位数 | ArrayBuffer byteLength |
如果高度和宽度为 512,则为字节 |
---|---|---|---|---|
ext.COMPRESSED_RGBA_ASTC_4x4_KHR |
4x4 | 8.00 | floor((width + 3) / 4) * floor((height + 3) / 4) * 16 |
262144 |
ext.COMPRESSED_RGBA_ASTC_5x4_KHR |
5x4 | 6.40 | floor((width + 4) / 5) * floor((height + 3) / 4) * 16 |
210944 |
ext.COMPRESSED_RGBA_ASTC_5x5_KHR |
5x5 | 5.12 | floor((width + 4) / 5) * floor((height + 4) / 5) * 16 |
169744 |
ext.COMPRESSED_RGBA_ASTC_6x5_KHR |
6x5 | 4.27 | floor((width + 5) / 6) * floor((height + 4) / 5) * 16 |
141728 |
ext.COMPRESSED_RGBA_ASTC_6x6_KHR |
6x6 | 3.56 | floor((width + 5) / 6) * floor((height + 5) / 6) * 16 |
118336 |
ext.COMPRESSED_RGBA_ASTC_8x5_KHR |
8x5 | 3.20 | floor((width + 7) / 8) * floor((height + 4) / 5) * 16 |
105472 |
ext.COMPRESSED_RGBA_ASTC_8x6_KHR |
8x6 | 2.67 | floor((width + 7) / 8) * floor((height + 5) / 6) * 16 |
88064 |
ext.COMPRESSED_RGBA_ASTC_8x8_KHR |
8x8 | 2.00 | floor((width + 7) / 8) * floor((height + 7) / 8) * 16 |
65536 |
ext.COMPRESSED_RGBA_ASTC_10x5_KHR |
10x5 | 2.56 | floor((width + 9) / 10) * floor((height + 4) / 5) * 16 |
85696 |
ext.COMPRESSED_RGBA_ASTC_10x6_KHR |
10x6 | 2.13 | floor((width + 9) / 10) * floor((height + 5) / 6) * 16 |
71552 |
ext.COMPRESSED_RGBA_ASTC_10x8_KHR |
10x8 | 1.60 | floor((width + 9) / 10) * floor((height + 7) / 8) * 16 |
53248 |
ext.COMPRESSED_RGBA_ASTC_10x10_KHR |
10x10 | 1.28 | floor((width + 9) / 10) * floor((height + 9) / 10) * 16 |
43264 |
ext.COMPRESSED_RGBA_ASTC_12x10_KHR |
12x10 | 1.07 | floor((width + 11) / 12) * floor((height + 9) / 10) * 16 |
35776 |
ext.COMPRESSED_RGBA_ASTC_12x12_KHR |
12x12 | 0.89 | floor((width + 11) / 12) * floor((height + 11) / 12) * 16 |
29584 |
示例
js
const ext = gl.getExtension("WEBGL_compressed_texture_astc");
const texture = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, texture);
gl.compressedTexImage2D(
gl.TEXTURE_2D,
0,
ext.COMPRESSED_RGBA_ASTC_12x12_KHR,
512,
512,
0,
textureData,
);
规范
规范 |
---|
WebGL WEBGL_compressed_texture_astc 扩展规范 |
浏览器兼容性
BCD 表格仅在启用了 JavaScript 的浏览器中加载。