GLB vs glTF: qual è la differenza?
GLB vs glTF è una questione di confezionamento, non di dati: un .gltf è JSON leggibile con file separati, un .glb racchiude tutto in un unico file. Usa GLB per distribuire, glTF per modificare, converti senza perdite.
- Specifica Khronos glTF 2.0
- Dimensioni misurate dei file
- Conversione senza perdite
GLB vs glTF: la risposta breve
glTF è il formato aperto del Khronos Group per distribuire scene 3D ad app e web, e GLB non è un formato diverso ma il suo contenitore binario. La specifica definisce entrambi: un file .gltf è JSON (tipo MIME model/gltf+json), mentre un file .glb (model/gltf-binary) racchiude lo stesso JSON più un buffer binario in un unico file.
Quindi la domanda GLB vs glTF riguarda il confezionamento, non la qualità. Mesh, materiali PBR, texture, animazioni, skin e morph target restano identici in entrambi. Cambia quanti file gestisci, se puoi aprire la descrizione della scena in un editor di testo e quanto spazio extra paghi se incorpori dati binari dentro il JSON.
Per quasi tutti la risposta è GLB: un solo file da caricare, inviare via email o trascinare in three.js, Babylon.js, <model-viewer>, Blender, Unity o Unreal. Scegli glTF con file separati quando devi fare debug, modificare a mano i valori dei materiali o condividere texture tra molti modelli su un CDN.
Tabella di confronto GLB vs glTF
Entrambi sono glTF 2.0, quindi la maggior parte delle righe è identica. Le righe che cambiano sono quelle che decidono GLB vs glTF per il tuo progetto.
| GLB (.glb) | glTF (.gltf) | |
|---|---|---|
| Tipo di geometria | Mesh triangolari (anche punti e linee), gerarchia dei nodi, skin, morph target | Identico |
| Colore / texture | Texture PNG o JPEG salvate dentro il chunk binario; colori dei vertici | Texture come file immagine separati, o data URI base64 dentro il JSON |
| Unità | Metri, sistema destrorso, +Y in alto, secondo la specifica | Identico |
| Materiali | PBR metallic-roughness integrato; di più tramite estensioni KHR | Identico |
| Dimensione del file | La forma più compatta in un solo file: header di 12 byte più un chunk JSON e un chunk BIN | Stessi byte totali dei file separati; circa il 33% in più se i binari sono incorporati come base64 |
| Modificabilità | Binario; serve uno strumento per ispezionarlo | Il JSON è leggibile dall'uomo e se ne possono vedere le differenze con un diff in un editor di testo |
| Supporto software | three.js, Babylon.js, model-viewer, Blender, Unity, Unreal, Godot, Windows 3D Viewer | Gli stessi loader; i file esterni devono restare nella cartella relativa corretta |
| Uso per la stampa | Non è un formato di stampa; UltiMaker Cura può aprirlo, la maggior parte degli slicer no | Uguale; converti in STL o 3MF per la stampa |
| Numero di file | 1 | Da 1 a molti (.gltf, .bin, immagini) |
Fonte: specifica Khronos glTF 2.0, sezioni sulle estensioni dei file, sul sistema di coordinate e sulle unità, e sul formato file GLB.
Come si costruisce un file GLB da un glTF
Un GLB inizia con un'intestazione di 12 byte: i byte magici glTF, la versione (2) e la lunghezza totale. Poi arrivano i chunk. Il primo è il chunk JSON, la stessa identica descrizione della scena che conterrebbe un .gltf. Il secondo è il chunk BIN, che contiene posizioni dei vertici, normali, UV, indici, keyframe delle animazioni e, di solito, le immagini delle texture stesse.
Un .gltf mantiene quel JSON come file autonomo e referenzia i dati binari in uno di due modi: percorsi relativi ai file .bin e alle immagini che stanno accanto, oppure data URI che codificano i byte in base64 direttamente nel JSON. La specifica stessa nota che il base64 aumenta la lunghezza in byte del payload del 33%, e decodificarlo costa elaborazione extra. È il motivo principale per cui esiste GLB.
- GLB: header + chunk JSON + chunk BIN, un solo file
- glTF: JSON più .bin e immagini affiancati
- glTF incorporato: un solo file, ma base64 aggiunge un terzo
Dimensione file GLB vs glTF: un modello confezionato in tre modi
Abbiamo preso un modello texturizzato generato con AI dalla nostra galleria, un cavaliere robot steampunk con 500.000 triangoli, 287.963 vertici e tre texture PNG 2048 x 2048, e misurato ogni confezionamento.
| Confezionamento | File | Dimensione |
|---|---|---|
| GLB | 1 | 26.9 MB |
| glTF + .bin + texture PNG | 5 (.gltf, .bin, 3 PNG) | circa 26.9 MB in totale; il solo JSON .gltf è di circa 2 KB |
| glTF con dati base64 incorporati | 1 | circa 35.9 MB |
| Cosa sono i byte | Geometria 15.2 MB, texture 11.7 MB |
Il confezionamento non riduce nulla. Per rendere il modello più piccolo, comprimi la geometria (Draco o meshopt), ridimensiona o ricodifica le texture, oppure riduci il numero di triangoli. Il nostro compressore GLB e il semplificatore di mesh lo fanno nel browser.
glTF vs GLB sul web, in AR e in Blender
Sul web, GLB è il default pratico: una richiesta, una voce in cache e tutti i principali loader lo leggono. I file glTF separati possono essere vantaggiosi su un sito che mostra molti modelli che condividono le stesse texture, perché il browser scarica un'immagine condivisa una sola volta; le note di implementazione della specifica descrivono proprio questo compromesso.
Per l'AR, Scene Viewer di Android accetta glTF e GLB, mentre Quick Look di Apple su iPhone richiede USDZ, quindi pubblica entrambi e converti GLB in USDZ per i dispositivi Apple. In Blender, File > Import > glTF 2.0 legge l'uno o l'altro, e il menu Format dell'esportatore offre glTF Binary (.glb) e glTF Separate (.gltf + .bin + texture). Scegli Binary a meno che tu non abbia un motivo per non farlo.
Per la stampa 3D nessuno dei due è il formato di consegna giusto. Converti il GLB in STL o 3MF; le texture non si stampano, ma la forma sì.
- Web e condivisione: GLB
- Molti modelli con texture condivise: glTF separato
- AR su iPhone: converti in USDZ
- Stampa: converti in STL o 3MF
GLB vs glTF: quando usare l'uno o l'altro
Entrambi sono glTF 2.0 corretti. Scegli in base al flusso di lavoro.
Condividere un modello con chiunque
Incorporare su un sito web
Fare debug di un materiale rotto
baseColorFactor, metallicFactor o gli indici delle texture, correggi e ricarica.Un catalogo prodotti con texture condivise
Controllo di versione
Da evitare: glTF incorporato
Convertire glTF e GLB senza rompere nulla
La conversione è senza perdite in entrambe le direzioni, a condizione che ogni file referenziato sia presente.
- Mantieni il .gltf, il .bin e le immagini delle texture nelle stesse cartelle relative con cui sono stati esportati
- Carica il risultato in un visualizzatore e verifica che le texture compaiano prima di condividerlo
- Ricorda che glTF usa i metri: una figurina da 30 mm è 0.03 unità, e in alcuni strumenti sembra minuscola
- Comprimi geometria e texture per il web; il solo riconfezionamento non fa risparmiare nulla
- Inviare solo il file .gltf; senza il suo .bin e le immagini il modello si carica vuoto o grigio
- Rinominare .gltf in .glb; l'header binario deve essere scritto da un convertitore
- Usare glTF con base64 incorporato per modelli grandi; aggiunge circa il 33% ai dati binari
- Aspettarti che uno slicer stampi le texture da un GLB; converti in 3MF per stampe multicolore
Visualizzatori e convertitori GLB e glTF gratuiti
Strumenti per entrambi i lati di GLB vs glTF. Funzionano tutti nel tuo browser senza registrazione e i tuoi file restano sul tuo dispositivo.
FAQ
Domande frequenti
GLB vs glTF: quale è meglio?
Qual è la differenza tra GLB e glTF in una frase?
Convertire glTF in GLB perde qualità?
Perché il mio GLB è così grande?
Posso stampare in 3D un file GLB o glTF?
Quali unità usa glTF?
Che formato mi fornisce SupaVoxel?
Gli iPhone aprono i file GLB?
Strumenti e guide correlati
Continua
Inizia gratis
GLB vs glTF: dubbi risolti? Crea il modello
Trasforma una foto in un modello 3D, di solito in meno di un minuto. I download GLB sono gratuiti con i primi 3 crediti e senza carta; i modelli texturizzati sono inclusi in un piano a pagamento.
Nessuna carta di credito richiesta · 3 crediti gratuiti per iniziare