Table of Contents

Preparazione e ottimizzazione del modello 3D

Questo articolo spiega in dettaglio come preparare modelli 3D conformi ai requisiti di EasyAR, coprendo specifiche di formato, strumenti consigliati e risoluzione dei problemi comuni, per aiutare gli sviluppatori a migliorare la percentuale di successo del tracking dalla fonte.

Formato e specifiche del modello

EasyAR 3D Object Tracking supporta solo il formato Wavefront OBJ. Durante l'utilizzo, seguire i seguenti requisiti e specifiche.

Struttura del file del modello

Un modello 3D completo deve contenere i seguenti file:

  • File .obj: dati geometrici del modello (contiene vertici, facce, coordinate UV, ecc.).
  • File .mtl: definizione dei materiali (colore, percorso della texture).
  • Texture: almeno un'immagine in formato JPEG o PNG (risoluzione consigliata da 512×512 a 2048×2048).

Requisiti dei file

  • Tutti i file devono trovarsi nella stessa cartella e utilizzare percorsi relativi (es. texture.jpg). Vietati i percorsi assoluti (es. C:\Models\texture.jpg).
  • I nomi dei file e i percorsi interni non devono contenere spazi. Si consiglia l'uso di caratteri inglesi o numeri.
  • La codifica dei file deve essere UTF-8 (per evitare errori di caricamento dovuti a caratteri illeggibili).

Requisiti minimi per i file OBJ (.obj)

  • Devono contenere vertex
    Vertici geometrici, rappresentati da coordinate \((x, y, z [, w])\). \(w\) è opzionale, predefinito 1.0. I parametri colore dei vertici non sono obbligatori; se forniti, il sistema non li caricherà.
  • Devono contenere texture coordinates
    Coordinate della texture, rappresentate da \((u, v [,w])\). \(w\) è opzionale, predefinito 0. Generalmente, \(u\) e \(v\) dovrebbero avere valori tra 0 e 1. Per valori inferiori a 0 o superiori a 1, il sistema applica per default la modalità REPEAT (ignora la parte intera e crea un pattern di ripetizione infinita, come GL_REPEAT in OpenGL).
  • Devono contenere face
    Elementi della faccia, che devono includere almeno gli indici dei vertici e gli indici delle coordinate della texture. Sono supportate anche strutture poligonali con più di 3 vertici (es. quadrilateri).
  • Devono contenere mtllib
    Riferimento al file materiale. Richiede almeno un file MTL esterno, con percorso relativo (non assoluto).
  • Devono contenere usemtl
    Il nome del materiale referenziato deve corrispondere a quello definito nel file MTL esterno.

Requisiti minimi per i file MTL (.mtl)

  • Un file MTL deve definire almeno un materiale.
  • La texture è obbligatoria.
    Generalmente, basta specificare la texture per l'illuminazione ambientale o diffusa (map_Ka, map_Kd);
    Il percorso della texture deve essere relativo, non assoluto.
  • I parametri opzionali aggiuntivi per le texture non sono obbligatori; se forniti, il sistema non li utilizzerà.

Preparazione del modello

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

  1. Esportare da modelli esistenti
    Usare strumenti professionali come Autodesk Maya / 3ds Max, importare modelli in formato FBX o altri, quindi esportare selezionando "OBJ Export" e assicurandosi che le opzioni "Materials" e "UVs" siano abilitate.

  2. Creare un modello completamente nuovo
    Usare strumenti di modellazione come Autodesk Maya / 3ds Max per creare/disegnare modelli 3D ed esportarli in formato OBJ.

  3. Scansionare oggetti reali e ricostruirli in 3D
    Usare software di modellazione 3D come Autodesk ReCap o Bentley ContextCapture, o scanner laser per ricostruire oggetti reali in 3D ed esportare i risultati in formato OBJ.

Importante

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

Best practice per i modelli

Di seguito sono elencati alcuni problemi ed esempi comuni riscontrati durante la preparazione dei modelli, per una rapida consultazione durante i controlli.

  1. Garantire dettagli testurali ricchi
    Le texture del modello dovrebbero presentare dettagli testurali abbondanti.

    Figura sinistra: rilevabile e tracciabile da EasyAR. Figura destra: impossibile da rilevare/tracciare, texture insufficienti.

  2. Forma del modello
    I modelli supportano forme diverse, ma la struttura principale deve essere convessa.

    Entrambi gli oggetti possono essere rilevati e tracciati da EasyAR.

  3. Verificare i percorsi di riferimento nei file
    I percorsi referenziati nei file del modello devono essere relativi, non assoluti.

    Il modello a destra non può essere caricato perché EasyAR non trova i file con percorso assoluto.

    I percorsi referenziati nei file del modello non devono contenere spazi o caratteri speciali.

    Il modello a destra non può essere caricato perché il percorso referenziato contiene spazi.

  1. Controlla il formato di codifica del file
    I file del modello dovrebbero usare la codifica UTF-8.

    Il modello a destra non può essere caricato a causa di errori di decodifica durante la lettura, causati da problemi di codifica del file.

  2. Controlla i vettori normali del modello
    La direzione positiva dei vettori normali delle facce del modello dovrebbe seguire la regola della mano destra.

    Nel secondo cubo, le facce ombreggiate hanno vettori normali orientati negativamente. Queste facce in EasyAR vengono trattate come non visibili. Se osservate dall'interno del modello, apparirebbero come nel terzo cubo.
    Il modello dovrebbe evitare qualsiasi faccia con vettori normali orientati negativamente.

  3. Numero di facce del modello
    Il numero di facce del modello dovrebbe essere il più basso possibile garantendo comunque la forma geometrica dell'oggetto. Solitamente, non dovrebbe superare i 100.000 triangoli. Un eccessivo numero di facce causa:

    • Tempi di caricamento del modello troppo lunghi, influenzando negativamente l'esperienza utente all'avvio dell'applicazione.
    • Un aumento del calcolo per la proiezione della texture sulle facce, influenzando il frame rate dell'applicazione durante il tracciamento.

La qualità del modello 3D determina direttamente la percentuale di successo del tracking. Gli sviluppatori devono seguire rigorosamente le specifiche di formato, ottimizzare i dettagli delle texture e garantire che i formati dei file siano corretti.