Convertire GLTF in GLB

Qui converti GLTF in GLB gratis e senza account: trascina il file qui sopra e in un paio di secondi il risultato è pronto da scaricare. La conversione avviene dentro il tuo browser, quindi il file non viene mai caricato. Funziona allo stesso modo su Windows, macOS e Linux e anche su iPhone e Android, e continua a funzionare anche se stacchi la connessione.

  • Dove gira Nel tuo browser. Il file non viene mai caricato.
  • Ricostruito GLB funziona in modo diverso da GLTF. Non è quindi il degrado graduale di un codec con perdita: quello che GLB sa esprimere viene riprodotto fedelmente, e quello che lì non ha un equivalente non sopravvive affatto.
  • Limite di dimensione Fino a 100 MB per file, gratis e senza account.
  • Vale la pena saperlo Solo la geometria. Materiali, colori, texture e animazione non passano, e un modello collocato più volte torna con ogni copia fissata nella propria posizione.

Fino a 100 file alla volta. Formati diversi insieme non sono un problema.

Controllare il proprio glTF prima di convertirlo in GLB

Ci sono due tipi di .gltf al mondo e solo uno di essi funziona qui. Aprire il file in un editor di testo e cercare l’array «buffers» verso la fine. Se la voce ha un uri che inizia con data:application/octet-stream;base64, ogni vertice del modello è dentro quel singolo file e la conversione girerà. Se l’uri dice scene.bin o model.bin, la geometria vive in un secondo file che un convertitore a file singolo non vede mai.

Questa seconda forma è la più comune, perché è ciò che la maggior parte degli esportatori produce di default, ed è il motivo per cui questa pagina si apre con il controllo anziché seppellirlo in un FAQ. Lasciare cadere un glTF a buffer separato qui produce un messaggio esplicito che dice che la geometria è altrove e suggerisce la versione .glb invece — che è un suggerimento reale, dato che qualunque cosa abbia prodotto il .gltf può quasi sempre produrre un .glb direttamente.

Cosa risolve un GLB che una cartella glTF non risolve

Un glTF con risorse esterne è un piccolo grafo di file tenuti insieme da percorsi relativi: il JSON, un .bin, e un’immagine per texture. Ognuno di quei percorsi è un modo in cui il modello può rompersi. Spostare il JSON senza i suoi vicini e carica come niente; servirlo da una CDN con un layout di directory diverso e il buffer va in 404; allegarlo a un messaggio e solo uno dei quattro file arriva.

Un GLB non ha nessuna di queste modalità di rottura perché non c’è nulla da perdere. È anche una richiesta HTTP anziché diverse, il che conta su una pagina dove il modello è la cosa per cui il visitatore è venuto. Questa proprietà di file singolo è l’intera ragione per cui il contenitore binario è in glTF 2.0 fin dall’inizio, specificato accanto alla forma JSON anziché aggiunto dopo.

Come il GLB è assemblato dal glTF

L’output è un glTF 2.0 binario: un header di dodici byte la cui magia scrive glTF seguito da un numero di versione e dalla lunghezza totale, poi un chunk JSON, poi un chunk binario. Il chunk JSON è riempito con padding fino a un confine di quattro byte con spazi e il chunk binario con byte zero, cosa che la specifica richiede e basta — diversi loader rifiutano un file riempito con padding nel modo opposto.

Dentro, le posizioni dei vertici sono scritte come float32 in un accessor VEC3 e gli indici dei triangoli come uint32 in un accessor SCALAR, senza eccezione. Tipi di indice più stretti risparmierebbero qualche kilobyte su modelli piccoli e richiederebbero un condizionale che cambia silenziosamente il comportamento a 65.535 vertici, che è un cattivo scambio per un convertitore. Ogni accessor di posizione porta il min e max che la specifica chiede, così i visualizzatori inquadrano il modello anziché aprirlo zoomato sul nulla.

I materiali che il glTF porta non raggiungeranno il GLB

Questo convertitore sposta geometria. Un glTF che dichiara un materiale metallic-roughness con una texture di colore base, una mappa normale e una mappa emissiva converte in un GLB contenente posizioni dei vertici, indici dei triangoli e nomi dei mesh — e il blocco materiali, le immagini, i sampler e le coordinate di texture non sono scritti.

Vale la pena valutare contro la ragione per cui si sta convertendo. Se il punto era impacchettare le texture in un unico file spedibile, questa pagina non lo fa e gltf-transform o l’esportatore di Blender lo fanno. Se il punto era ottenere un singolo artefatto binario da un JSON autocontenuto — per un test di dimensione, un’anteprima solo geometria, un placeholder in una scena — il risultato è esattamente quello che serve e considerevolmente più piccolo.

Animazione, skin e camere tra glTF e GLB

I canali e i sampler di animazione non sono letti, le skin e le gerarchie di joint non sono letti, e le camere e le luci non sono lette. Un personaggio rigged e animato arriva nel GLB come la geometria statica della posa che i dati dei vertici descrivono, senza modo di muoverlo.

Per un oggetto statico, un pezzo di architettura, un oggetto scannerizzato o una parte stampata questo non costa nulla, perché non c’era nulla da perdere. Per un personaggio o un meccanismo è l’intero modello. Non c’è un risultato parziale qui e nessuna impostazione che lo cambi, quindi la guida onesta è controllare cosa contiene il glTF prima di convertire anziché dopo.

Il grafo di scena si appiattisce andando da glTF a GLB

La scena sorgente è camminata dal suo indice di scena di default, e ciascuna matrice di nodo è composta con il suo genitore prima che i vertici vengano trasformati dal risultato. I nodi descritti con proprietà separate di traslazione, rotazione e scala sono convertiti in una matrice prima, usando la forma a quaternioni che glTF definisce, così entrambi gli stili di authoring atterrano nello stesso posto.

Il GLB che ne esce ha una struttura piatta: una scena, un nodo per mesh, niente parenting, niente riuso. Un modello il cui glTF collocava un singolo mesh di bullone quaranta volte attraverso la gerarchia diventa quaranta mesh con quaranta copie dei vertici. L’immagine è identica e il file è più grande, che è il compromesso che ogni formato senza instancing impone.

Sorgenti glTF che questo convertitore non può aprire

La geometria compressa con Draco si ferma con un messaggio che nomina Draco. KHR_draco_mesh_compression sostituisce le viste di buffer piatte con un flusso compresso, e decodificarlo ha bisogno di una libreria che non è distribuita qui. Ri-esportare senza Draco è una casella di spunta in Blender e un flag in gltf-transform.

La geometria memorizzata come triangle strip, fan, linee o punti è saltata anziché convertita, perché solo la modalità 4 di glTF è una lista di triangoli. Un file che non contiene nient’altro termina con un messaggio che nessuna geometria a triangoli è stata trovata. Un file JSON malformato — un download troncato è la causa abituale — è riportato come illeggibile anziché parsato in qualcosa di arbitrario.

Quanto pesa il GLB rispetto al glTF da cui si è partiti

Un glTF embedded memorizza il suo buffer come base64, che costa quattro caratteri per ogni tre byte. Spostare la stessa geometria in un chunk binario GLB rimuove quell’overhead, quindi un glTF autocontenuto di solito si riduce di circa un quarto in conversione prima che qualsiasi altra cosa sia contata.

Poi sottrarre tutto ciò che il convertitore non porta. Per un modello la cui massa erano le texture, il GLB può essere una piccola frazione dell’originale e corrispondentemente spoglio. Un controllo di sanità utile dopo la conversione è il conteggio dei triangoli: il conteggio dell’accessor degli indici diviso per tre dovrebbe corrispondere a ciò che lo strumento sorgente riportava, e se non lo fa, la sorgente conteneva geometria in una forma che è stata saltata.

Dove va il file mentre un glTF diventa un GLB

Da nessuna parte. Questa coppia gira come puro JavaScript nella pagina, senza modulo WebAssembly da recuperare e senza richiesta che porti il modello. Il parsing, la cottura della trasformazione e l’assemblaggio binario avvengono tutti sulla macchina, che è il motivo per cui non c’è coda e nessuna attesa per file.

Il tetto gratuito è 100 MB, e un glTF autocontenuto è il formato qui che ha più probabilità di avvicinarsi, dato che base64 lo rende il modo più gonfiato per memorizzare la stessa mesh. Se si è vicini a quella linea, il modello è quasi certamente servito meglio dall’esportare GLB direttamente dallo strumento che lo ha fatto.

Come convertire GLTF in GLB

  1. Trascina il tuo file GLTF su questa pagina, oppure fai clic per sceglierne uno.
  2. Scegli GLB come destinazione. La conversione avviene nel tuo browser e il file non viene caricato.
  3. Scarica il file GLB finito.

GLTF o GLB: cosa cambia

GLTF a confronto con GLB
GLTFGLB
Nome completoGL Transmission FormatBinary glTF
Estensione del file.gltf.glb
Tipo di mediamodel/gltf+jsonmodel/gltf-binary
Prima pubblicazione20152016
Pubblicato daKhronos GroupKhronos Group
SpecificaglTF 2.0glTF 2.0
LicenzaStandard apertoStandard aperto
Situazione attualeAttualeAttuale
Si apre nel browserNessun browserNessun browser
Valutato al suo postoOBJOBJ

Che cosa resta

L'animazione resta. GLTF e GLB ammettono più fotogrammi, quindi il risultato continua a muoversi.

Aprire il risultato

Blender, three.js e Babylon.js leggono sia GLTF sia GLB, quindi puoi confrontare il risultato con l'originale senza un secondo programma.

A che cosa serve ciascun formato

GLTF è il formato di Khronos Group, pubblicato nel 2015. È descritto in glTF 2.0, e vale la pena conoscerlo se il file deve sopravvivere allo strumento che lo ha scritto.

GLB viene da Khronos Group e risale al 2016, descritto in glTF 2.0. Blender, three.js e Babylon.js lo leggono.

Da GLTF a GLB: domande frequenti

Il mio file GLTF viene caricato da qualche parte?

No. Questa conversione avviene interamente nel tuo browser, quindi il file non esce dal tuo dispositivo. Puoi controllarlo da solo: apri la scheda di rete degli strumenti per sviluppatori e converti qualcosa. Vedrai la pagina stessa e le richieste di statistica e di pubblicità con cui questo servizio si paga, e nemmeno una che porti il tuo file.

Convertire GLTF in GLB è gratis?

Sì. Senza account, senza filigrana e senza una quota giornaliera da consumare: gira sulla tua macchina, quindi puoi tornare quante volte vuoi. Il browser lavora file fino a 100 MB, 100 per volta.

Si perde qualità convertendo GLTF in GLB?

GLTF e GLB descrivono il contenuto in modi radicalmente diversi. La conversione è quindi una ricostruzione e non una copia: fedele, ma non identica byte per byte. Solo la geometria. Materiali, colori, texture e animazione non passano, e un modello collocato più volte torna con ogni copia fissata nella propria posizione.

L'animazione sopravvive da GLTF a GLB?

L'animazione resta. GLTF e GLB ammettono più fotogrammi, quindi il risultato continua a muoversi.

Altro su questi formati