Les textures, c'est le fichier
Ouvrez un GLB de 40 Mo et regardez ce qu'il contient vraiment. Presque toujours, la géométrie pèse 1 à 3 Mo et tout le reste, ce sont les textures. Une seule carte de normales PNG en 4096×4096 fait à elle seule environ 20 Mo ; un jeu PBR complet en 4K dépasse aisément 60 Mo avant même d'avoir dessiné un triangle.
Cet optimiseur de textures 3D gratuit et en ligne ne travaille que sur cette partie du fichier — et vous donne le contrôle par emplacement que les compresseurs génériques n'offrent pas.
Pourquoi régler chaque emplacement séparément
Traiter toutes les textures de la même façon est l'erreur qui donne aux modèles optimisés cet aspect qui cloche.
Les cartes de couleur de base et d'émission sont perceptuelles. L'œil pardonne les petites erreurs de couleur : un WebP avec perte à qualité 80 retire typiquement 90 % des octets sans différence visible.
Les cartes de normales ne sont pas des images. Chaque pixel encode un vecteur de direction dans ses canaux RVB. Le sous-échantillonnage de chrominance à la JPEG moyenne les canaux de couleur entre pixels voisins — ce qui, sur une carte de normales, revient à moyenner des directions de surface. Résultat : un éclairage terne et aplati, que l'on décrit comme « le modèle a perdu son détail » sans savoir pourquoi. Gardez les cartes de normales sans perte et réduisez-les moins agressivement que les couleurs.
Les cartes de métallicité-rugosité et d'occlusion empaquettent des données monocanal dans du RVB. La rugosité varie lentement sur une surface : ces cartes supportent donc très bien la réduction, souvent jusqu'à la moitié de la résolution de la carte de couleur sans changement perceptible.
Les valeurs par défaut traduisent déjà tout cela : WebP avec perte pour la couleur, WebP sans perte pour les normales, et WebP plus petit pour les cartes ORM.
Formats
- WebP — pris en charge partout où cela compte, gains spectaculaires, le choix par défaut raisonnable.
- AVIF — encore plus petit, et encodé ici par une version de libavif embarquée plutôt que par le navigateur : le résultat est donc identique partout. L'encodage est plus lent qu'en WebP, et cela vaut la peine sur les grandes cartes de couleur.
- JPEG — pas de canal alpha ; à éviter dès qu'il y a de la transparence.
- PNG — sans perte, mais bien plus lourd que le WebP sans perte. À réserver aux pipelines qui exigent explicitement du PNG.
KTX2 / Basis Universal n'est délibérément pas proposé. C'est le meilleur format pour la mémoire GPU, mais l'encoder demande l'encodeur Basis, une chaîne d'outils volumineuse et distincte — l'outil devrait mentir sur ce qu'il produit.
Si un réencodage devait sortir plus lourd que l'original — ce qui arrive quand on pousse un JPEG déjà compressé avec perte dans un format sans perte — l'outil conserve l'original et vous le dit.
Vérifiez votre travail dans la grille
Après traitement, chaque texture apparaît dans une grille avec son emplacement, ses dimensions finales et son poids avant/après. Si une carte de normales paraît délavée sur la vignette, elle le sera sur le modèle. Changez les réglages de cet emplacement et relancez.
Dimensions en puissance de deux
Certains moteurs anciens et certains chemins de mipmapping exigent des textures dont les dimensions sont des puissances de deux. L'option arrondit chaque texture à la plus proche. Laissez-la désactivée pour des cibles modernes WebGL2 et WebGPU, que cela n'intéresse pas.
Confidentialité
Le décodage comme le réencodage passent par les API canvas de votre propre navigateur. Aucune texture n'est jamais téléversée.
Tiny Online Tools







