android 纹理格式,Android-WebGL上有什么纹理压缩格式?

Android-WebGL上有什么纹理压缩格式?

它通过使用

gl.getSupportedExtensions();

随着2017年7月15日检查webglstats.com它声称的是给设备上的GPU /驱动器/浏览器

您可以查看特定设备

没有机器人设备支持设备的s3tc

2%苏pport设备pvrtc

97%支持设备etc1

97%支持设备etc

48%支持设备atc

46%的支持astc

我99%肯定它并不完全准确,因为我非常确定NVidia Shield支持s3tc,但也许没有人使用NVidia Shield访问过使用webglstats的网站。com或可能的用户数量是如此之小,它下降到0%

什么是我的最佳选择选​​择纹理压缩格式,将在现代Android手机上工作?

你应该可以做的是支持所有的etc1等,atc,astc。存储你的资产在文件夹或扩展等

assets/etc1/image1

assets/etc1/image2

assets/astc/image1

assets/astc/image2

...

assets/image1.etc1

assets/image2.etc1

assets/image1.astc

assets/image2.astc

... 在启动查询的格式用户的设备支持

然后,选择最好的之一(如可能最小的最好一些定义大小)

// in order of best compression to worst

const compressions = [

{ ext: "astc", name: "WEBGL_compressed_texture_astc" },

{ ext: "etc1", name: "WEBGL_compressed_texture_etc1" },

...

];

let imageExtension = ""; // pick a default?

for (let i = 0; i < compressions.length; ++i) {

const info = compressions[i];

const ext = gl.getExtension(info.name);

if (ext) {

imageExtension = info.ext;

break;

}

}

function loadImage(baseUrl) {

...

img.src = baseUrl + imageExtension;

...

}

或上面的其他变体,您可以找出用户的设备需要什么,然后使用它。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值