Koordinatensysteme
Im Kern platzieren Mixed Reality-Apps Hologramme in Ihrer Welt, die wie reale Objekte aussehen und klingen. Dazu gehört die genaue Positionierung und Ausrichtung dieser Hologramme an sinnvollen Orten in der Welt, unabhängig davon, ob die Welt ihr physischer Raum oder ein von Ihnen geschaffener virtueller Bereich ist. Windows bietet verschiedene reale Koordinatensysteme zum Ausdrücken von Geometrien– diese werden als räumliche Koordinatensysteme bezeichnet. Sie können diese Systeme verwenden, um die Position des Hologramms, die Ausrichtung, den Blickstrahl oder die Handposition zu ermitteln.
Geräteunterstützung
Feature | HoloLens (1. Generation) | HoloLens 2 | Immersive Headsets |
Stationärer Bezugsrahmen | ✔️ | ✔️ | ✔️ |
Angefügter Bezugsrahmen | ✔️ | ✔️ | ✔️ |
Stage frame of reference | Noch nicht unterstützt | Noch nicht unterstützt | ✔️ |
Raumanker | ✔️ | ✔️ | ✔️ |
Räumliche Abbildung | ✔️ | ✔️ | ❌ |
Grundlegendes zu Szenen | ❌ | ✔️ | ❌ |
Mixed Reality-Erfahrungsskalierung
Sie können Mixed Reality-Apps für eine breite Palette von Benutzererfahrungen entwerfen, von 360-Grad-Video-Viewern mit Headset-Ausrichtung bis hin zu vollständigen Apps und Spielen auf Weltniveau mit räumlicher Zuordnung und Raumankern:
Erfahrungsskala | Anforderungen | Beispielerfahrung |
---|---|---|
Nur Ausrichtung | Ausrichtung des Headsets (schwerkraftorientiert) | 360° Video Viewer |
Sitzende Skalierung | Über plus Headset-Position basierend auf der Nullposition | Rennspiel oder Weltraumsimulator |
Stehplatz | Über plus Bühnenbodenursprung | Action-Spiel, in dem Sie sich enten und ausweichen |
Raumskala | Polygon über Plusstufengrenzen | Puzzle-Spiel, in dem Sie durch das Puzzle gehen |
Weltweit | Raumanker (und in der Regel räumliche Zuordnung) | Spiel mit Feinden, die von Ihren echten Wänden kommen, z. B . RoboRaid |
Die obigen Erfahrungsskalen folgen einem "Nesting Dolls"-Modell. Das wichtigste Designprinzip für Windows Mixed Reality ist folgendes: Ein bestimmtes Headset unterstützt Apps, die für eine Zielerfahrungsskala und alle niedrigeren Skalierungen erstellt wurden.
6DOF-Nachverfolgung | Definierter Boden | 360°-Nachverfolgung | Definierte Grenzen | Raumanker | Max. Benutzeroberfläche |
---|---|---|---|---|---|
Nein | - | - | - | - | Nur Ausrichtung |
Ja | Nein | - | - | - | Sitzen |
Ja | Ja | Nein | - | - | Stehend – Vorwärts |
Ja | Ja | Ja | Nein | - | Stehend - 360° |
Ja | Ja | Ja | Ja | Nein | Zimmer |
Ja | Ja | Ja | Ja | Ja | Welt |
Der Stage-Referenzrahmen wird in HoloLens noch nicht unterstützt. Eine App auf Raumebene in HoloLens muss derzeit räumliche Zuordnungen oder Szenenverständnis verwenden, um den Boden und die Wände des Benutzers zu finden.
Räumliche Koordinatensysteme
Alle 3D-Grafikanwendungen verwenden kartesische Koordinatensysteme , um die Positionen und Ausrichtungen virtueller Objekte zu ermitteln. Diese Koordinatensysteme richten drei senkrechte Achsen ein: X, Y und Z. Jedes Objekt, das Sie einer Szene hinzufügen, verfügt im Koordinatensystem über eine XYZ-Position. Windows ruft ein Koordinatensystem mit realer Bedeutung in der physischen Welt als räumliches Koordinatensystem auf, das seine Koordinatenwerte in Metern ausdrückt. Dies bedeutet, dass Objekte, die zwei Einheiten auf der X-, Y- oder Z-Achse voneinander angeordnet haben, zwei Meter voneinander entfernt angezeigt werden, wenn sie in Mixed Reality gerendert werden. Wenn Sie dies wissen, können Sie Objekte und Umgebungen ganz einfach im realen Maßstab rendern.
Im Allgemeinen werden kartesische Koordinatensysteme als "rechtshändig" oder "linkshändig" bezeichnet, da Sie die Richtung der XYZ-Achsen mithilfe von Handpositionen angeben können. In beiden Koordinatensystemen zeigt die positive X-Achse nach rechts und die positive Y-Achse nach oben. Der Unterschied zwischen den beiden besteht darin, dass im rechtshändigen Koordinatensystem die Z-Achse auf Sie zeigt , während im linkshändigen Koordinatensystem die Z-Achse von Ihnen weg zeigt.
Räumliche Koordinatensysteme unter Windows (und daher Windows Mixed Reality) sind immer rechtshändig.
[!HINWEISE]
- Unity und Unreal verwenden das linkshändige Koordinatensystem.
- Obwohl links- und rechtshändige Koordinaten die häufigsten Systeme sind, gibt es andere Koordinatensysteme, die in 3D-Software verwendet werden. Es ist beispielsweise nicht ungewöhnlich, dass 3D-Modellierungsanwendungen ein Koordinatensystem verwenden, in dem die Y-Achse auf den Viewer zeigt oder davon entfernt und die Z-Achse nach oben zeigt.
Erstellen einer Nur-Orientierungs- oder Sitzumgebung
Der Schlüssel zum holografischen Rendering besteht darin, die Sicht Ihrer App auf die Hologramme jedes Frames zu ändern, während sich der Benutzer bewegt, um der vorhergesagten Kopfbewegung zu entsprechen. Mithilfe eines stationären Bezugsrahmens können Sie Benutzeroberfläche im sitzenden Maßstab erstellen, die Änderungen an der Kopfposition und der Kopfausrichtung des Benutzers berücksichtigen.
Einige Inhalte müssen Aktualisierungen der Kopfposition ignorieren und immer an einer ausgewählten Überschrift und entfernung zum Benutzer fest bleiben. Das primäre Beispiel ist ein 360-Grad-Video: Da das Video aus einer einzigen festen Perspektive aufgenommen wird, würde es die Illusion ruinieren, dass sich die Ansichtsposition basierend auf dem Inhalt bewegt, obwohl sich die Ausrichtung der Ansicht ändert, wenn sich der Benutzer umsieht. Sie können solche Nur-Orientierungsfunktionen mithilfe eines angefügten Referenzrahmens erstellen.
Stationärer Bezugsrahmen
Das von einem stationären Referenzrahmen bereitgestellte Koordinatensystem funktioniert, um die Positionen von Objekten in der Nähe des Benutzers so stabil wie möglich zu halten, basierend auf der Welt, und gleichzeitig Änderungen in der Kopfposition des Benutzers zu berücksichtigen.
Bei sitzenden Umgebungen in einer Spiel-Engine wie Unity definiert ein stationärer Bezugsrahmen den "Weltursprung" der Engine. Objekte, die an einer bestimmten Weltkoordinate platziert werden, verwenden den stationären Bezugsrahmen, um ihre Position in der realen Welt mithilfe derselben Koordinaten zu definieren. Inhalte, die in der Welt bleiben, auch wenn der Benutzer herumläuft, werden als weltgesperrte Inhalte bezeichnet.
Eine App erstellt in der Regel einen stationären Referenzrahmen beim Start und verwendet ihr Koordinatensystem während der gesamten Lebensdauer der App. Als App-Entwickler in Unity können Sie einfach inhalte basierend auf dem Ursprung platzieren, der sich an der anfänglichen Kopfposition und Ausrichtung des Benutzers befindet. Wenn der Benutzer an einen neuen Ort wechselt und seine sitzbasierte Benutzeroberfläche fortsetzen möchte, können Sie den Weltursprung an diesem Standort aktualisieren.
Wenn das System im Laufe der Zeit mehr über die Umgebung des Benutzers lernt, kann es feststellen, dass die Abstände zwischen verschiedenen Punkten in der realen Welt kürzer oder länger sind, als das System bisher angenommen hat. Wenn Sie Hologramme in einem stationären Referenzrahmen für eine App auf HoloLens rendern, in der Benutzer über einen Bereich von etwa 5 Metern Breite wandern, kann Ihre App eine Drift an der beobachteten Position dieser Hologramme beobachten. Wenn Ihre Erfahrung hat, dass Benutzer über 5 Meter wandern, erstellen Sie eine Erfahrung auf Weltniveau, die andere Techniken erfordert, um Hologramme stabil zu halten, wie unten beschrieben.
Angefügter Referenzrahmen
Ein angefügter Verweisrahmen wird mit dem Benutzer verschoben, während er herumläuft, wobei eine feste Überschrift definiert ist, wenn die App den Frame zum ersten Mal erstellt. Auf diese Weise kann sich der Benutzer bequem nach Inhalten umsehen, die sich innerhalb dieses Bezugsrahmens befinden. Inhalte, die auf diese benutzerrelative Weise gerendert werden, werden als Textkörper gesperrter Inhalt bezeichnet.
Wenn das Headset nicht herausfinden kann, wo es sich auf der Welt befindet, stellt ein angefügter Referenzrahmen das einzige Koordinatensystem bereit, das zum Rendern von Hologrammen verwendet werden kann. Dies macht es ideal für die Anzeige einer Fallback-Benutzeroberfläche, um dem Benutzer mitzuteilen, dass sein Gerät sie in der Welt nicht finden kann. Apps mit sitzbasierter Skalierung oder höher sollten einen Nur-Orientierungs-Fallback enthalten, um dem Benutzer zu helfen, wieder loszuwerden, wobei die Benutzeroberfläche der in der Mixed Reality Startseite angezeigt wird.
Erstellen einer Erfahrung im Stand- oder Raummaßstab
Um auf einem immersiven Headset über das sitzende Maß hinauszugehen und eine Stehplatzerfahrung zu erstellen, können Sie den Bühnenrahmen als Referenz verwenden.
Sie können auch nach Bühnengrenzen suchen, damit Benutzer innerhalb der von ihnen vordefinierten 5-Meter-Grenze herumlaufen können, um eine Raumebene zu ermöglichen.
Stage frame of reference
Beim ersten Einrichten eines immersiven Headsets definiert der Benutzer eine Bühne, die den Raum darstellt, in dem er Mixed Reality erleben wird. Die Stufe definiert minimal einen Bühnenursprung, ein räumliches Koordinatensystem, das an der vom Benutzer gewählten Bodenposition zentriert ist und nach vorne ausgerichtet ist, wo er das Gerät verwenden möchte. Indem Sie Inhalte in diesem Phasenkoordinatensystem auf der Bodenebene Y=0 platzieren, können Sie sicherstellen, dass Ihre Hologramme bequem auf dem Boden angezeigt werden, wenn der Benutzer steht.
Phasengrenzen
Der Benutzer kann optional auch Bühnengrenzen definieren, einen Bereich innerhalb des Raums, den er für die Bewegung in Mixed Reality gelöscht hat. Wenn ja, kann die App eine Raumebene erstellen, indem sie diese Grenzen verwendet, um sicherzustellen, dass Hologramme immer dort platziert werden, wo der Benutzer sie erreichen kann.
Da der Bühnenrahmen ein einzelnes festes Koordinatensystem bietet, in dem bodenrelative Inhalte platziert werden können, ist dies der einfachste Weg zum Portieren von Anwendungen im Stand- und Raummaßstab, die für Virtual Reality-Headsets entwickelt wurden. Wie bei diesen VR-Plattformen kann jedoch nur ein einzelnes Koordinatensystem Inhalte in etwa 5 Metern (16 Fuß) Durchmesser stabilisieren, bevor hebelarmige Effekte dazu führen, dass sich Inhalte weit von der Mitte entfernt spürbar verschieben, wenn sich das System anpasst. Um über 5 Meter hinaus zu gehen, werden Raumanker benötigt.
Erstellen einer Erfahrung auf Weltniveau
HoloLens ermöglicht echte Erfahrungen im Weltmaßstab , mit denen Benutzer über 5 Meter wandern können. Um eine App auf Weltniveau zu erstellen, benötigen Sie neue Techniken, die über die für Raumfunktionen hinausgehen.
Warum ein einzelnes starres Koordinatensystem nicht mehr als 5 Meter verwendet werden kann
Beim Schreiben von Spielen, Datenvisualisierungs-Apps oder Virtual Reality-Apps besteht der typische Ansatz darin, ein absolutes Weltkoordinatensystem einzurichten, dem alle anderen Koordinaten zuverlässig zugeordnet werden können. In dieser Umgebung können Sie immer eine stabile Transformation finden, die eine Beziehung zwischen zwei beliebigen Objekten in dieser Welt definiert. Wenn Sie diese Objekte nicht verschoben haben, bleiben ihre relativen Transformationen immer gleich. Diese Art von globalem Koordinatensystem funktioniert gut, wenn Sie eine rein virtuelle Welt rendern, in der Sie die gesamte Geometrie im Voraus kennen. VR-Apps im Raummaßstab etablieren heute in der Regel ein absolutes Raumkoordinatensystem mit seinem Ursprung auf dem Boden.
Im Gegensatz dazu verfügt ein untethered Mixed Reality-Gerät wie HoloLens über ein dynamisches sensorgesteuertes Verständnis der Welt, das sein Wissen über die Umgebung des Benutzers kontinuierlich anpasst, während er viele Meter über eine gesamte Etage eines Gebäudes läuft. Wenn Sie in einer Welterfahrung alle Ihre Hologramme in einem einzigen starren Koordinatensystem platzieren, würden diese Hologramme notwendigerweise im Laufe der Zeit driften, entweder basierend auf der Welt oder zueinander.
Zum Beispiel kann das Headset derzeit glauben, dass zwei Standorte in der Welt 4 Meter voneinander entfernt sind, und später dieses Verständnis verfeinern, indem er lernt, dass die Standorte tatsächlich 3,9 Meter voneinander entfernt sind. Wenn diese Hologramme zunächst 4 Meter voneinander entfernt in einem einzigen starren Koordinatensystem platziert worden wären, würde eines von ihnen dann immer 0,1 Meter von der realen Welt entfernt erscheinen.
Raumanker
Windows Mixed Reality löst das im vorherigen Abschnitt beschriebene Problem, indem Sie Raumanker erstellen können, um wichtige Punkte in der Welt zu markieren, in denen der Benutzer Hologramme platziert hat. Ein Raumanker stellt einen wichtigen Punkt in der Umgebung dar, den das System im Laufe der Zeit nachverfolgen sollte.
Wenn das Gerät die Welt kennenlernt, können diese Raumanker ihre Position je nach Bedarf anpassen, um sicherzustellen, dass jeder Anker genau dort bleibt, wo er platziert wurde, basierend auf der realen Welt. Indem Sie einen Raumanker an der Stelle platzieren, an der der Benutzer ein Hologramm platziert, und dann dieses Hologramm basierend auf seinem räumlichen Anker positionieren, können Sie sicherstellen, dass das Hologramm eine optimale Stabilität behält, auch wenn der Benutzer über zig Meter wandert.
Diese kontinuierliche, aufeinander basierende Anpassung von Raumankern ist der Hauptunterschied zwischen Koordinatensystemen aus Raumankern und stationären Bezugsrahmen:
Hologramme, die im stationären Bezugsrahmen platziert werden, haben alle eine starre Beziehung zueinander. Wenn der Benutzer jedoch große Entfernungen zurücklegen kann, kann das Koordinatensystem dieses Frames basierend auf der Welt driften, um sicherzustellen, dass Hologramme neben dem Benutzer stabil erscheinen.
Hologramme, die im Bühnenrahmen platziert werden, haben auch eine feste Beziehung zueinander. Im Gegensatz zum stationären Frame bleibt der Bühnenrahmen basierend auf seinem definierten physischen Ursprung immer fixiert. Inhalte, die im Koordinatensystem der Phase über die 5-Meter-Grenze gerendert werden, werden jedoch nur stabil angezeigt, wenn der Benutzer innerhalb dieser Grenze steht.
Hologramme, die mit einem Raumanker platziert werden, können basierend auf Hologrammen, die mit einem anderen Raumanker platziert werden, driften. Dadurch kann Windows die Position jedes Raumankers besser verstehen, auch wenn sich beispielsweise ein Anker nach links und ein anderer Anker nach rechts anpassen muss.
Im Gegensatz zu einem stationären Bezugsrahmen, der immer auf Stabilität in der Nähe des Benutzers optimiert ist, sorgen der Bühnenrahmen von Bezugs- und Raumankern für Stabilität in der Nähe ihrer Ursprünge. Dies hilft diesen Hologrammen, im Laufe der Zeit genau an Ort und Stelle zu bleiben, aber es bedeutet auch, dass Hologramme, die zu weit vom Ursprung ihres Koordinatensystems entfernt sind, immer schwerwiegendere Hebel-Arm-Effekte erfahren. Dies liegt daran, dass kleine Anpassungen an die Position und Ausrichtung der Bühne oder des Ankers proportional zum Abstand von diesem Anker vergrößert werden.
Eine gute Faustregel besteht darin, sicherzustellen, dass alles, was Sie basierend auf dem Koordinatensystem eines entfernten Raumankers rendern, innerhalb von etwa 3 Metern von seinem Ursprung entfernt ist. Für einen nahegelegenen Phasenursprung ist das Rendern entfernter Inhalte in Ordnung, da sich ein erhöhter Positionsfehler nur auf kleine Hologramme auswirkt, die sich in der Ansicht des Benutzers nicht stark verändern.
Räumliche Ankerpersistenz
Raumanker können es Ihrer App auch ermöglichen, sich an einen wichtigen Standort zu erinnern, auch nachdem Ihre App angehalten oder das Gerät heruntergefahren wurde.
Sie können die räumlichen Anker, die Ihre App erstellt, auf einem Datenträger speichern und später wieder laden, indem Sie sie im Räumlichen Ankerspeicher Ihrer App beibehalten. Beim Speichern oder Laden eines Ankers geben Sie einen Zeichenfolgenschlüssel an, der für Ihre App von Bedeutung ist, um den Anker später zu identifizieren. Stellen Sie sich diesen Schlüssel als Dateinamen für Ihren Anker vor. Wenn Sie diesem Anker andere Daten zuordnen möchten, z. B. ein 3D-Modell, das der Benutzer an diesem Speicherort platziert hat, speichern Sie diese im lokalen Speicher Ihrer App, und ordnen Sie sie dem ausgewählten Schlüssel zu.
Indem Sie Anker im Store beibehalten, können Ihre Benutzer einzelne Hologramme platzieren oder einen Arbeitsbereich platzieren, um den eine App ihre verschiedenen Hologramme platziert, und diese Hologramme später dort finden, wo sie sie erwarten, über viele Verwendungen Ihrer App.
Sie können Azure Spatial Anchors auch für die asynchrone Hologrammpersistenz auf HoloLens-, iOS- und Android-Geräten verwenden. Durch die Gemeinsame Nutzung eines dauerhaften Raumankers in der Cloud können mehrere Geräte im Laufe der Zeit dasselbe persistente Hologramm beobachten, auch wenn diese Geräte nicht gleichzeitig vorhanden sind.
Raumankerfreigabe
Ihre App kann auch einen räumlichen Anker in Echtzeit mit anderen Geräten teilen, sodass gemeinsame Erfahrungen in Echtzeit möglich sind.
Mithilfe von Azure Spatial Anchors kann Ihre App einen Raumanker über mehrere HoloLens-, iOS- und Android-Geräte hinweg freigeben. Indem jedes Gerät ein Hologramm mit demselben Raumanker rendert, wird das Hologramm in der realen Welt für alle Benutzer an der gleichen Stelle angezeigt.
Vermeiden von head-gesperrten Inhalten
Es wird dringend davon abgeraten, head-gesperrte Inhalte zu rendern, die an einer festen Stelle im Display bleiben (z. B. huD). Im Allgemeinen sind head-gesperrte Inhalte für Benutzer unangenehm und fühlen sich nicht wie ein natürlicher Teil ihrer Welt an.
Kopfbesperrte Inhalte sollten in der Regel durch Hologramme ersetzt werden, die an den Benutzer angefügt oder in der Welt selbst platziert werden. Beispielsweise sollten Cursor in der Regel in die Welt hinausgeschoben werden, wobei die Skalierung auf natürliche Weise erfolgt, um die Position und Entfernung des Objekts unter dem Blick des Benutzers widerzuspiegeln.
Behandeln von Nachverfolgungsfehlern
In einigen Umgebungen wie dunklen Gängen ist es möglicherweise nicht möglich, dass sich ein Headset mit Inside-Out-Tracking richtig in der Welt befindet. Dies kann dazu führen, dass Hologramme entweder nicht angezeigt werden oder an falschen Stellen angezeigt werden, wenn sie falsch behandelt werden. Wir diskutieren nun die Bedingungen, unter denen dies geschehen kann, seine Auswirkungen auf die Benutzererfahrung und Tipps, um mit dieser Situation am besten umzugehen.
Headset kann aufgrund unzureichender Sensordaten nicht nachverfolgt werden
Manchmal können die Sensoren des Headsets nicht herausfinden, wo sich das Headset befindet. Möglich sind folgende Ursachen:
- Der Raum ist dunkel
- Wenn die Sensoren von Haaren oder Händen bedeckt sind
- Wenn die Umgebung nicht über genügend Textur verfügt.
In diesem Fall kann das Headset seine Position nicht mit ausreichender Genauigkeit nachverfolgen, um weltweit gesperrte Hologramme zu rendern. Sie können nicht herausfinden, wo ein Raumanker, ein stationärer Rahmen oder ein Bühnenrahmen auf dem Gerät basiert. Sie können jedoch weiterhin textgesperrte Inhalte im angefügten Referenzrahmen rendern.
Ihre App sollte dem Benutzer mitteilen, wie die Positionsverfolgung zurückgerufen werden kann, wobei einige Fallbackinhalte mit Textkörpersperrung gerendert werden, die einige Tipps beschreibt, z. B. das Aufdecken der Sensoren und das Einschalten weiterer Leuchten.
Headset verfolgt aufgrund dynamischer Änderungen in der Umgebung falsch
Das Gerät kann nicht ordnungsgemäß nachverfolgen, wenn es viele dynamische Veränderungen in der Umgebung gibt, z. B. viele Personen, die im Raum herumlaufen. In diesem Fall scheinen die Hologramme zu springen oder zu driften, wenn das Gerät versucht, sich in dieser dynamischen Umgebung zu verfolgen. Es wird empfohlen, das Gerät in einer weniger dynamischen Umgebung zu verwenden, wenn Sie dieses Szenario treffen.
Headset verfolgt falsch, da sich die Umgebung im Laufe der Zeit erheblich verändert hat
Wenn Sie mit der Verwendung eines Headsets in einer Umgebung beginnen, in der Möbel, Wandbehänge usw. verschoben wurden, ist es möglich, dass einige Hologramme von ihren ursprünglichen Standorten verschoben erscheinen. Die früheren Hologramme können auch herumspringen, wenn sich der Benutzer im neuen Raum bewegt, da das Verständnis ihres Raums des Systems nicht mehr stimmt. Das System versucht dann, die Umgebung neu zuzuordnen, und versucht gleichzeitig, die Features des Raums zu vereinbaren. In diesem Szenario empfiehlt es sich, Benutzer dazu zu ermutigen, Hologramme, die sie in der Welt angeheftet haben, zu ersetzen, wenn sie nicht wie erwartet erscheinen.
Das Headset verfolgt aufgrund identischer Leerzeichen in einer Umgebung falsch.
Manchmal kann ein Haus oder ein anderer Raum zwei identische Bereiche aufweisen. Beispielsweise zwei identische Konferenzräume, zwei identische Eckbereiche, zwei große identische Poster, die das Sichtfeld des Geräts abdecken. In solchen Szenarien kann das Gerät manchmal zwischen den identischen Teilen verwechselt werden und sie in seiner internen Darstellung als gleich markieren. Dies kann dazu führen, dass die Hologramme aus einigen Bereichen an anderen Orten angezeigt werden. Das Gerät kann die Nachverfolgung oft verlieren, da seine interne Darstellung der Umgebung beschädigt wurde. In diesem Fall wird empfohlen, das Umweltverständnis des Systems zurückzusetzen. Das Zurücksetzen der Karte führt zum Verlust aller räumlichen Ankerplatzierungen. Dies führt dazu, dass das Headset in den einzigartigen Bereichen der Umgebung gut nachverfolgt. Das Problem kann jedoch erneut auftreten, wenn das Gerät erneut zwischen den identischen Bereichen verwechselt wird.