EasyAR Unity Headset-Erweiterungspaket
Dieses Dokument beschreibt das Konzept, die Fähigkeiten und Grenzen sowie das Hintergrundwissen, das für die Erstellung eines Headset-Erweiterungspakets erforderlich ist.
Vor dem Start
- Lesen Sie EasyAR-Unterstützung für Headsets, um mehr über die von EasyAR unterstützten Headset-Typen und die auf Headsets verfügbaren Funktionen zu erfahren.
- Lesen Sie EasyAR-Headset-Unterstützung in Unity, um die Gesamtarchitektur der EasyAR-Headset-Unterstützung in Unity zu verstehen.
Was ist das EasyAR Unity Headset-Erweiterungspaket?
Das EasyAR Unity Headset-Erweiterungspaket ist ein Unity-Paket mit einer Reihe von Code und Beispielen, die Ihnen helfen, die Funktionen von EasyAR Sense auf Ihrem Headset-Gerät zu verwenden. Mit diesem Erweiterungspaket können Sie die meisten EasyAR-Sense-Funktionen, wie z. B. Bildtracking und dichte Raumkarten, in Ihr Gerät integrieren und so die leistungsfähigen AR-Funktionen von EasyAR nutzen.
Die Verwendung des EasyAR Unity Headset-Erweiterungspakets ist eine von mehreren Möglichkeiten, die EasyAR-Headset-Unterstützung zu realisieren. Die folgende Abbildung zeigt die Gesamtarchitektur von EasyAR in Unity und die Position des Headset-Erweiterungspakets darin.
block
columns 4
block:groupApp:4
block:groupAppWrapper
space
App1["EasyAR + Device A<br>App"]
space
App2["EasyAR<br>App"]
space
App3["EasyAR + Device B<br>App"]
end
end
block:groupSensePluginExtension
columns 1
SensePluginExtension["EasyAR Sense Unity Plugin<br>Extension for Device A"]
space
end
block:groupSensePlugin
columns 1
SensePlugin["EasyAR Sense Unity Plugin"]
space
end
block:groupXRI
columns 1
XRI["XR Interaction Toolkit"]
space
end
block:groupARF
columns 1
ARF["AR Foundation"]
space
end
block:groupDeviceAUnity
columns 1
DeviceAUnity["Device A<br>Unity SDK"]
space
end
block:groupSense
columns 1
Sense["EasyAR Sense"]
block:groupSenseWrapper
MDeviceB["Device B<br>CameraDevice"]
Others["..."]
end
end
block:groupXRSubsystem:2
columns 1
XRSubsystem["XR Subsystems"]
XRSDK["Unity XR SDK"]
end
block:groupSystem:4
columns 1
System["Native Library"]
block:groupSystemWrapper
space
DeviceA["Device A<br> Library "]
space
space
DeviceB["Device B<br> Library "]
space
end
end
SensePluginExtension --> App1
SensePlugin --> App1
SensePlugin --> App2
SensePlugin --> App3
ARF --> App3
XRI --> App1
XRI --> App3
groupSense --> SensePlugin
groupDeviceAUnity --> SensePluginExtension
SensePlugin --> SensePluginExtension
DeviceA --> groupDeviceAUnity
DeviceA --> XRSDK
XRSubsystem --> ARF
XRSubsystem --> XRI
DeviceB --> MDeviceB
DeviceB --> XRSDK
style groupApp fill:none,stroke:none,stroke-width:0px
style groupAppWrapper fill:none,stroke:none,stroke-width:0px
style groupSensePlugin fill:none,stroke:none,stroke-width:0px
style groupARF fill:none,stroke:none,stroke-width:0px
style groupXRI fill:none,stroke:none,stroke-width:0px
style DeviceAUnity fill:none,stroke:none,stroke-width:0px
style Sense fill:none,stroke:none,stroke-width:0px,color
style groupSenseWrapper fill:none,stroke:none,stroke-width:0px
style XRSubsystem fill:none,stroke:none,stroke-width:0px
style System fill:none,stroke:none,stroke-width:0px
style groupSystemWrapper fill:none,stroke:none,stroke-width:0px
style groupSensePluginExtension fill:none,stroke:none,stroke-width:0px
classDef EasyAR fill:#6e6ce6,stroke:#333,color:#fff
class SensePluginExtension EasyAR
Die Abbildung zeigt zwei typische Unterstützungswege für Headsets: die Anbindung des Geräte-SDKs über das Unity-Headset-Erweiterungspaket (Device A) und die direkte Anbindung des Geräte-SDKs in der EasyAR-Sense-Bibliothek (Device B). Dieses Dokument beschreibt hauptsächlich den ersten Weg.
Kann ich mein eigenes Headset-Erweiterungspaket erstellen?
Derzeit gibt es in der AR/VR/MR/XR-Branche noch keine vollständig einheitliche Schnittstellenlösung. OpenXR ist zwar ein guter Kandidat, aber die Entwicklung der Spezifikation und die industriellen Implementierungen brauchen noch Zeit. Deshalb ist es normalerweise nicht einfach, ein handelsübliches Gerät direkt mit EasyAR auszuführen, da sehr wahrscheinlich Daten-Schnittstellen fehlen. Mit der Weiterentwicklung der Branche können auch neue Geräte gute Schnittstellenunterstützung bieten. So hat Apple 2024 beispielsweise die Schnittstellen für Vision Pro geöffnet, und diese reichen bereits aus, um EasyAR auszuführen. Die Nutzung erfordert aber weiterhin Fachwissen.
Wenn Sie sich nicht sicher sind, empfehlen wir, den Hardwarehersteller oder den EasyAR-Vertrieb zu kontaktieren, um die entsprechende Geräteunterstützung zu erhalten.
Wenn Sie ein Hardwarehersteller sind und EasyAR-Funktionen auf Ihrem Gerät unterstützen möchten, können Sie die folgenden Dokumente als Grundlage verwenden, um ein Headset-Erweiterungspaket zu erstellen und so die meisten EasyAR-Funktionen auf Ihrem Gerät lauffähig zu machen. Dieses Dokument liefert Daten- und Schnittstellenspezifikationen, schränkt aber die Implementierungsdetails nicht ein. Jede Implementierungsweise oder Schnittstellendefinition kann besprochen werden. Bitte kontaktieren Sie uns über die Vertriebswege.
Die in diesem Dokument behandelte Hardware sollte selbst Bewegungsverfolgung oder SLAM unterstützen. EasyAR-Funktionen müssen auf einer guten Geräteverfolgung aufbauen. Es wird normalerweise nicht empfohlen, die Geräteverfolgung mit EasyAR-Funktionen verbessern zu wollen, da dies zu einer zyklischen Abhängigkeit führt und die Fehler theoretisch vergrößert und das Gesamtsystem instabil machen kann. Wenn das Gerät selbst keine Bewegungsverfolgung besitzt, ist dieses Dokument dafür nicht zuständig. Bei Bedarf können Sie sich über die Vertriebswege mit uns abstimmen.
Fähigkeiten und Grenzen des Headset-Erweiterungspakets
Das Ziel des Headset-Erweiterungspakets ist es, die meisten EasyAR-Sense-Funktionen auf Ihrem Gerät lauffähig zu machen. Um dieses Ziel zu erreichen, müssen Sie die Grenzen des Pakets verstehen.
Enthaltene Inhalte
Die Erweiterung, die Sie implementieren, ist:
- Eine Reihe von Code, die Custom Camera verwendet, um Daten aus Ihrer Geräte-API zu erfassen und an
EasyAR Sensezu senden. - In Unity verwendet die Headset-Erweiterung External Frame Source und einen Datenfluss, der von
EasyAR Sense Unity Plugindefiniert wird, um die Entwicklung der Custom Camera zu vereinfachen. - In Unity ist die Headset-Erweiterung ein Unity-Paket mit Laufzeitskripten, Editor-Skripten und einem erweiterten Sample, das Sie oder EasyAR an nachgelagerte Nutzer verteilen können.
Tipp
Wenn Sie die Integrationsdetails nicht nach außen geben möchten, können Sie dies mit EasyAR besprechen. Eine direkte Anbindung über eine C-Schnittstelle innerhalb von EasyAR Sense ist möglich und hat bereits Vorläufer.
Bei der Implementierung können Sie möglicherweise:
- das Schnittstellendesign und die interne Implementierung Ihres SDKs ändern
- mit Ihrem Team über die Datengewinnung und Nutzung diskutieren
- viel Zeit mit der Prüfung der Datenkorrektheit verbringen, statt Code zu schreiben
Nach Abschluss der Erweiterung werden Sie feststellen:
- Die meisten
EasyAR Sense-Funktionen sind auf Ihrem Gerät nutzbar und verwenden die Bewegungsverfolgung des Geräts. - Die in
EasyAR Senseunterstützten EasyAR-Cloud-Dienste sind auf Ihrem Gerät nutzbar. - Es kann nur die EasyAR-XR-Lizenz verwendet werden. Personal-, Professional- und Classic-Lizenzen können auf Ihrem Gerät nicht verwendet werden.
- Alle Lizenzbeschränkungen von EasyAR beim Einsatz der Custom Camera gelten auf Ihrem Gerät in derselben Weise.
Nicht enthaltene Inhalte
Die Erweiterung kann nicht unabhängig von EasyAR Sense verwendet werden:
- Sie läuft nicht eigenständig. Als Abhängigkeit wird auch
EasyAR Sensebenötigt. In Unity mussEasyAR Sense Unity Pluginverwendet werden. - Sie ruft nicht direkt die APIs der EasyAR-Cloud-Dienste auf, zum Beispiel den EasyAR-Mega-Lokalisierungsdienst. Diese Aufrufe werden intern in
EasyAR Senseausgeführt. - In Unity ruft sie die Schnittstellen von AR-Funktionen, zum Beispiel Bildtracking, nicht direkt auf. Diese werden innerhalb von
EasyAR Sense Unity Pluginausgeführt. - In Unity verändert sie nicht die
transformvon Objekten oder Tracking-Zielen in der Szene. Das geschieht innerhalb vonEasyAR Sense Unity Plugin.
Die Erweiterung kann nicht unabhängig vom SDK Ihres Geräts verwendet werden:
- In Unity verändert die Headset-Erweiterung oder
EasyAR Sense Unity Pluginnicht dietransformder Kamera in der Szene. Das muss durch Ihr Geräte-SDK oder einen davon abhängigen Pfad erfolgen.
Einige EasyAR-Funktionen sind über die Headset-Erweiterung weiterhin nicht nutzbar:
- Oberflächen-Tracking ist nicht verfügbar.
- Das eigene Bewegungsverfolgungssystem von EasyAR ist nicht verfügbar.
- Ebenenerkennung, ein Teil der EasyAR-Bewegungsverfolgung, ist nicht verfügbar.
Wie verwende ich Mega auf meinem Gerät?
Die Ausführung von Mega auf dem Gerät ist für viele Nutzer ein wichtiges Thema. In Unity ist der Mega-Dienst ein Funktionsmodul, das auf vielen Grundfunktionen von EasyAR Sense aufbaut. Wenn Ihr Gerät EasyAR Sense vollständig unterstützt, wird auch Mega unterstützt.
Im Allgemeinen wird nicht empfohlen, gleich zu Beginn ein Mega-Sample direkt auf dem Gerät auszuführen, um die Unterstützung zu prüfen. Mega nutzt alle Eingabedaten gemeinsam und ist bei deren Fehlern relativ tolerant. Ein direkt ausgeführtes Mega-Sample kann daher leicht wegen nicht zusammenpassender Schnittstellen oder schlechter Datenqualität ein unbrauchbares Ergebnis liefern, ohne dass klar ist, wo das Problem liegt. Das erschwert die spätere Fehlersuche erheblich.
Wichtig
Der Mega-Dienst stellt gewisse Anforderungen an die Bewegungsverfolgung des Geräts. Wenn die Bewegungsverfolgung schlecht ist, leidet auch die Mega-Qualität. In großen AR-Szenen muss außerdem besonders auf Unterschiede zwischen Innen- und Außenbereichen geachtet werden.
Wichtig
Mega dient typischerweise großen Räumen. Daher sollten Sie der Anzeige von weit entfernten Objekten sowie Objekten außerhalb des Blickzentrums und bei Kopfbewegungen besondere Aufmerksamkeit schenken. Wenn das Anzeigesystem des Geräts größere Fehler aufweist, wirkt es für den Nutzer so, als würden virtuelle Objekte nicht korrekt mit realen Objekten übereinstimmen, selbst wenn Mega selbst korrekt läuft.
Benötigtes Hintergrundwissen und Teamaufstellung
Die Erstellung eines Headset-Erweiterungspakets ist keine einfache Aufgabe. Sie erfordert, dass Sie und Ihr Team in mehreren Bereichen tiefgehend arbeiten. In der Regel sind für eine Headset-Erweiterung neben Unity-Entwicklung auch weitere Teammitglieder außerhalb der Unity-Entwicklung nötig. Da Standards fehlen, reicht eine reine Änderung auf der 3D-Engine-Ebene normalerweise nicht aus. Es wird empfohlen, Systemingenieure und SDK-Entwickler schon ab dem ersten Tag einzubinden.
Für die Entwicklung von AR/VR-Geräten ist Fachwissen erforderlich. Entsprechend benötigen Sie oder Ihr Team beim Betrieb und der Validierung von EasyAR Sense Kenntnisse in den folgenden Bereichen:
- Physische Struktur und Render-System Ihres Geräts
- Kamerasystem-Geometrie
- SDK-Entwicklung
- Allgemeine Android-Debug-Fähigkeiten, z. B. adb (Festlandchina, international)
Wenn Sie mit Unity arbeiten, sollten Sie außerdem Folgendes kennen:
- Grundlagen der Unity-Entwicklung und Paketnutzung
- Unity-Paketentwicklung
- Grundlagen von C#, einschließlich IDisposable
Außerdem helfen Ihnen Kenntnisse in diesen Bereichen, das System besser zu verstehen, insbesondere wie die richtigen Daten an EasyAR gesendet werden:
- Android-Entwicklung (Festlandchina, international)
- Computergestützte Geometrie und Vision, insbesondere Bildabgleich und 3D-Rekonstruktion
Nächste Schritte
In den folgenden Artikeln erfahren Sie den vollständigen Ablauf zur Erstellung eines Headset-Erweiterungspakets:
- EasyAR auf Headsets unterstützen erklärt, wie Sie mithilfe einer Vorlage ein neues Headset-Erweiterungspaket erstellen und die grundlegende Input-Erweiterung entwickeln
- Bring-up ausführen erklärt, wie Sie die Korrektheit der Input-Erweiterung auf dem Gerät prüfen
- Erweiterungspaket veröffentlichen erklärt, wie Sie das Headset-Erweiterungspaket verpacken und an nachgelagerte Nutzer verteilen