Convertire GLB in OBJ

Qui converti GLB in OBJ 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 OBJ funziona in modo diverso da GLB. Non è quindi il degrado graduale di un codec con perdita: quello che OBJ 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.

Perché un GLB finisce per dover diventare un OBJ

glTF e la sua forma binaria sono otto e nove anni più giovani della maggior parte del software che ingegneri e artisti hanno effettivamente installato. Wavefront ha pubblicato OBJ nel 1992 ed è ancora il minimo comune denominatore: Blender, MeshLab e Maya lo leggono, e così fa praticamente ogni importatore CAD, strumento di riparazione mesh, slicer e utilità accademica scritti da allora. Un GLB che arriva da una pipeline web in quel mondo deve diventare un OBJ per essere aperto.

La conversione va capita come un downgrade di tipo anziché di qualità. Un GLB è una scena: una gerarchia di nodi, materiali, texture, animazione, camere. Un OBJ è un elenco di punti e i triangoli tra essi, più un puntatore a un file di materiale separato. Tutto ciò che non è geometria deve trovare un altro posto dove stare, e in questa conversione non lo trova.

Cosa contiene il file OBJ dopo che un GLB lo attraversa

Tre tipi di riga e nient’altro. Una riga di commento che nomina lo scrittore, una riga o per mesh che porta il nome dal GLB, una riga v per vertice con tre coordinate decimali, e una riga f per triangolo con tre indici. Nessuna riga vt, nessuna vn, nessun gruppo s, nessun usemtl, nessun mtllib.

La convenzione sugli indici è la parte che inganna chi scrive parser propri: gli indici OBJ partono da uno, non da zero, e contano attraverso l’intero file anziché ripartire da ogni gruppo. Il convertitore tiene traccia di quello scarto mentre cammina nei mesh, quindi un secondo oggetto che fa riferimento al proprio primo vertice viene scritto con il totale corrente aggiunto. Sbagliare questo produce un OBJ che si apre e mostra i triangoli sbagliati, il che è peggio di uno che fallisce.

L'MTL mancante è il vero costo di GLB in OBJ

Un OBJ non ha mai contenuto materiali da solo. Contiene una riga mtllib che nomina un file .mtl compagno, e quel file contiene i colori, la lucentezza e i percorsi delle mappe di texture. Questo convertitore non scrive alcuna riga mtllib e non produce .mtl, quindi l’OBJ è materialmente vuoto e l’importatore assegna il suo grigio di default.

È una conseguenza del leggere solo la geometria. I parametri metallic-roughness del GLB, le sue texture di colore base e normali e le sue coordinate UV non vengono mai estratte, quindi non c’è nulla da scrivere in un MTL che non sarebbe inventato. Inventarlo sarebbe peggio: un MTL con default dall’aspetto plausibile dice a un artista a valle che il materiale veniva dalla sorgente quando non veniva da lì.

I nomi dei pezzi sopravvivono dai GLB ai gruppi OBJ

Ciascun nome di mesh glTF viene scritto come riga o dell’OBJ per quel gruppo, quindi un modello assemblato da componenti nominate — alloggiamento, staffa, coperchio — importa in Blender o Maya come tre oggetti nominati anziché una forma fusa anonima. Un mesh senza nome nella sorgente ne riceve uno generato così la struttura di gruppo resta leggibile.

Questo conta più di quanto sembri. In una conversione solo-geometria i nomi sono quasi l’unica informazione semantica che sopravvive, e sono ciò che permette a qualcuno all’estremità di riassegnare i materiali alle parti giuste. Se il GLB ha mesh senza nome e si avrà bisogno della distinzione, nominateli prima dell’esportazione anziché dopo l’importazione.

Come un grafo di scena GLB gonfia il conteggio dei vertici OBJ

glTF può collocare un mesh molte volte facendovi riferimento da diversi nodi con matrici diverse. OBJ non ha nulla di equivalente. Il convertitore risolve la differenza camminando nella scena, componendo ciascuna matrice di nodo con il suo genitore, e cuocendo la trasformazione mondo risultante nelle coordinate dei vertici prima di scriverle.

Così un GLB con un mesh di vite istanziato sessanta volte produce un OBJ con sessanta gruppi e sessanta copie complete della geometria della vite. Il modello appare corretto — è l’unico modo per mantenerlo corretto — e il file è sessanta volte più grande della sorgente istanziata in quella regione. Se il software di destinazione può istanziare, ricostruire l’istanza lì dopo l’importazione di solito vale la fatica.

Scala e unità quando i numeri GLB diventano numeri OBJ

Non viene applicato alcun ridimensionamento. Qualunque valori di coordinate contenesse il GLB vengono scritti nell’OBJ invariati, alla precisione con cui JavaScript li stampa. È il comportamento corretto ed è anche una trappola, perché i due formati intendono cose diverse per un numero.

glTF 2.0 definisce la propria unità lineare come il metro, quindi una sedia modellata a dimensione reale ha coordinate intorno a 0,9. OBJ non dichiara alcuna unità e ogni importatore applica la propria assunzione — comunemente metri in Blender, comunemente centimetri o pollici nei vecchi strumenti CAD. Controllare la bounding box dopo l’importazione rispetto a una dimensione che si conosce, una volta, piuttosto che scoprire il fattore più tardi in un pezzo stampato o in un assieme.

Cosa diventa il buffer di indici GLB nell'elenco vertici OBJ

Passa attraverso così com’è. glTF memorizza già i triangoli come indici in un array di posizioni condiviso, quindi non c’è nulla da ricostruire: ogni voce nell’accessor diventa una riga v nello stesso ordine, e ogni indice diventa una voce f che punta ad essa. Nulla viene unito su questo percorso — il passaggio di unione che collassa le coordinate coincidenti si applica quando si leggono STL e OBJ, dove i duplicati sono la norma, e non qui.

Questo conta quando il GLB viene da un esportatore reale, perché glTF contiene una UV e una normale per vertice. Un vertice che sta su una cucitura di texture o su uno spigolo duro deve essere diviso in due o tre copie nella stessa posizione perché gli attributi differiscano. Quelle copie sopravvivono nell’OBJ, dove gli attributi che le giustificavano non ci sono, quindi un modello chiuso può riportare bordi di confine lungo le sue cuciture. Merge by Distance in Blender, o Merge Close Vertices in MeshLab, lo risolve in un comando.

Aprire l'OBJ convertito in Blender, MeshLab o Maya

Tutti e tre lo importano senza configurazione. Aspettarsi un aspetto sfaccettato immediatamente: senza righe vn nel file, ogni importatore calcola normali di faccia piatte, e una superficie curva tassellata in triangoli appare come il guscio di poligoni che è. Shade Smooth in Blender, o un angolo di auto-smooth intorno ai 30 gradi, ripristina l’aspetto che il GLB aveva.

Aspettarsi nessun materiale. Assegnarne uno è un lavoro di due click in ognuno dei tre, e vale la pena farlo prima di qualunque altra cosa così che il modello sia visibile contro lo sfondo del viewport. Se il modello non appare affatto, la causa abituale è la scala anziché un importazione fallita — zoomare sulla selezione e leggere il pannello delle dimensioni.

Quando tenere il GLB è la decisione migliore

Se la destinazione legge glTF, non convertire. Blender, three.js, Babylon.js, Unity, Unreal, Windows 3D Viewer e macOS Preview aprono tutti un GLB con i suoi materiali intatti, e metterlo attraverso OBJ costa tutti quanti per nulla.

Convertire quando la destinazione genuinamente non può leggere glTF, o quando si vuole specificamente un file di testo che si possa ispezionare, greppare o diffare. Un OBJ è un vertice per riga e una faccia per riga, il che lo rende il più facile di questi sei formati da controllare a occhio — e quella leggibilità, non la fedeltà, è il suo vantaggio residuo su tutto ciò che è più recente.

Come convertire GLB in OBJ

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

GLB o OBJ: cosa cambia

GLB a confronto con OBJ
GLBOBJ
Nome completoBinary glTFOggetto Wavefront
Estensione del file.glb.obj
Tipo di mediamodel/gltf-binarymodel/obj
Prima pubblicazione20161992
Pubblicato daKhronos GroupWavefront Technologies
SpecificaglTF 2.0
LicenzaStandard apertoStandard aperto
Situazione attualeAttualeAttuale
Si apre nel browserNessun browserNessun browser
Valutato al suo postoGLTFGLTF, PLY, STL

Aprire il risultato

Blender legge sia GLB sia OBJ, quindi puoi confrontare il risultato con l'originale senza un secondo programma.

A che cosa serve ciascun formato

I due puntano a lavori diversi: GLB a il web e consegnare un file finito, OBJ a spostare dati fra programmi e la modifica. Vale la pena valutarlo prima, perché il motivo per cui esiste uno è di solito il motivo per cui l'altro risulta scomodo.

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

OBJ viene da Wavefront Technologies e risale al 1992. Blender, MeshLab e Maya lo leggono.

OBJ è stato pubblicato nel 1992 e GLB nel 2016. Il più vecchio è in genere il file più sicuro da consegnare; il più recente fa lo stesso lavoro con meno byte.

Da GLB a OBJ: domande frequenti

Il mio file GLB 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 GLB in OBJ è 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 GLB in OBJ?

GLB e OBJ 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.

Devo installare qualcosa per aprire un file OBJ?

Per la conversione no: avviene nel browser che hai già aperto. Per aprire il risultato ti serve poi il programma con cui il tuo dispositivo mostra di solito Wavefront Object.

Altro su questi formati