Table of Contents

Vorbereitung und Optimierung von 3D-Modellen

Dieser Artikel erklärt ausführlich, wie 3D-Modelle vorbereitet werden, die den EasyAR-Anforderungen entsprechen, einschließlich Formatspezifikationen, empfohlenen Tools und häufiger Fehlerbehebung, damit Entwickler die Erfolgsrate des tracking von Anfang an verbessern können.

Modellformat und Spezifikationen

EasyAR 3D object tracking unterstützt nur das Format Wavefront OBJ. Beachten Sie bei der Verwendung die folgenden Anforderungen und Spezifikationen.

Modelldateistruktur

Ein vollständiges 3D-Modell muss die folgenden Dateien enthalten:

  • .obj-Datei: Geometrische Modelldaten, einschließlich Vertices, Faces, UV-Koordinaten usw.
  • .mtl-Datei: Materialdefinitionen, einschließlich Farben und Pfaden zu texture maps.
  • Texture maps: Mindestens ein JPEG- oder PNG-Bild. Eine Auflösung von 512×512 bis 2048×2048 wird empfohlen.

Dateianforderungen

  • Alle Dateien müssen sich im gleichen Ordner befinden und mit relativen Pfaden wie texture.jpg referenziert werden. Absolute Pfade wie C:\Models\texture.jpg sind nicht erlaubt.
  • Dateinamen und Pfade innerhalb der Dateien dürfen keine Leerzeichen enthalten. Englische Buchstaben oder Zahlen werden empfohlen.
  • Die Dateicodierung muss UTF-8 sein, um Ladefehler durch fehlerhafte Zeichen zu vermeiden.

Mindestanforderungen für OBJ-Dateien (.obj)

  • Muss vertex enthalten
    Geometrische Vertices, dargestellt durch Koordinaten \((x, y, z [, w])\). \(w\) ist optional und standardmäßig 1.0. Farbparameter von Vertices sind nicht erforderlich; wenn sie angegeben werden, lädt das System sie nicht.
  • Muss texture coordinates enthalten
    Texturkoordinaten, dargestellt durch Koordinaten \((u, v [,w])\). \(w\) ist optional und standardmäßig 0. Im Allgemeinen sollten die Werte von \(u\) und \(v\) zwischen 0 und 1 liegen. Für Werte kleiner als 0 oder größer als 1 verarbeitet das System sie standardmäßig im Modus REPEAT: Der ganzzahlige Teil der Koordinate wird ignoriert, dann wird ein unendlich wiederholtes Muster erstellt, genauso wie die Verarbeitung GL_REPEAT in OpenGL.
  • Muss face enthalten
    Face-Elemente müssen mindestens Vertex-Indizes und Texturkoordinaten-Indizes enthalten. Polygonale Face-Strukturen mit mehr als 3 Vertices, etwa Vierecke, werden ebenfalls unterstützt.
  • Muss mtllib enthalten
    Referenz auf eine Materialdatei. Mindestens eine externe MTL-Materialdatei muss angegeben werden, und der Dateipfad muss relativ, nicht absolut sein.
  • Muss usemtl enthalten
    Das von Modellelementen referenzierte Material muss einen Materialnamen angeben, und dieser Materialname muss mit dem in der externen MTL-Materialdatei definierten Materialnamen übereinstimmen.

Mindestanforderungen für MTL-Dateien (.mtl)

  • Eine MTL-Datei sollte mindestens ein Material definieren.
  • Texture maps sind erforderlich.
    Normalerweise muss nur die ambient- oder diffuse-texture map (map_Ka, map_Kd) angegeben werden;
    Der Pfad der texture map muss relativ, nicht absolut sein.
  • Andere optionale Parameter der texture map sind nicht erforderlich; wenn sie angegeben werden, verwendet das System sie nicht.

Modellvorbereitung

Sie können OBJ-Modelldateien, die den Spezifikationen entsprechen, auf verschiedene Weise vorbereiten.

  1. Aus einem vorhandenen Modell exportieren
    Verwenden Sie professionelle Tools wie Autodesk Maya / 3ds Max, um ein vorhandenes FBX- oder anderes Modellformat zu importieren, wählen Sie beim Export “OBJ Export” und stellen Sie sicher, dass die Optionen “Materials” und “UVs” aktiviert sind.

  2. Ein neues Modell erstellen
    Verwenden Sie Modellierungstools wie Autodesk Maya / 3ds Max, um ein 3D-Modell zu erstellen oder zu zeichnen und es im OBJ-Format auszugeben.

  3. Ein reales Objekt scannen und 3D-Rekonstruktion durchführen
    Verwenden Sie 3D-Scan- und Modellierungssoftware wie Autodesk ReCap oder Bentley ContextCapture oder einen Laserscanner, um ein reales Objekt in 3D zu rekonstruieren, und exportieren Sie das Ergebnis anschließend im OBJ-Format.

Wichtig

Modelltexturen müssen die visuellen Merkmale des realen Objekts genau wiedergeben, andernfalls funktionieren recognition und tracking nicht ordnungsgemäß.

Best Practices für Modelle

Im Folgenden sind häufige Probleme und Beispiele aufgeführt, die bei der Modellvorbereitung auftreten, als schnelle Referenz zur Prüfung.

  1. Ausreichend detaillierte Texturen sicherstellen
    Die Textur des Modells sollte reichhaltige Texturdetails besitzen.

    Referenzbild links: kann von EasyAR erkannt und verfolgt werden. Referenzbild rechts: kann nicht erkannt oder verfolgt werden, weil zu wenig Textur vorhanden ist.

  2. Form des Modells
    Modelle unterstützen unterschiedliche Formen, aber die Hauptstruktur sollte convex sein.

    Beide Objekte können von EasyAR erkannt und verfolgt werden.

  3. Referenzpfade in der Datei prüfen
    Die in der Modelldatei referenzierten Pfade müssen relative paths sein, keine absolute paths.

    Das Modell auf der rechten Seite kann nicht geladen werden, weil EasyAR die Datei mit absolute path nicht finden kann.

    Die in der Modelldatei referenzierten Pfade dürfen keine Leerzeichen oder Sonderzeichen enthalten.

    Das Modell auf der rechten Seite kann nicht geladen werden, weil der referenzierte Pfad Leerzeichen enthält.

  1. Dateicodierungsformat prüfen
    Modelldateien sollten UTF-8-Codierung verwenden.

    Das Modell rechts kann nicht geladen werden, weil seine Dateicodierung beim Lesen einen decoding error verursacht.

  2. Modellnormalen prüfen
    Die positive Richtung des normal vector der Modellflächen sollte der right-hand rule folgen.

    Die normal vectors der schattierten Flächen im zweiten Würfel haben eine negative Orientierung. Solche Flächen werden in EasyAR als invisible faces behandelt. Von innen betrachtet sieht das Modell wie der dritte Würfel aus.
    Das Modell sollte alle Flächen mit negativer Normalenorientierung vermeiden.

  3. Anzahl der Modellflächen
    Die Anzahl der Modellflächen sollte bei Wahrung der geometrischen Form des Objekts so gering wie möglich sein und normalerweise 100.000 triangle faces nicht überschreiten. Zu viele Flächen können verursachen:

    • Zu lange Ladezeit des Modells, was die user experience beim Start der Anwendung beeinträchtigt
    • Erhöhten Rechenaufwand für face texture projection, was die frame rate der Anwendung während tracking beeinträchtigt

Die Qualität des 3D-Modells bestimmt direkt den Erfolg des tracking. Entwickler müssen die Formatspezifikationen strikt einhalten, Texturdetails gezielt optimieren und sicherstellen, dass das Dateiformat korrekt ist.