Retour au blog
Formats

Basis Universal : Le guide complet de la compression de texture universelle

15 lecture min.

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é :