Convertire OBJ in GLTF

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

OBJ in glTF come ingresso nella toolchain glTF

Quasi tutto ciò che è utile nella moderna pipeline 3D per il web prende glTF come ingresso. gltf-transform lo pota, salda, ricampiona e comprime; il validatore Khronos lo controlla; three.js e Babylon.js lo consumano. Un OBJ è fuori da tutto ciò, e il primo passo per portarlo dentro è una conversione che produca un documento che quegli strumenti accettano.

La ragione per puntare a .gltf piuttosto che a .glb in questa fase è che la forma JSON è quella che potete leggere e cambiare. Un GLB è l’artefatto che producete alla fine della pipeline, dopo che il materiale è giusto e il passaggio di compressione è girato. Questa pagina è per l’inizio di quella pipeline.

La struttura del documento glTF scritto da un OBJ

Un blocco asset che dichiara la versione 2.0 e Quinvert come generatore, un indice scena 0, una scena che elenca ogni nodo, un nodo per mesh, una mesh per gruppo OBJ, e per mesh una singola primitiva con modalità 4, un attributo POSITION e un accessore indices. Poi gli accessori, le viste buffer e un buffer.

È formattato con indentazione a due spazi, il che lo rende circa un terzo più grande del minificato e leggibile senza un formattatore. Per un documento che state per modificare è il predefinito giusto; farlo passare per un minificatore è un comando, il contrario è un lavoro molto più lungo.

Il buffer arriva come URI dati base64 dentro il glTF

glTF permette tre modi di memorizzare i dati vertice: un file .bin separato, un URI dati base64 nel campo uri del buffer, o il chunk binario di un GLB. Una conversione produce un file, quindi l’URI dati è l’unica opzione che mantiene l’output autonomo, ed è quella scritta.

Due conseguenze. Il file è circa un terzo più grande degli stessi byte memorizzati in binario, perché base64 costa quattro caratteri per tre byte. E ogni strumento che legge glTF lo gestisce: gltf-transform, il validatore e three.js risolvono tutti i buffer incorporati senza configurazione speciale.

Aggiungere un materiale al glTF convertito è una piccola modifica

Il documento non ha un array materials, perché il file MTL dell’OBJ non viene letto. Aggiungerne uno sono quattro righe: un array materials contenente un oggetto con un blocco pbrMetallicRoughness e un baseColorFactor di quattro numeri, poi una proprietà material sulla primitiva che ne dà l’indice.

Questo dà un modello colorato e correttamente illuminato in qualunque visualizzatore glTF senza toccare la geometria. Le texture sono un lavoro più grande, perché servono immagini, sampler, texture e dati TEXCOORD_0 che questa conversione non ha prodotto.

Cosa fanno i nomi dei gruppi OBJ nel JSON glTF

Ogni riga o o g inizia un nuovo gruppo, e ogni gruppo diventa una mesh nominata. Quel nome è l’unica informazione non geometrica che attraversa la conversione, e in un documento che state per modificare è ciò che fa la differenza tra trovare la parte che intendevate e contare nodi.

Un gruppo senza nome nella sorgente non riceve un nome nemmeno nell’output. Se il glTF verrà letto o modificato a mano dopo, nominate i gruppi nell’OBJ prima — una modifica testuale lì è più facile che riconciliare mesh anonime nel JSON dopo.

Validare il glTF che ricevete da un OBJ

L’output è scritto contro le parti della specifica che i validatori applicano davvero. Le viste buffer sono riempite così che ogni offset byte di accessore sia un multiplo della dimensione del suo componente, un requisito piuttosto che una cortesia. Ogni accessore POSITION porta min e max, richiesto e usato dai visualizzatori per inquadrare il modello.

Uno stride di zero viene trattato come strettamente compattato piuttosto che come stride uguale alla dimensione dell’elemento, ciò che dice la specifica. Se fate girare il validatore Khronos sul risultato, l’output interessante non sono errori ma la nota informativa che le mesh non hanno normali — vero, e gestito dalla specifica dicendo ai visualizzatori di calcolarne di piatte.

Come viene letto l’OBJ prima che venga scritto qualunque glTF

Le facce con quattro o più angoli sono triangolate a ventaglio dal primo angolo. Corretto per quad e n-gon convessi, che è ciò che questi file contengono in pratica, e può produrre triangoli sovrapposti su una faccia concava.

Gli indici di faccia negativi vengono risolti durante la lettura, poiché contano all’indietro dal vertice più recente. I vertici vengono poi saldati per gruppo a sei cifre decimali, così un gruppo che referenziava dodici vertici di un file da quattromila porta dodici vertici nel glTF.

Perché questo glTF è più grande del GLB equivalente

Inflazione base64 sul buffer, più JSON formattato attorno. Per un modello di sola geometria il buffer domina, quindi aspettatevi circa un terzo di byte in più rispetto allo stesso modello come GLB, prima di qualunque compressione.

È lo scambio corretto in questo punto di una pipeline e quello sbagliato alla fine. La forma usuale del lavoro: convertire in glTF qui, modificarlo o elaborarlo, poi produrre il GLB come artefatto finale — o riconvertendo o facendolo scrivere da gltf-transform, dove appartiene anche la compressione Draco o meshopt.

Quando convertire un OBJ direttamente in GLB invece

Se niente accadrà al file tra la conversione e la consegna, andate direttamente al GLB. È più piccolo, è una richiesta sola, e la modificabilità che state pagando con i byte extra non vale nulla se nessuno lo apre.

Scegliete glTF quando c’è un passo successivo: un materiale da aggiungere, un validatore da soddisfare, un passaggio di trasformazione da eseguire, o un repository dove un file testo fa diff e uno binario no. Entrambe le conversioni girano interamente nel vostro browser.

Come convertire OBJ in GLTF

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

OBJ o GLTF: cosa cambia

OBJ a confronto con GLTF
OBJGLTF
Nome completoOggetto WavefrontGL Transmission Format
Estensione del file.obj.gltf
Tipo di mediamodel/objmodel/gltf+json
Prima pubblicazione19922015
Pubblicato daWavefront TechnologiesKhronos Group
SpecificaglTF 2.0
LicenzaStandard apertoStandard aperto
Situazione attualeAttualeAttuale
Si apre nel browserNessun browserNessun browser
Valutato al suo postoPLY, STLGLB

Aprire il risultato

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

A che cosa serve ciascun formato

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

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

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

Da OBJ a GLTF: domande frequenti

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

OBJ e GLTF 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 GLTF?

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 GL Transmission Format.

Altro su questi formati