我正在做一些大纹理的WebGL工作,并且已经达到了必须使用纹理压缩来缓解VRAM和上传时间问题的地步。Android-WebGL上有什么纹理压缩格式?
我的应用程序需要在iOS和Android手机上运行最近两三年。这一次,桌面支持并不重要。
我知道iOS中的Chrome和Safari会允许我传递PVRTC格式的纹理,因为所有iOS设备都使用PowerVR GPU芯片组。所以iOS是一个解决的问题。
我也明白,几乎所有的Android手机都正式支持爱立信纹理压缩(ETC,ETC1) - 这实际上是由OpenGL 2规范强制的。但是,我读过一些报道,一些Android实例上的某些浏览器实际上是以未压缩的方式传递ETC1纹理。
WebGLStats警告我相当赤裸裸地反对使用WEBGL_compressed_texture_etc1扩展:
警告不要使用。通常通过在CPU上解压缩并在GPU上传完整大小来实现浏览器中的性能,vram和质量的严重影响。在Chrome 57和Firefox ??中已修复。
我知道的另一种常见格式是S3TC。这在桌面上得到了很好的支持,但Android操作性似乎仅限于使用NVIDIA芯片组的设备。我相信这些都是罕见的(只有Tegra?)。
对于选择适用于现代Android手机的纹理压缩格式,我的最佳选择是什么?