Basis Universal: Der vollständige Leitfaden zur universellen Texturkomprimierung
Basis Universal ist ein revolutionäres Texturkomprimierungssystem, das eine der größten Herausforderungen bei der plattformübergreifenden Grafikentwicklung löst: die Verwaltung verschiedener Texturkomprimierungsformate auf verschiedenen Plattformen und Geräten. Basis Universal wurde von Binomial LLC entwickelt und wird jetzt als Open-Source-Projekt gepflegt. Es bietet ein einzelnes komprimiertes Texturdateiformat, das zur Laufzeit in jedes native GPU-Komprimierungsformat transkodiert werden kann.
Was ist Basis Universal?
Basis Universal ist ein „superkomprimiertes“ GPU-Texturkomprimierungssystem, das hochkomprimierte Zwischentexturdateien erzeugt. Diese Dateien können zur Laufzeit schnell in jedes GPU-komprimierte Format transkodiert werden, das die Zielplattform unterstützt, einschließlich ETC1, ETC2, ASTC, BC1-7 und PVRTC.
Die wichtigste Innovation von Basis Universal ist die Fähigkeit, Texturdaten in einem plattformunabhängigen Format zu speichern und sie dann in das optimale native Format für das Zielgerät zu transkodieren. Dies bedeutet, dass Entwickler eine einzige Texturdatei bereitstellen können, die überall funktioniert, von Mobiltelefonen über Desktop-Computer bis hin zu Spielekonsolen.
Basis Universal unterstützt zwei primäre Komprimierungsmodi: ETC1S (für maximale Komprimierung) und UASTC (für höchste Qualität). Beide Modi bieten hervorragende Komprimierungsraten bei gleichzeitiger Beibehaltung der für moderne Grafikanwendungen geeigneten visuellen Qualität.
Hauptmerkmale von Basis Universal
Universelle Transkodierung
Eine einzelne komprimierte Datei kann zur Laufzeit in jedes native GPU-Format (ETC1/2, ASTC, BC1-7, PVRTC) transkodiert werden
Hohes Kompressionsverhältnis
Der ETC1S-Modus bietet außergewöhnliche Komprimierungsverhältnisse (bis zu 10:1 oder besser) bei guter visueller Qualität
UASTC-Modus
Die UASTC-Komprimierung (Universal ASTC) bietet eine Qualität, die mit den Formaten BC7 und ASTC konkurrenzfähig ist
Schnelle Transkodierung
Die Laufzeittranskodierung ist extrem schnell (normalerweise Millisekunden pro Textur) und weist einen minimalen Speicheraufwand auf
Grundlegende universelle Komprimierungsmodi
Basis Universal bietet zwei unterschiedliche Komprimierungsmodi, die jeweils für unterschiedliche Anwendungsfälle optimiert sind:
ETC1S-Modus
Bietet sehr hohe Komprimierungsverhältnisse, typischerweise 6:1 bis 10:1 Komprimierung mit guter visueller Qualität. Ideal für die meisten diffusen Texturen, UI-Elemente und Inhalte, bei denen die Dateigröße wichtiger ist als perfekte visuelle Wiedergabetreue.
Am besten geeignet für: mobile Anwendungen, Webinhalte, diffuse Texturen, UI-Elemente
UASTC-Modus
Bietet eine überlegene visuelle Qualität, die mit BC7 und ASTC vergleichbar oder besser ist, mit Komprimierungsverhältnissen von 3:1 bis 4:1. Ideal für hochdetaillierte Texturen, Normal Maps und Inhalte, bei denen die visuelle Qualität im Vordergrund steht.
Am besten geeignet für: normale Karten, Detailtexturen, Helden-Assets, PC-/Konsolenanwendungen
Basis Universeller Workflow
Der typische Basis Universal-Workflow umfasst drei Hauptphasen:
1. Quellkomprimierung
Komprimieren Sie Quelltexturen (PNG, TGA usw.) im ETC1S- oder UASTC-Modus in .basis-Dateien. Dies geschieht normalerweise während des Asset-Build-Prozesses.
2. Laufzeittranskodierung
Transkodieren Sie .basis-Dateien beim Start oder beim Laden der Anwendung in das optimale native Format für die Zielplattform (ETC2 für Android, ASTC für iOS, BC7 für Windows usw.).
3. GPU-Rendering
Nutzen Sie die transkodierten Texturdaten direkt mit der nativen Texturkomprimierungshardware der GPU und sorgen Sie so für optimale Leistung.
Vorteile von Basis Universal
Single-Asset-Pipeline
Eliminieren Sie die Notwendigkeit, mehrere Texturformatversionen für verschiedene Plattformen zu verwalten
Reduzierte Paketgröße
Deutlich kleinere Anwendungspakete im Vergleich zum Versand mehrerer Formatvarianten
Geringere Bandbreitennutzung
Schnellere Downloads und reduzierter Datenverbrauch, besonders wichtig für Web- und mobile Anwendungen
Plattformflexibilität
Zielen Sie problemlos auf neue Plattformen ab, ohne die Quelltexturen erneut zu komprimieren
Einschränkungen und Überlegungen
Transkodierungsaufwand
Erfordert eine Laufzeittranskodierung, die beim Laden der Texturen zu geringen Leistungseinbußen führt
Kompressionsverlust
Wie bei jeder verlustbehafteten Komprimierung gibt es im Vergleich zu unkomprimierten Texturen einen gewissen Qualitätsverlust
Speicheranforderungen
Die Transkodierung erfordert temporären Speicher sowohl für komprimierte als auch für transkodierte Daten
Integrationskomplexität
Erfordert die Integration von Basis Universal-Bibliotheken und Laufzeit-Transkodierungscode
Ideale Anwendungsfälle
WebGL-Anwendungen
Perfekt für webbasierte 3D-Anwendungen, bei denen die Bereitstellung einer einzelnen Datei und ein schnelles Laden von entscheidender Bedeutung sind
Plattformübergreifendes Mobilgerät
Ideal für mobile Apps für Android und iOS mit einer einzigen Texturpipeline
Web3- und Blockchain-Spiele
Hervorragend geeignet für Blockchain-basierte Spiele, bei denen Asset-Größe und Übertragungsgeschwindigkeit entscheidend sind
Multiplattform-Spiele
Vereinfacht die Asset-Verwaltung für Spiele, die auf mehrere Plattformen und App-Stores ausgerichtet sind
Basis Universal im Vergleich zu anderen Formaten
Wie Basis Universal im Vergleich zu herkömmlichen Ansätzen abschneidet:
Traditioneller Ansatz
Versenden Sie mehrere Formatvarianten (ETC2 für Android, ASTC für iOS, BC7 für Windows) → Größere Paketgröße, komplexe Asset-Pipeline
Basis Universeller Ansatz
Versenden Sie einzelne .basis-Dateien → Laufzeittranskodierung in optimales Format → Kleinere Pakete, einfachere Pipeline
Lagerung: Reduzierung des Texturspeicherbedarfs um 50–80 %
Bandbreite: 50–90 % Reduzierung der Download-Bandbreite
Build-Zeit: Schnellere Builds mit einem einzigen Komprimierungsschritt
Qualität: Vergleichbare visuelle Qualität mit nativen Formaten
Best Practices
- Verwenden Sie den ETC1S-Modus für die meisten diffusen Texturen und UI-Elemente, bei denen die Dateigröße wichtig ist
- Verwenden Sie den UASTC-Modus für normale Karten, Detailtexturen und Hero-Assets, bei denen die visuelle Qualität entscheidend ist
- Transkodieren Sie Texturen beim Laden von Assets und nicht beim Start der Anwendung, um Blockierungen zu vermeiden
- Berücksichtigen Sie die Komprimierungsformate der Zielplattform, wenn Sie zwischen den Modi ETC1S und UASTC wählen
- Testen Sie transkodierte Texturen auf Zielplattformen, um sicherzustellen, dass die visuelle Qualität den Anforderungen entspricht
- Transkodierte Texturen sollten nach Möglichkeit zwischengespeichert werden, um eine wiederholte Transkodierung derselben Assets zu vermeiden
Abschluss
Basis Universal stellt einen bedeutenden Fortschritt in der Texturkomprimierungstechnologie dar und löst das seit langem bestehende Problem der Verwaltung mehrerer Texturformate auf verschiedenen Plattformen. Sein universeller Transkodierungsansatz bietet sowohl technische als auch geschäftliche Vorteile, von reduzierten Paketgrößen bis hin zu vereinfachten Asset-Pipelines.
Für plattformübergreifende Anwendungen, webbasierte Erlebnisse und Szenarien, in denen Downloadgröße und Bandbreite entscheidend sind, bietet Basis Universal eine überzeugende Lösung, die keine Kompromisse bei der visuellen Qualität oder Leistung eingeht. Da sich die Grafikbranche weiterhin in Richtung plattformübergreifender Entwicklung bewegt, werden Tools wie Basis Universal für ein effizientes Texturmanagement immer wichtiger.
Weiterführende Literatur und Ressourcen
Erweitern Sie Ihr Wissen mit diesen maßgeblichen Ressourcen:
- Basis des universellen GitHub-Repositorys - Offizielles Basis-Universal-Repository mit Quellcode und Dokumentation
- Basis Universelle Dokumentation - Umfangreiche Dokumentation und Anwendungsbeispiele
- Khronos Basis Universal-Transcoder - Von Khronos gepflegte Transkodierungsbibliothek für Web- und mobile Plattformen
- Basis Universal Technical Paper - Ursprüngliches Forschungspapier, das den Komprimierungsalgorithmus Basis Universal beschreibt
- Leitfaden zur WebGL-Texturkomprimierung - Googles Leitfaden zur Texturkomprimierung in Webanwendungen