Table of Contents

Erstellen von 3D-Inhalten, die exakt mit der realen Welt übereinstimmen

Dieses Dokument beschreibt, wie Sie virtuelle Objekte exakt an einem bestimmten Ort im realen Raum platzieren können, um sie in einer AR-Erfahrung exakt mit dem realen Raum auszurichten.

Vorbereitung

Anmerkung

Die folgenden Inhalte und Tools gelten nur für den Prozess der Entwicklung von Unity-Anwendungen mit EasyAR Mega.

Wenn Sie Mini-Programme entwickeln, lesen Sie bitte Erstellen und Hochladen von Annotationen mit dem Unity-Editor (Mini-Programm-Entwicklung).

Wenn Sie keine Unity-Anwendung entwickeln, aber die Mega-Mapping-Ergebnisse anzeigen möchten, lesen Sie bitte Vorschau der texturierten 3D-Mesh in der Mega-Bedienungsanleitung.

Wenn Sie keine Unity-Anwendung entwickeln, aber die Lokalisierungswirkung durch Simulation überprüfen möchten, lesen Sie bitte Vorschau des Simulationslaufs in der Mega-Bedienungsanleitung.

Dieser Artikel setzt voraus, dass die folgenden Unity-Pakete bereits in Ihr Projekt importiert wurden:

  • com.easyar.sense
  • com.easyar.mega

Block realdaten

Bei der entwicklung von Mega können verschiedene realdaten zur unterstützung der platzierung von 3D-inhalten verwendet werden:

  • Block-gittermodell

    alt text

  • Panorama (mit raummodell-verdeckung)

    alt text

    Anmerkung

    Einige daten unterstützen keine panoramabilder.

  • LCC 3D gaussian splatting

    alt text

    Anmerkung

    LCC 3D-gaussian-splatting-daten sind nur verfügbar in anwendungsszenarien, in denen die daten mit den domain-geräten erfasst und die kartierung abgeschlossen wurde.

Editor-tool aktivieren

Zuerst müssen Sie im Editor ein Mega Tracking Target hinzufügen, dann das Tracking Target auswählen und auf die Schaltfläche Create Editor Tool klicken.

Tipp

Wenn die Anwendung das Tracking Target lieber über ein Skript als im Editor erstellen soll, können Sie die Platzierung zuerst im Editor durchführen, dann das Tracking Target und/oder seine untergeordneten Objekte aufzeichnen und zur Laufzeit das Tracking Target über das Skript konfigurieren und die untergeordneten Objekte unter dem Tracking Target einbinden.

Überprüfen Sie die Serviceinformationen und verbinden Sie sich mit dem Service.

Wichtig

Vor dem Verbinden müssen Sie die Berechtigungen des API Key überprüfen.

  • Wenn der Typ des Service Block ist, müssen Sie sicherstellen, dass der verwendete API Key die Berechtigung für den Zugriff auf den Service Mega Block sowie den Service SpatialMap hat.
  • Wenn der Typ des Service Landmark ist, müssen Sie sicherstellen, dass der API Key die Berechtigung für den Zugriff auf den Service Mega Landmark hat.

alt text

Wenn die Berechtigungen nicht ausreichen, wird eine Fehlermeldung über das fehlgeschlagene Authentifizierung beim Verbinden des Service angezeigt.

alt text

Wenn die Quelle der target-Daten korrekt konfiguriert ist, können Sie nach einer erfolgreichen Verbindung zum Service das letzte Aktualisierungsdatum der Daten und die Steuerungsoberfläche für die Block-Editor-Daten sehen.

Tipp

Wenn die Quelle der target-Daten leer gelassen wird, können Sie nach einer erfolgreichen Verbindung zum Service eine Liste der Block-Daten im Service sehen. Nach Auswahl des zu verwendenden Blocks gelangen Sie ebenfalls zur Steuerungsoberfläche für die Block-Editor-Daten, und die Quelle der target-Daten wird automatisch ausgefüllt.

Die Daten des Editor-Tools werden unter dem Knoten EasyAR.Mega.EditorTool gespeichert. Das Löschen dieses Knotens entspricht dem Löschen der Daten des Editor-Tools.

Vorsicht

Sie dürfen den Inhalt des Knotens EasyAR.Mega.EditorTool nicht direkt ändern, insbesondere dürfen Sie die Transform dieses Knotens nicht ändern. Andernfalls kann das Editor-Tool nicht ordnungsgemäß funktionieren oder die Position des Inhalts beim Tracking kann falsch angezeigt werden.

Block 模型 laden

Klicken Sie auf das erste Auswahlfeld unter den Blockdaten. Dadurch wird der Ladevorgang der Block-Editor-Daten gestartet. Nach dem Laden können Sie das Mesh des aktuellen Blocks im Scene-Fenster sehen.

Tipp
  • Das Block-Mesh ist mit dem Block-Tracking-Zielraum ausgerichtet. Sie können direkt 3D-Inhalte auf dem Modell platzieren.
  • Das Block-Mesh wechselt die LOD (Level of Detail) basierend auf der Kameraposition. Stellen Sie beim Verwenden eine Internetverbindung her, um Fehlern beim LOD-Wechsel vorzubeugen.
  • Das Block-Mesh wird unter dem Tool-Knoten gespeichert und existiert nur im Editormodus. Es wird nicht in die endgültige App gepackt.

3D-Inhalt unter dem Block-Knoten einfügen

Nach dem Laden des Block-Modells wird der 3D-Inhalt als untergeordneter Knoten unter dem Block-Knoten in der Szene eingefügt.

alt text

Vorsicht
  • 3D-Objekte dürfen nicht unter dem Knoten EasyAR.Mega.EditorTool platziert werden. Dieser Knoten ist nur für Editor-Tools vorgesehen und wird in einigen Fällen automatisch gelöscht oder neu erstellt.
Wichtig
  • 3D-Objekte müssen unter dem Block-Knoten platziert werden, um sicherzustellen, dass die virtuelle Inhalte zur Laufzeit an der richtigen Position gerendert werden.

Präzises Platzieren von 3D-Inhalten

Indem Sie die folgenden Schritte ausführen, können Sie virtuelle Inhalte genau im realen Raum platzieren.

Anhand des Block-Rastermodells platzieren

Im Szenario positionieren und drehen Sie den 3D-Inhalt relativ zum Block-Mesh, bis er sich an der gewünschten Position und in der gewünschten Ausrichtung befindet.

Tipp
  • Nachdem der Editor in den Play-Modus wechselt, ist das Block-Mesh weiterhin verfügbar, wechselt jedoch nicht mehr die LOD basierend auf der Kameraposition.
  • Das Block-Mesh wird unter dem Werkzeugknoten gespeichert und existiert nur im Editormodus. Es wird nicht in die endgültige App gepackt.

[Optional] Platzierung basierend auf Panoramabildern

Durch Klicken auf das Kontrollkästchen Panorama Preview Marker können die Panorama-Markierungen angezeigt werden.

Anmerkung
  • Einige Daten unterstützen keine Panoramabilder.

Durch Klicken auf eine beliebige Panorama-Markierung können Sie Inhalte an dieser Position im Panorama platzieren. Sie können durch Klicken auf verschiedene Panorama-Markierungen das Panorama wechseln, um sicherzustellen, dass die 3D-Inhalte aus allen Blickwinkeln korrekt positioniert sind.

alt text

Tipp
  • Bei der Platzierung von Inhalten mit Panorama-Markierungen bleibt die Verdeckung durch mesh-basierte Raummodelle wirksam.
  • Diese Funktion bleibt auch verfügbar, nachdem der Editor in den Play-Modus wechselt, jedoch kann die Genauigkeit der mesh-basierten Raummodellverdeckung durch die Deaktivierung des LOD-Wechsels beeinträchtigt werden.
  • Panorama-Markierungen und Panoramadaten werden unter dem Werkzeugknoten gespeichert, existieren nur im Editor-Modus und werden nicht in die endgültige Anwendung gepackt.

[Optional] Platzierung basierend auf LCC 3D Gauss-Sprays

Anmerkung

Dieser Abschnitt gilt für den Anwendungsfall nach der Datenerfassung mit einem Qiyue-Gerät und der anschließenden Kartenerstellung. Die Ergebnisse der Kartenerstellung mit anderen Geräten enthalten keine LCC 3DGS-Daten.

Wenn Sie die Funktion LCC 3D Gauss-Sprays (Qiyue LCC) verwendet haben, können Sie die Position des Modells anhand der 3DGS anpassen. Die Verwendung von LCC-Daten finden Sie unter Laden von LCC-Daten und Ausrichtung mit Mesh.

Einfluss von Defekten in Live-Daten auf die Anordnung von Inhalten

Was tun, wenn das geladene Block-Modell nicht horizontal ist?

Wählen Sie im Hierarchy-Panel den Block-Knoten aus, den Sie anpassen möchten. Ändern Sie im Inspector-Panel die Rotation, bis die Ausrichtung des Modells im Unity-Editor korrekt aussieht.

Die Transformation des Block-Knotens im Weltkoordinatensystem wirkt sich nicht auf das lokale Koordinatensystem des Blocks aus und hat folglich keinen Einfluss auf das Renderergebnis des 3D-Inhalts als untergeordnetem Knoten des Blocks. Seine Transformation hat keine Beziehung zum endgültigen Anzeigebild.

Vorsicht

Sie dürfen die Transform von EasyAR.Mega.EditorTool unter dem Block-Knoten nicht ändern. Andernfalls kann es dazu kommen, dass das Editor-Tool nicht richtig funktioniert oder der Inhalt beim Tracking an der falschen Position angezeigt wird.

Was tun, wenn das geladene Block-Modell beschädigte oder fehlende Teile hat?

Beim 3D-Rekonstruktionsprozess können aufgrund unzureichender Abdeckung der Aufnahmeansichten im generierten dichten Modell beschädigte oder fehlende Teile auftreten.

Beschädigte und fehlende Teile

Bei unvollständigen Modellen kann, wenn die Genauigkeit der 3D-Inhaltsausrichtung für die beschädigten/fehlenden Teile nicht sehr hoch sein muss, der 3D-Inhalt durch Klicken auf Panoramamarkierungen und Vergleich mit der Panoramabild platziert werden. Anschließend kann der Effekt durch Klicken auf verschiedene Panoramamarkierungen in der Nähe überprüft werden.

Platzieren über Panoramabild

Wenn die Genauigkeit der 3D-Inhaltsausrichtung für die beschädigten/fehlenden Teile sehr hoch sein muss, muss die Karte durch Inkrementelle Aktualisierung oder Schadlose Vollaktualisierung ergänzt oder aktualisiert werden. Im Allgemeinen bedeutet eine solche Region, dass diese während des Bildaufnahmeprozesses nicht abgedeckt wurde. In solchen Regionen kann sich dies auf die Mega-Positionsbestimmung auswirken, und es reicht nicht aus, den 3D-Inhalt nur im Editor auszurichten.

Nächste Schritte

Verwandte themen