Basis Universal : Le guide complet de la compression de texture universelle
Basis Universal est un système de compression de texture révolutionnaire qui résout l'un des plus grands défis du développement graphique multiplateforme : la gestion de différents formats de compression de texture sur diverses plates-formes et appareils. Développé par Binomial LLC et désormais maintenu en tant que projet open source, Basis Universal fournit un format de fichier de texture compressé unique qui peut être transcodé au moment de l'exécution vers n'importe quel format de compression GPU natif.
Qu’est-ce que Base Universelle ?
Basis Universal est un système de compression de texture GPU « super-compressé » qui produit des fichiers de texture intermédiaire hautement compressés. Ces fichiers peuvent être rapidement transcodés au moment de l'exécution dans n'importe quel format compressé par GPU pris en charge par la plate-forme cible, notamment ETC1, ETC2, ASTC, BC1-7 et PVRTC.
L'innovation clé de Basis Universal réside dans sa capacité à stocker les données de texture dans un format indépendant de la plate-forme, puis à les transcoder au format natif optimal pour l'appareil cible. Cela signifie que les développeurs peuvent fournir un seul fichier de texture qui fonctionne partout, des téléphones mobiles aux ordinateurs de bureau en passant par les consoles de jeux.
Basis Universal prend en charge deux modes de compression principaux : ETC1S (pour une compression maximale) et UASTC (pour la plus haute qualité). Les deux modes offrent d'excellents taux de compression tout en conservant une qualité visuelle adaptée aux applications graphiques modernes.
Principales caractéristiques de la base universelle
Transcodage universel
Un seul fichier compressé peut être transcodé dans n'importe quel format GPU natif (ETC1/2, ASTC, BC1-7, PVRTC) au moment de l'exécution.
Taux de compression élevé
Le mode ETC1S offre des taux de compression exceptionnels (jusqu'à 10:1 ou mieux) avec une bonne qualité visuelle
Mode UASTC
La compression UASTC (Universal ASTC) offre une qualité compétitive par rapport aux formats BC7 et ASTC
Transcodage rapide
Le transcodage d'exécution est extrêmement rapide (généralement quelques millisecondes par texture) avec une surcharge de mémoire minimale
Modes de compression universels de base
Basis Universal propose deux modes de compression distincts, chacun optimisé pour différents cas d'utilisation :
Mode ETC1S
Fournit des taux de compression très élevés, généralement de 6:1 à 10:1 avec une bonne qualité visuelle. Idéal pour la plupart des textures diffuses, des éléments d’interface utilisateur et du contenu pour lesquels la taille du fichier est plus importante qu’une fidélité visuelle parfaite.
Idéal pour : les applications mobiles, le contenu Web, les textures diffuses, les éléments d'interface utilisateur
Mode UASTC
Offre une qualité visuelle supérieure comparable ou supérieure à BC7 et ASTC, avec des taux de compression de 3:1 à 4:1. Idéal pour les textures très détaillées, les cartes normales et le contenu où la qualité visuelle est primordiale.
Idéal pour : cartes normales, textures détaillées, ressources de héros, applications PC/console
Flux de travail universel de base
Le flux de travail typique de Basis Universal comprend trois étapes principales :
1. Compression des sources
Compressez les textures sources (PNG, TGA, etc.) en fichiers .basis en utilisant le mode ETC1S ou UASTC. Cela se fait généralement pendant le processus de création d’actifs.
2. Transcodage d'exécution
Au démarrage ou au chargement de l'application, transcodez les fichiers .basis au format natif optimal pour la plateforme cible (ETC2 pour Android, ASTC pour iOS, BC7 pour Windows, etc.).
3. Rendu GPU
Utilisez les données de texture transcodées directement avec le matériel de compression de texture natif du GPU, garantissant ainsi des performances optimales.
Avantages de la base universelle
Pipeline d’actifs unique
Élimine le besoin de conserver plusieurs versions de format de texture pour différentes plates-formes
Taille de paquet réduite
Des packages d'application nettement plus petits par rapport à l'expédition de plusieurs variantes de format
Utilisation réduite de la bande passante
Téléchargements plus rapides et utilisation réduite des données, particulièrement important pour les applications Web et mobiles
Flexibilité de la plateforme
Ciblez facilement de nouvelles plates-formes sans recompresser les textures sources
Limites et considérations
Frais généraux de transcodage
Nécessite un transcodage d'exécution qui ajoute un petit coût en termes de performances lors du chargement de la texture
Perte de compression
Comme toute compression avec perte, il y a une certaine perte de qualité par rapport aux textures non compressées.
Exigences de mémoire
Le transcodage nécessite une mémoire temporaire pour les données compressées et transcodées
Complexité de l'intégration
Nécessite l'intégration des bibliothèques Basis Universal et du code de transcodage d'exécution
Cas d'utilisation idéaux
Applications WebGL
Parfait pour les applications 3D basées sur le Web où le déploiement d'un seul fichier et le chargement rapide sont essentiels
Mobile multiplateforme
Idéal pour les applications mobiles ciblant à la fois Android et iOS avec un seul pipeline de textures
Jeux Web3 et Blockchain
Excellent pour les jeux basés sur la blockchain où la taille des actifs et la vitesse de transfert sont cruciales
Jeux multiplateformes
Simplifie la gestion des actifs pour les jeux ciblant plusieurs plates-formes et magasins d'applications
Base universelle par rapport aux autres formats
Comment Basis Universal se compare aux approches traditionnelles :
Approche traditionnelle
Expédiez plusieurs variantes de format (ETC2 pour Android, ASTC pour iOS, BC7 pour Windows) → Taille de package plus grande, pipeline d'actifs complexe
Approche universelle de base
Expédier des fichiers .basis uniques → Transcodage du runtime au format optimal → Packages plus petits, pipeline plus simple
Stockage : réduction de 50 à 80 % des besoins en matière de stockage des textures
Bande passante : réduction de 50 à 90 % de la bande passante de téléchargement
Temps de construction : constructions plus rapides avec une seule étape de compression
Qualité : qualité visuelle comparable aux formats natifs
Meilleures pratiques
- Utilisez le mode ETC1S pour la plupart des textures diffuses et des éléments d'interface utilisateur pour lesquels la taille du fichier est importante
- Utilisez le mode UASTC pour les cartes normales, les textures détaillées et les ressources de héros où la qualité visuelle est essentielle.
- Transcoder les textures lors du chargement des ressources plutôt qu'au démarrage de l'application pour éviter le blocage
- Tenez compte des formats de compression de la plate-forme cible lors du choix entre les modes ETC1S et UASTC
- Testez les textures transcodées sur les plates-formes cibles pour garantir que la qualité visuelle répond aux exigences
- Mettre en cache les textures transcodées lorsque cela est possible pour éviter le transcodage répété des mêmes ressources
Conclusion
Basis Universal représente une avancée significative dans la technologie de compression de texture, résolvant le problème de longue date de la gestion de plusieurs formats de texture sur différentes plates-formes. Son approche de transcodage universelle offre des avantages à la fois techniques et commerciaux, depuis la réduction de la taille des packages jusqu'à la simplification des pipelines d'actifs.
Pour les applications multiplateformes, les expériences basées sur le Web et les scénarios dans lesquels la taille de téléchargement et la bande passante sont critiques, Basis Universal propose une solution convaincante qui ne fait aucun compromis sur la qualité visuelle ou les performances. Alors que l’industrie graphique continue d’évoluer vers le développement multiplateforme, des outils comme Basis Universal deviendront de plus en plus essentiels pour une gestion efficace des textures.
Lectures complémentaires et ressources
Développez vos connaissances avec ces ressources faisant autorité :
- Base du référentiel GitHub universel - Dépôt officiel Basis Universal avec code source et documentation
- Documentation universelle de base - Documentation complète et exemples d'utilisation
- Transcodeurs universels Khronos Basis - Bibliothèque de transcodage gérée par Khronos pour les plateformes Web et mobiles
- Document technique universel de base - Document de recherche original décrivant l'algorithme de compression Basis Universal
- Guide de compression de textures WebGL - Guide de Google sur la compression de texture dans les applications Web