Verdeckung mit EasyAR Mega in Unity umsetzen
Verdeckung (Occlusion) ist eine Schlüsseltechnologie zur Verbesserung des Immersionsgefühls bei der Verschmelzung von AR und Realität. Dieser Artikel erklärt, wie Sie mit EasyAR Mega in Unity Verdeckungseffekte erzielen.
Voraussetzungen
- Absolvieren Sie die Schnellstartanleitung für EasyAR Mega Unity-Beispiele.
- Sie sollten in der Lage sein, mit der realen Welt ausgerichtete Inhalte zu erstellen.
Implementierungsmethoden für Verdeckung
Offline-Modellierung: Erstellen Sie im Block-Koordinatensystem geometrische Objekte, die 1:1 mit realen Objekten (wie Wänden, Säulen oder großen Geräten) übereinstimmen. Alternativ können Sie durch Beschneiden und Reduzieren der Polygonanzahl von Block-Dichtemodellen optimierte Modelle erhalten.
Laufzeitausrichtung: Richten Sie das Block-Koordinatensystem zur Laufzeit über Cloud-Lokalisierung mit dem realen Raum aus und laden Sie die entsprechenden Geometrien.
Materialaustausch: Weisen Sie diesen Geometrien spezielle Verdeckungsmaterialien zu.
Visuelle Effekte: Wenn die GPU virtuelle Objekte rendert, werden verdeckte Pixel automatisch durch den Depth-Test entfernt. Dadurch folgen virtuelle Objekte der Verdeckungslogik des physischen Raums.
Verwendung von Geometrien als Verdeckung
Folgen Sie diesen Schritten, um Verdeckungsgeometrien zur Szene hinzuzufügen und deren Wirkung zu überprüfen.
Platzieren der Verdeckungsgeometrien
Platzieren Sie integrierte oder selbst erstellte Geometrien als Verdeckung an der korrekten Position im Block-Koordinatensystem, basierend auf dem Mega Block-Dichtemodell.

[Optional] Feinjustierung basierend auf Panoramabildern

Zuweisen von Verdeckungsmaterialien
Ändern Sie das Material der Geometrie zu einem Verdeckungsmaterial, z.B. Unitys SpatialMappingOcculusion.

Simulation mit EIF-Daten oder Ausführung auf dem Gerät
Passen Sie die Platzierung des Verdeckungsmodells basierend auf dem Ergebnis an.
Verwendung von beschnittenen und reduzierten Dichtemodellen als Verdeckung
Folgen Sie diesen Schritten, um ein beschnittenes und polygonreduziertes Mega Block-Dichtemodell als Verdeckung zu importieren.
Export in Mega Blocks
Wählen Sie im Inspector-Bereich unter Mega Blocks die Exportfunktion.

Exportoptionen anpassen
Passen Sie die Exportoptionen wie folgt an:

Nummer 1 im Bild zeigt die LOD-Stufe. Niedrigere Stufen bedeuten einfachere Modelle mit weniger Polygonen. Für höchste Präzision wählen Sie Stufe 2, für weniger Präzision bei reduzierter Polygonanzahl Stufe 1 oder 0.
Nummer 2 im Bild ist die Option zum Exportieren von Texturen. Da wir nur ein Weißmodell für die Verdeckung benötigen, sind keine Texturen erforderlich.
Modell beschneiden und Polygonanzahl reduzieren
Bearbeiten Sie das exportierte Modell in einer 3D-Software (z.B. Blender): Schneiden Sie es zu, reduzieren Sie die Polygone und speichern Sie es als Glb.
Tipp
Beispiel: Verwenden Sie Blenders "Decimate Modifier".

Nach Beschneidung und Polygonreduktion:

Verdeckungsmodell in Unity importieren und unter Block-Node platzieren

Transform anpassen
Setzen Sie Position und Rotation des Modells auf 0.
Das Verdeckungsmodell sollte nun mit dem Dichtemodell übereinstimmen, da das Block-Koordinatensystem bei der Bearbeitung beibehalten wurde.

Verdeckungsmaterial zuweisen
Weisen Sie ein Verdeckungsmaterial zu (z.B. Unitys SpatialMappingOcculusion).

Simulation mit EIF-Daten oder Ausführung auf dem Gerät
Testen Sie das Ergebnis in der Simulation oder auf einem Gerät.
Erwartete Verdeckungseffekte
Die Verdeckungsqualität wird beeinflusst durch:
- Präzision der Lokalisierung
- Genauigkeit der Modellplatzierung
- Modellgenauigkeit (bei komplexen Geometrien)
Abweichungen im Zentimeterbereich bei Drift sind normal.
Hohe Polygonanzahl beeinträchtigt die Leistung. Verwenden Sie Verdeckung nur in notwendigen Bereichen und bevorzugen Sie einfache Geometrien.