Table of Contents

Preparazione e ottimizzazione dei modelli 3D

Questo articolo spiega in dettaglio come preparare modelli 3D che soddisfino i requisiti EasyAR, includendo specifiche di formato, tool consigliati e troubleshooting comune, aiutando gli sviluppatori a migliorare il successo del tracking fin dall'origine.

Formato e specifiche del modello

EasyAR 3D object tracking supporta solo il formato Wavefront OBJ. Durante l'uso, seguire i requisiti e le specifiche seguenti.

Struttura dei file del modello

Un modello 3D completo deve includere i seguenti file:

  • File .obj: dati geometrici del modello, inclusi vertici, face, coordinate UV e così via.
  • File .mtl: definizioni dei materiali, inclusi colori e path delle texture map.
  • Texture map: almeno un'immagine JPEG o PNG. Si consiglia una risoluzione da 512×512 a 2048×2048.

Requisiti dei file

  • Tutti i file devono essere collocati nella stessa cartella e referenziati con path relativi, ad esempio texture.jpg. I path assoluti come C:\Models\texture.jpg non sono consentiti.
  • I nomi dei file e i path all'interno dei file non devono contenere spazi. Si consiglia di usare lettere inglesi o numeri.
  • La codifica dei file deve essere UTF-8 per evitare errori di caricamento causati da testo corrotto.

Requisiti minimi per i file OBJ (.obj)

  • Deve contenere vertex
    Vertici geometrici, rappresentati da coordinate \((x, y, z [, w])\). \(w\) è opzionale e il valore predefinito è 1.0. I parametri di colore dei vertici non sono necessari; se forniti, il sistema non li caricherà.
  • Deve contenere texture coordinates
    Coordinate texture, rappresentate da coordinate \((u, v [,w])\). \(w\) è opzionale e il valore predefinito è 0. In generale, i valori di \(u\) e \(v\) dovrebbero essere compresi tra 0 e 1. Per valori minori di 0 o maggiori di 1, il sistema li elabora per impostazione predefinita in modalità REPEAT: la parte intera della coordinata viene ignorata, quindi viene costruito un pattern di ripetizione infinita, uguale all'elaborazione GL_REPEAT in OpenGL.
  • Deve contenere face
    Gli elementi face devono includere almeno gli indici dei vertici e gli indici delle coordinate texture. Sono supportate anche strutture face poligonali con più di 3 vertici, come i quadrilateri.
  • Deve contenere mtllib
    Riferimento a un file materiale. Deve essere specificato almeno un file materiale MTL esterno, e il path del file deve essere relativo, non assoluto.
  • Deve contenere usemtl
    Il materiale referenziato dagli elementi del modello deve specificare un nome materiale, e questo nome deve corrispondere al nome del materiale definito nel file materiale MTL esterno.

Requisiti minimi per i file MTL (.mtl)

  • Un file MTL dovrebbe definire almeno un materiale.
  • Le texture map sono obbligatorie.
    Di solito è sufficiente specificare la texture map ambient o diffuse (map_Ka, map_Kd);
    Il path della texture map deve essere relativo, non assoluto.
  • Gli altri parametri opzionali della texture map non sono necessari; se forniti, il sistema non li userà.

Preparazione del modello

È possibile preparare file modello OBJ conformi alle specifiche in diversi modi.

  1. Esportare da un modello esistente
    Usare tool professionali come Autodesk Maya / 3ds Max per importare un modello FBX o di altro formato esistente, selezionare “OBJ Export” durante l'esportazione e assicurarsi che le opzioni “Materials” e “UVs” siano abilitate.

  2. Creare un nuovo modello
    Usare tool di modellazione come Autodesk Maya / 3ds Max per creare o disegnare un modello 3D e generarlo in formato OBJ.

  3. Scansionare un oggetto reale ed eseguire ricostruzione 3D
    Usare software di scansione e modellazione 3D come Autodesk ReCap o Bentley ContextCapture, oppure uno scanner laser, per eseguire la ricostruzione 3D di un oggetto reale, quindi esportare il risultato in formato OBJ.

Importante

Le texture del modello devono riprodurre accuratamente le caratteristiche visive dell'oggetto reale, altrimenti recognition e tracking non funzioneranno correttamente.

Best practice per il modello

Di seguito sono elencati alcuni problemi ed esempi comuni incontrati durante la preparazione dei modelli, come riferimento rapido per il controllo.

  1. Assicurare dettagli texture ricchi
    La texture del modello deve avere dettagli texture ricchi.

    Immagine di riferimento a sinistra: puo essere rilevata e tracciata da EasyAR. Immagine di riferimento a destra: non puo essere rilevata o tracciata perche la texture e troppo scarsa.

  2. Forma del modello
    Il modello supporta forme diverse, ma la struttura principale deve essere convex.

    Entrambi gli oggetti possono essere rilevati e tracciati da EasyAR.

  3. Controllare i path referenziati nel file
    I path referenziati nel file del modello devono essere relative paths, non absolute paths.

    Il modello a destra non puo essere caricato perche EasyAR non riesce a trovare il file che usa absolute path.

    I path referenziati nel file del modello non possono contenere spazi o caratteri speciali.

    Il modello a destra non puo essere caricato perche il path referenziato contiene spazi.

  1. Controllare il formato di encoding del file
    I file del modello devono usare encoding UTF-8.

    Il modello a destra non può essere caricato perché l'encoding del file causa un decoding error durante la lettura.

  2. Controllare le normali del modello
    La direzione positiva del normal vector delle facce del modello deve seguire la right-hand rule.

    I normal vectors delle facce ombreggiate nel secondo cubo hanno orientamento negativo. Queste facce vengono trattate come invisible faces in EasyAR. Se viste dall'interno del modello, appariranno come il terzo cubo.
    Il modello deve evitare tutte le facce con orientamento normale negativo.

  3. Numero di facce del modello
    Il numero di facce del modello deve essere il più basso possibile mantenendo la forma geometrica dell'oggetto e di solito non deve superare 100.000 triangle faces. Troppe facce possono causare:

    • Tempo di caricamento del modello eccessivamente lungo, influenzando la user experience all'avvio dell'applicazione
    • Aumento dei calcoli per face texture projection, influenzando il frame rate dell'applicazione durante tracking

La qualità del modello 3D determina direttamente il successo del tracking. Gli sviluppatori devono seguire rigorosamente le specifiche di formato, concentrarsi sull'ottimizzazione dei dettagli texture e assicurarsi che il formato dei file sia corretto.