Table of Contents

EasyAR Mega in Unity zur Umsetzung von Occlusion verwenden

Occlusion ist eine Schlüsseltechnologie, um die immersive Integration von virtuellen und realen Inhalten in AR zu verbessern. Dieser Artikel beschreibt, wie Occlusion-Effekte in Unity mit EasyAR Mega umgesetzt werden.

Bevor Sie beginnen

Implementierungsweise von Occlusion

  • Offline-Modellierung: Erstellen Sie im Block-Koordinatensystem 1:1 passende geometry für reale Objekte wie Wände, Säulen oder große Geräte; oder erstellen Sie ein optimiertes Modell durch Zuschneiden und Reduzieren der Faces des Block-Dichtemodells.

  • Ausrichtung zur Laufzeit: Richten Sie zur Laufzeit das Block-Koordinatensystem über cloud localization mit dem realen Raum aus und laden Sie die entsprechende geometry.

  • Materialersetzung: Weisen Sie diesen geometry spezielle Occlusion-Materialien zu.

  • Visueller Effekt: Wenn die GPU andere virtuelle Objekte rendert, werden Pixel verdeckter Teile automatisch verworfen, da sie den depth test nicht bestehen. Dadurch folgen virtuelle Objekte der Occlusion-Logik des realen physischen Raums.

Maskendateien aus Mapping-Ergebnissen verwenden

Führen Sie die folgenden Schritte aus, um die Maskendatei aus dem Mapping-Ergebnis über Mask file download in der Cloud-Localization-Datenbank herunterzuladen, sie als weißes Occlusion-Modell zu verwenden und in die Szene zu importieren. Die Maskendatei kann direkt genutzt oder bei Bedarf zugeschnitten werden.

Anmerkung

Dieser Download-Weg gilt nur für Mapping-Ergebnisse ab Version 9.6.

Maskendatei herunterladen

Nachdem der Block zur Cloud-Localization-Datenbank hinzugefügt wurde, klicken Sie in der Spalte Action der entsprechenden Block-Zeile auf Mask file download.

Download-Einstieg für Maskendatei

Wählen Sie im Popup je nach Bedarf standard precision oder low precision aus und klicken Sie auf die passende Schaltfläche Download, um die Maskendatei im Format glb herunterzuladen.

Maskendatei herunterladen

[Optional] Modell zuschneiden

Die Maskendatei deckt den gesamten Block ab. Wenn diese Abdeckung bereits genügt, kann sie direkt verwendet werden. Wird nur ein Teilbereich benötigt, schneiden Sie das Modell zu.

Öffnen Sie das heruntergeladene Modell in einer Digital-Content-Software, zum Beispiel Blender.

Vor dem Zuschnitt

Schneiden Sie das Modell zu, behalten Sie nur den für Occlusion benötigten Teil und speichern Sie es im Format glb. Position, Rotation und Skalierung bleiben unverändert, damit es nach dem Import in Unity zum Block passt.

Nach dem Zuschnitt

Modell in Unity importieren

Importieren Sie das Modell in Unity und hängen Sie es als Child Node unter den entsprechenden Block-Node in der Szene.

Anmerkung

Für den Import eines glb-Modells in Unity ist das Paket com.unity.cloud.gltfast ab Version 6.8 erforderlich. Installieren oder aktualisieren Sie es über den Package Manager.

Ändern Sie im Inspector das Transform des Occlusion-Modells relativ zum Block-Node:

  • Setzen Sie Position auf (0, 0, 0).
  • Setzen Sie Rotation auf (0, 180, 0).
  • Setzen Sie Scale auf (1, 1, 1).

Danach sollte das Occlusion-Modell mit dem entsprechenden Teil des dichten Block-Modells übereinstimmen.

Occlusion-Modell importieren

Anmerkung

Die aus der Cloud-Localization-Datenbank heruntergeladene Maskendatei verwendet eine andere Koordinatensystemdefinition als Unity. Deshalb muss die Y-Komponente von Rotation auf 180 gesetzt werden.

Occlusion-Material zuweisen

Ändern Sie das Modellmaterial in ein Occlusion-Material. Sie können Unitys eingebautes SpatialMappingOcclusion verwenden.

Material des Occlusion-Modells ändern

Mit EIF-Daten simulieren oder auf einem echten Gerät ausführen

Verwenden Sie EIF-Datensimulation oder ein echtes Gerät, um zu prüfen, ob virtuelle Objekte von den entsprechenden realen Bereichen verdeckt werden.

Geometry als Occlusion verwenden

Führen Sie die folgenden Schritte aus, um in der Szene geometry als Occlusion hinzuzufügen und den Effekt zu überprüfen.

Occlusion geometry platzieren

Verwenden Sie basierend auf dem Dichtemodell des Mega Block eingebaute geometry oder eigene geometry als Occlusion und platzieren Sie sie an der richtigen Position im Block-Koordinatensystem. Place occlusion geometry

[Optional] Geometry-Position anhand des Panoramas feinabstimmen

Fine-tune occlusion according to the panorama

Der geometry ein Occlusion-Material zuweisen

Ändern Sie das Material der geometry in ein Occlusion-Material. Sie können Unitys integriertes SpatialMappingOcclusion verwenden. Fine-tune occlusion according to the panorama

Mit EIF data simulieren oder auf realem Gerät ausführen

Passen Sie die Platzierung des Occlusion-Modells anhand des Ausführungseffekts fein an.

Zugeschnittenes und reduziertes Dichtemodell als Occlusion verwenden

Führen Sie die folgenden Schritte aus, um das exportierte Mega Block-Dichtemodell zuzuschneiden und zu reduzieren, ein weißes Modell für Occlusion zu erhalten und es als Occlusion in die Szene zu importieren.

In Mega Blocks exportieren

Klicken Sie rechts von Mesh auf die Schaltfläche Export, um das Dichtemodell zu exportieren.

Exportoptionen ändern

Achten Sie beim Export auf die Änderung der Exportoptionen.

In der Abbildung ist 1 die LOD-Ebene. Je niedriger die Ebene, desto einfacher das Modell und desto weniger Faces. Wenn Sie höchste Genauigkeit benötigen, wählen Sie die höchste Ebene.

In der Abbildung ist 2 die Option für den Texturexport. Hier wird nur das weiße Modell als Occlusion benötigt, Texturen werden nicht benötigt.

Modell zuschneiden und reduzieren

Schneiden und reduzieren Sie das exportierte Modell in einer Software zur Erstellung digitaler Inhalte, z. B. Blender, und speichern Sie es als glb.

Tipp

Im Beispiel wird Blenders Decimate Modifier verwendet.

Before cropping

Nach Zuschneiden und Reduzierung:

After cropping

Occlusion-Modell in Unity importieren und unter dem Block-Knoten in der Szene einhängen

Import occlusion model

Transform des Modells ändern

Ändern Sie Transform des Modells so, dass Position und Rotation vollständig 0 sind.

Zu diesem Zeitpunkt sollte das weiße Modell für Occlusion zum Dichtemodell passen, da beim Zuschneiden und Reduzieren in der Software zur Erstellung digitaler Inhalte die Definition des Block-Koordinatensystems nicht geändert wurde.

Occlusion model fit

Dem Modell ein Occlusion-Material zuweisen

Ändern Sie das Modellmaterial in ein Occlusion-Material. Sie können Unitys integriertes SpatialMappingOcclusion verwenden.

Replace occlusion model material

Mit EIF data simulieren oder auf realem Gerät ausführen

Verwenden Sie EIF data zur Simulation oder führen Sie es auf einem realen Gerät aus, um den Effekt zu sehen.

Erwarteter Occlusion-Effekt

Der Occlusion-Effekt wird hauptsächlich durch Folgendes beeinflusst:

  • Die Genauigkeit des localization tracking selbst
  • Die Genauigkeit der Modellplatzierung
  • Die Genauigkeit des Modells selbst, wenn es keine einfache geometry ist

Bei localization drift ist eine Abweichung von einigen Zentimetern normal.

Zu viele Faces im Occlusion-Modell können die Leistung leicht beeinträchtigen. Es wird empfohlen, es nur in notwendigen Bereichen zu verwenden und möglichst einfache geometry als Occlusion einzusetzen.

Verwandte Themen