Convertir GLTF en GLB

Vous pouvez convertir GLTF en GLB gratuitement et sans compte : déposez le fichier ci-dessus et, une ou deux secondes plus tard, le résultat est prêt à télécharger. La conversion se fait dans votre propre navigateur : le fichier n’est donc jamais téléversé. Cela marche sous Windows, macOS et Linux comme sur iPhone et Android, et continue de marcher si vous coupez le réseau.

  • Où cela s’exécute Dans votre navigateur. Le fichier n’est pas téléversé.
  • Reconstruit GLB ne fonctionne pas comme GLTF. Il ne s’agit donc pas de la dégradation progressive d’un codec avec perte : ce que GLB sait exprimer est reproduit fidèlement, et ce qui n’y a pas d’équivalent ne subsiste pas du tout.
  • Limite de taille Jusqu’à 100 Mo par fichier, gratuitement et sans compte.
  • Bon à savoir La géométrie seule. Les matériaux, les couleurs, les textures et l’animation ne suivent pas, et un modèle placé plusieurs fois revient avec chaque copie figée à sa propre position.

Jusqu’à 100 fichiers à la fois. Les formats mélangés ne posent pas de problème.

Vérifiez votre glTF avant de le convertir en GLB

Il y a deux types de .gltf dans le monde et un seul fonctionne ici. Ouvrez le fichier dans un éditeur de texte et cherchez le tableau « buffers » vers la fin. Si l’entrée a un uri qui commence par data:application/octet-stream;base64, chaque sommet du modèle est dans ce seul fichier et la conversion s’exécutera. Si le uri indique scene.bin ou model.bin, la géométrie vit dans un second fichier qu’un convertisseur à fichier unique ne voit jamais.

Cette seconde forme est la plus courante, parce que c’est ce que la plupart des exportateurs produisent par défaut, et c’est pourquoi cette page s’ouvre sur la vérification plutôt que de l’enterrer dans une FAQ. Déposer un glTF à buffer séparé ici produit un message explicite disant que la géométrie est ailleurs et suggérant la version .glb — ce qui est une vraie suggestion, puisque ce qui a produit le .gltf peut presque toujours produire un .glb directement.

Ce qu’un GLB résout qu’un dossier glTF ne résout pas

Un glTF avec des ressources externes est un petit graphe de fichiers tenu par des chemins relatifs : le JSON, un .bin, et une image par texture. Chacun de ces chemins est une manière pour le modèle de casser. Déplacer le JSON sans ses voisins et il se charge comme rien ; le servir depuis un CDN avec une disposition de dossiers différente et le buffer tombe en 404 ; le joindre à un message et un seul des quatre fichiers part.

Un GLB n’a aucun de ces modes de défaillance, parce qu’il n’y a rien à perdre. C’est aussi une seule requête HTTP au lieu de plusieurs, ce qui compte sur une page où le modèle est ce que le visiteur est venu voir. Cette propriété de fichier unique est la raison pour laquelle le conteneur binaire est dans glTF 2.0 dès le départ, spécifié en parallèle de la forme JSON plutôt qu’ajouté après coup.

Comment le GLB est assemblé à partir de votre glTF

La sortie est un glTF 2.0 binaire : un en-tête de douze octets dont la magie écrit glTF suivi d’un numéro de version et de la longueur totale, puis un chunk JSON, puis un chunk binaire. Le chunk JSON est complété à un multiple de quatre octets par des espaces et le chunk binaire par des zéros, ce que la spécification exige plutôt que tolère — plusieurs chargeurs refusent un fichier complété dans l’autre sens.

À l’intérieur, les positions de sommets sont écrites en float32 dans un accesseur VEC3 et les indices de triangles en uint32 dans un accesseur SCALAR, sans exception. Des types d’indices plus étroits économiseraient quelques kilooctets sur les petits modèles et demanderaient un conditionnel qui change silencieusement le comportement à 65 535 sommets, ce qui est un mauvais échange pour un convertisseur. Chaque accesseur de position porte le min et le max que la spécification demande, de sorte que les visionneuses cadrent le modèle au lieu de s’ouvrir zoomées à rien.

Les matériaux que votre glTF transporte n’atteindront pas le GLB

Ce convertisseur déplace la géométrie. Un glTF qui déclare un matériau métallique-rugosité avec une texture de couleur de base, une normal map et une emissive map est converti en un GLB contenant les positions de sommets, les indices de triangles et les noms de mesh — et le bloc matériau, les images, les échantillonneurs et les coordonnées de texture ne sont pas écrits du tout.

Cela mérite d’être pesé face à la raison pour laquelle vous convertissez. Si le but était de regrouper les textures dans un seul fichier distribuable, cette page ne le fait pas et gltf-transform ou l’exportateur de Blender le fait. Si le but était de sortir un artefact binaire unique d’un JSON autonome — pour un test de taille, un aperçu géométrique seul, un substitut dans une scène — le résultat est exactement ce qu’il faut et considérablement plus petit.

Animation, skins et caméras entre glTF et GLB

Les canaux et échantillonneurs d’animation ne sont pas lus, les skins et hiérarchies d’os ne sont pas lus, et les caméras et lumières ne sont pas lues. Un personnage habillé et animé arrive dans le GLB comme la géométrie statique de la pose que décrivent les données de sommet, sans moyen de le bouger.

Pour un accessoire statique, un élément d’architecture, un objet scanné ou une pièce à imprimer cela ne coûte rien, parce qu’il n’y avait rien à perdre. Pour un personnage ou un mécanisme c’est tout le modèle. Il n’y a pas ici de résultat partiel ni de réglage qui change cela, donc le conseil honnête est de vérifier ce que contient votre glTF avant de convertir plutôt qu’après.

Le graphe de scène s’aplatit sur le chemin de glTF à GLB

La scène source est parcourue à partir de son index de scène par défaut, et la matrice de chaque nœud est composée avec celle de son parent avant que les sommets ne soient transformés par le résultat. Les nœuds décrits avec des propriétés séparées de translation, rotation et mise à l’échelle sont convertis en matrice d’abord, en utilisant la forme quaternion que glTF définit, de sorte que les deux styles d’écriture arrivent au même endroit.

Le GLB qui sort a une structure plate : une scène, un nœud par mesh, pas de parenté, pas de réutilisation. Un modèle dont le glTF plaçait un seul mesh de boulon quarante fois dans la hiérarchie devient quarante mesh avec quarante copies des sommets. L’image est identique et le fichier est plus gros, ce qui est le compromis que tout format sans instancing impose.

Les sources glTF que ce convertisseur ne peut pas ouvrir

La géométrie compressée par Draco s’arrête sur un message qui nomme Draco. KHR_draco_mesh_compression remplace les buffer view simples par un flux compressé, et le décoder demande une bibliothèque qui n’est pas livrée ici. Ré-exporter sans Draco est une case à cocher dans Blender et un drapeau dans gltf-transform.

La géométrie stockée sous forme de bandes de triangles, éventails, lignes ou points est sautée plutôt que convertie, parce que seul le mode 4 de glTF est une liste de triangles. Un fichier qui ne contient que cela se termine sur un message disant qu’aucune géométrie triangulaire n’a été trouvée. Un JSON mal formé — un téléchargement tronqué en est la cause habituelle — est signalé comme illisible plutôt qu’analysé en quelque chose d’arbitraire.

Ce que pèse le GLB à côté du glTF de départ

Un glTF embarqué stocke son buffer en base64, ce qui coûte quatre caractères pour trois octets. Faire passer la même géométrie dans un chunk binaire de GLB supprime cette surcharge, donc un glTF autonome rétrécit généralement d’environ un quart à la conversion avant même que le reste ne soit compté.

Soustrayez ensuite tout ce que le convertisseur ne transporte pas. Pour un modèle dont le gros était les textures, le GLB peut être une petite fraction de l’original et à l’avenant bien dépouillé. Une vérification de bon sens après conversion est le nombre de triangles : le nombre d’accès d’indices divisé par trois doit correspondre à ce qu’a rapporté votre outil source, et si ce n’est pas le cas, la source contenait de la géométrie sous une forme qui a été sautée.

Où va le fichier pendant qu’un glTF devient un GLB

Nulle part. Cette paire s’exécute en JavaScript dans la page, sans module WebAssembly à aller chercher et sans requête qui porte le modèle. L’analyse, la cuisson des transformations et l’assemblage binaire se font sur votre machine, et c’est pourquoi il n’y a pas de file d’attente ni d’attente par fichier.

Le plafond gratuit est de 100 Mo, et un glTF autonome est le seul format ici susceptible de s’en approcher, puisque le base64 en fait la manière la plus gonflée de stocker le même mesh. Si vous êtes près de cette ligne, le modèle sera presque certainement mieux servi par un export direct en GLB depuis l’outil qui l’a fait.

Comment convertir GLTF en GLB

  1. Déposez votre fichier GLTF sur cette page, ou cliquez pour en choisir un.
  2. Choisissez GLB comme destination. La conversion se fait dans votre navigateur et le fichier n’est pas téléversé.
  3. Téléchargez le fichier GLB terminé.

GLTF et GLB : ce qui change

GLTF face à GLB
GLTFGLB
Nom completGL Transmission FormatBinary glTF
Extension de fichier.gltf.glb
Type de médiamodel/gltf+jsonmodel/gltf-binary
Première publication20152016
Publié parKhronos GroupKhronos Group
SpécificationglTF 2.0glTF 2.0
LicenceStandard ouvertStandard ouvert
Situation actuelleActuelActuel
S’ouvre dans un navigateurAucun navigateurAucun navigateur
Envisagé à la placeOBJOBJ

Ce qui est conservé

L’animation est conservée. GLTF et GLB acceptent plusieurs images, le résultat bouge donc encore.

Ouvrir le résultat

Blender, three.js et Babylon.js lisent aussi bien GLTF que GLB : vous pouvez comparer le résultat à l’original sans second logiciel.

À quoi sert chaque format

GLTF est le format de Khronos Group, publié en 2015. La spécification est glTF 2.0, et elle mérite d’être connue si le fichier doit survivre à l’outil qui l’a écrit.

GLB vient de Khronos Group et date de 2016, décrit par glTF 2.0. Blender, three.js et Babylon.js le lisent.

De GLTF à GLB : questions fréquentes

Mon fichier GLTF est-il téléversé quelque part ?

Non. Cette conversion se fait entièrement dans votre navigateur : le fichier ne quitte donc pas votre appareil. Vous pouvez le vérifier vous-même — ouvrez l’onglet réseau des outils de développement et convertissez quelque chose. Vous verrez la page elle-même et les requêtes de statistiques et de publicité qui financent ce service, et pas une seule qui transporte votre fichier.

Convertir GLTF en GLB est-il gratuit ?

Oui. Pas de compte, pas de filigrane et pas de quota journalier à dépenser : cela tourne sur votre propre machine, vous pouvez donc revenir autant de fois que vous voulez. Le navigateur traite des fichiers jusqu’à 100 Mo, 100 à la fois.

Y a-t-il une perte de qualité en convertissant GLTF en GLB ?

GLTF et GLB décrivent le contenu de façons radicalement différentes. La conversion est donc une reconstitution et non une copie : fidèle, mais pas identique octet pour octet. La géométrie seule. Les matériaux, les couleurs, les textures et l’animation ne suivent pas, et un modèle placé plusieurs fois revient avec chaque copie figée à sa propre position.

L’animation survit-elle de GLTF à GLB ?

L’animation est conservée. GLTF et GLB acceptent plusieurs images, le résultat bouge donc encore.

En savoir plus sur ces formats