想请教下官方大大关于压缩纹理这块的东西

想问下 上面两个图中 type为sprite-frame与sprite的时候,压缩纹理有什么区别吗?这个压缩问题底层是怎么实现的?调用了webgl的什么接口实现的呢?希望可以解答一下。感谢!

谢邀。

这个类型选项对于压缩问题的最终输出接口是没有影响的。

var ext = gl.getExtension('WEBGL_compressed_texture_astc');

var 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);

借此机会问下, 比如我的安卓手机,支持 ASTC & ETC2, 我构建安卓时同时选择了两种格式, 引擎运行时如何决定使用哪种格式的压缩纹理?引擎相关代码在哪里?

更新: 我找到了,在 image-asset.ts 270 行附近

1赞

3.4.0 上:

2.4.6 上:
图片

看了代码就知道了哈

感谢 :star_struck:

非常感谢您的详细解答!

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。