Ich mache WebGL Arbeit mit einigen großen Texturen, und habe den Punkt erreicht, wo ich Textur-Komprimierung verwenden muss, um Probleme zu minimieren VRAM und Upload-Zeit.Welche Texturkomprimierungsformate sind für Android-WebGL verfügbar?
Meine Anwendung muss in den letzten zwei oder drei Jahren auf iOS- und Android-Mobiltelefonen ausgeführt werden. Ausnahmsweise ist Desktop-Unterstützung nicht folgerichtig.
Ich verstehe, dass Chrome und Safari in iOS mir erlauben, Texturen im PVRTC-Format zu übergeben, da alle iOS-Geräte PowerVR-GPU-Chipsätze verwenden. Also iOS ist ein gelöstes Problem.
Ich verstehe auch, dass fast alle Android-Telefone formal Ericsson Texture Compression unterstützen (ETC, ETC1) - das ist eigentlich von der OpenGL 2-Spezifikation vorgeschrieben. Ich habe jedoch Berichte gelesen, dass einige Browser auf einigen Android-Instanzen ETC1-Texturen unkomprimiert übertragen.
WebGLStats warnt mich ziemlich krass gegen die WEBGL_compressed_texture_etc1 Erweiterung mit:
Warnung nicht verwenden. Wird häufig in Browsern implementiert, indem die CPU dekomprimiert und die volle Größe auf die GPU hochgeladen wird, was zu erheblichen Performance-, Vram- und Qualitätseinbußen führt. In Chrome 57 und Firefox behoben?.
Das andere übliche Format, das mir bekannt ist, ist S3TC. Dies wird auf dem Desktop gut unterstützt, aber die Bedienbarkeit von Android scheint auf Geräte beschränkt zu sein, die NVIDIA-Chipsätze verwenden. Ich glaube, dass diese selten passieren (Tegra nur?).
Was ist meine beste Option für die Auswahl eines Texturkomprimierungsformats, das auf modernen Android-Telefonen funktioniert?