Cookie di statistica e di pubblicità
Usiamo cookie di statistica e di pubblicità, entrambi inviati a Google. Rifiutare non cambia niente di quello che vedi.Leggi la pagina sulla privacy
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.
Fino a 100 file alla volta. Formati diversi insieme non sono un problema.
Vengono convertiti uno dopo l’altro e scaricati insieme in uno ZIP.
GLB in 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.
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.
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ì.
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.
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.
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.
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.
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.
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.
| GLB | OBJ | |
|---|---|---|
| Nome completo | Binary glTF | Oggetto Wavefront |
| Estensione del file | .glb | .obj |
| Tipo di media | model/gltf-binary | model/obj |
| Prima pubblicazione | 2016 | 1992 |
| Pubblicato da | Khronos Group | Wavefront Technologies |
| Specifica | glTF 2.0 | — |
| Licenza | Standard aperto | Standard aperto |
| Situazione attuale | Attuale | Attuale |
| Si apre nel browser | Nessun browser | Nessun browser |
| Valutato al suo posto | GLTF | GLTF, PLY, STL |
Blender legge sia GLB sia OBJ, quindi puoi confrontare il risultato con l'originale senza un secondo programma.
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.
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.
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.
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.
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.