Koordinatensysteme
Im Kern platzieren Mixed Reality-Apps Hologramme in Ihrer Welt, die wie echte Objekte aussehen und klingen. Dies beinhaltet genau die Positionierung und Orientierung dieser Hologramme an sinnvollen Orten der Welt, unabhängig davon, ob es sich bei der Welt um ihren physischen Raum oder um einen virtuellen Bereich handelt, den Sie erstellt haben. Windows stellt verschiedene reale Koordinatensysteme zum Ausdrücken von Geometrie bereit– diese werden als räumliche Koordinatensysteme bezeichnet. Sie können diese Systeme verwenden, um die Position des Hologramms, die Ausrichtung, den Blickstrahl oder die Handpositionen zu ermitteln.
Unterstützung für Geräte
Feature | HoloLens (1. Generation) | HoloLens 2 | Immersive Headsets |
Stationärer Bezugsrahmen | ✔️ | ✔️ | ✔️ |
Angefügter Bezugsrahmen | ✔️ | ✔️ | ✔️ |
Phasenrahmen des Bezugs | noch nicht unterstützt | noch nicht unterstützt | ✔️ |
Raumanker | ✔️ | ✔️ | ✔️ |
Räumliche Abbildung | ✔️ | ✔️ | ❌ |
Grundlegendes zu Szenen | ❌ | ✔️ | ❌ |
Skalierungen der Mixed Reality-Erfahrung
Sie können Mixed Reality-Apps für eine breite Palette von Benutzeroberflächen entwerfen, von 360-Grad-Video-Viewern mit Headsetausrichtung bis hin zu vollständigen weltweiten Apps und Spielen mit räumlicher Zuordnung und räumlichen Verankerungen:
Skalierung der Erfahrung | Anforderungen | Beispielerfahrung |
---|---|---|
Nur Ausrichtung | Headsetausrichtung (Schwerkraft ausgerichtet) | 360°-Videoanzeige |
Sitzmaßstab | Oben plus Headsetposition basierend auf Nullposition | Rennspiel oder Raumsimulator |
Stehmaßstab | Über plus Stufenbodenursprung | Action-Spiel, in dem Sie sich enten und verdeißen |
Raumskala | Polygone über plus Stufen | Puzzlespiel, in dem Sie durch das Puzzle gehen |
Weltmaßstab | Räumliche Anker (und in der Regel räumliche Zuordnung) | Spiel mit Feinden, die von Ihren echten Wänden kommen, z . B. RoboRaid |
Die oben genannten Erfahrungen folgen einem "Nesting Dolls"-Modell. Das wichtigste Designprinzip für Windows Mixed Reality ist dies: Ein bestimmtes Headset unterstützt Apps, die für eine Zielerfahrungsskala und alle geringeren Skalierungen erstellt wurden.
6DOF-Nachverfolgung | Definierter Boden | 360° Tracking | Definierte Grenzen | Raumanker | Max. Erfahrung |
---|---|---|---|---|---|
No | - | - | - | - | Nur Ausrichtung |
Ja | Nein | - | - | - | Sitzend |
Ja | Ja | Nein | - | - | Standing - Forward |
Ja | Ja | Ja | Nein | - | Stehend - 360° |
Ja | Ja | Ja | Ja | Nein | Zimmer |
Ja | Ja | Ja | Ja | Ja | Welt |
Der Referenzframe der Stufe wird für HoloLens noch nicht unterstützt. Eine Raum-App auf 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, weist eine XYZ-Position im Koordinatensystem auf. Windows ruft ein Koordinatensystem auf, das in der physischen Welt reale Bedeutung hat, ein räumliches Koordinatensystem, das seine Koordinatenwerte in Metern ausdrückt. Dies bedeutet, dass Objekte, die sich auf der X-, Y- oder Z-Achse befinden, zwei Meter voneinander entfernt erscheinen, 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 Handpositionen verwenden können, um die Richtungen der XYZ-Achsen anzugeben. In beiden Koordinatensystemen zeigt die positive X-Achse rechts und die positiven Y-Achsenpunkte nach oben. Der Unterschied zwischen den beiden ist, dass im rechtshändigen Koordinatensystem die Z-Achse auf Sie zeigt, während im linkshändigen Koordinatensystem die Z-Achse von Ihnen entfernt ist.
Räumliche Koordinatensysteme unter Windows (und daher Windows Mixed Reality) sind immer rechtshändig.
[!HINWEISE]
- Unity und Unreal verwenden das linkshändige Koordinatensystem.
- Obwohl linkshändige und rechtshändige Koordinaten die am häufigsten verwendeten Systeme sind, gibt es andere Koordinatensysteme, die in der 3D-Software verwendet werden. Es ist z. B. nicht ungewöhnlich, dass 3D-Modellierungsanwendungen ein Koordinatensystem verwenden, in dem die Y-Achse auf den Viewer und die Z-Achse zeigt.
Erstellen einer Nur-Ausrichtungs- oder Sitzerfahrung
Der Schlüssel zum holografischen Rendering ändert die Ansicht Ihrer App auf seine Hologramme, während der Benutzer sich bewegt, um deren vorhergesagte Kopfbewegung abzugleichen. Mithilfe eines stationären Referenzrahmens können Sie oberflächenbasierte Oberflächen erstellen, die Änderungen an der Kopfposition und der Kopfausrichtung des Benutzers respektieren.
Einige Inhalte müssen Aktualisierungen der Kopfposition ignorieren, bei einer ausgewählten Überschrift und dem Abstand vom Benutzer immer fest bleiben. Das primäre Beispiel ist 360-Grad-Video: Da das Video aus einer einzigen festen Perspektive aufgenommen wird, würde es die Illusion für die Ansichtsposition ruinieren, die basierend auf dem Inhalt verschoben werden soll, auch wenn sich die Ansichtsausrichtung ändert, während der Benutzer sich umsieht. Sie können solche ausrichtungsgeschützten Oberflächen mithilfe eines angefügten Referenzrahmens erstellen.
Stationärer Bezugsrahmen
Das Koordinatensystem, das von einem stationären Referenzrahmen bereitgestellt wird, funktioniert, um die Positionen von Objekten in der Nähe des Benutzers so stabil wie möglich auf der Grundlage der Welt zu halten, während Änderungen an der Kopfposition des Benutzers beachtet werden.
Für Sitzerfahrungen in einer Spielengine wie Unity definiert ein stationärer Referenzrahmen den "Weltursprung" des Moduls. Objekte, die an einer bestimmten Weltkoordinate platziert werden, verwenden den stationären Bezugsrahmen, um ihre Position in der realen Welt mithilfe dieser Koordinaten zu definieren. Inhalte, die in die Welt gesetzt werden, auch wenn der Benutzer unterwegs ist, wird als weltgesperrte Inhalte bezeichnet.
Eine App erstellt in der Regel einen stationären Referenzrahmen beim Start und verwendet das Koordinatensystem während der gesamten App-Lebensdauer. Als App-Entwickler in Unity können Sie einfach beginnen, Inhalte basierend auf dem Ursprung zu platzieren, der sich an der anfänglichen Kopfposition und Ausrichtung des Benutzers befindet. Wenn der Benutzer zu einem neuen Ort wechselt und seine Sitzerfahrung fortsetzen möchte, können Sie den Weltursprung an diesem Ort neuer gestalten.
Wenn das System im Laufe der Zeit mehr über die Umgebung des Benutzers lernt, kann es feststellen, dass Abstände zwischen verschiedenen Punkten in der realen Welt kürzer oder länger sind als das zuvor angenommene System. Wenn Sie Hologramme in einem stationären Referenzrahmen für eine App auf HoloLens rendern, in der Benutzer über einen Bereich von ca. 5 Metern weit wandern, kann Ihre App eine Abweichung an der beobachteten Position dieser Hologramme beobachten. Wenn Ihre Erfahrung Benutzer über 5 Meter wandert, erstellen Sie eine Weltskala-Erfahrung, die andere Techniken erfordert, um Hologramme stabil zu halten, wie unten beschrieben.
Angefügter Bezugsrahmen
Ein angefügter Bezugsrahmen wird beim Navigieren mit dem Benutzer verschoben, wobei eine feste Überschrift definiert ist, die beim ersten Erstellen des Frames durch die App definiert ist. Auf diese Weise kann der Benutzer bequem nach Inhalten suchen, die innerhalb dieses Referenzrahmens platziert sind. Inhalte, die auf diese benutzerrelative Weise gerendert werden, werden als textkörpergesperrte Inhalte bezeichnet.
Wenn das Headset nicht herausfinden kann, wo es sich in 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 von Fallback-UI, um dem Benutzer mitzuteilen, dass sein Gerät sie nicht in der Welt finden kann. Apps, die mit Sitz oder höher ausgestattet sind, sollten einen nur ausrichtungsgeschützten Fallback enthalten, um dem Benutzer den Einstieg zu erleichtern, mit einer Benutzeroberfläche, die dem im Mixed Reality-Heim gezeigten ähnelt.
Erstellen einer steh- oder raumbasierten Erfahrung
Um über die Sitzskala eines immersiven Headsets hinauszugehen und eine stehenden Erfahrung zu erstellen, können Sie den Phasenrahmen verwenden.
Um eine Raumskala zu ermöglichen, können Benutzer innerhalb der vordefinierten 5-Meter-Grenze auch nach Stufengrenzen suchen.
Phasenrahmen des Bezugs
Beim ersten Einrichten eines immersiven Headsets definiert der Benutzer eine Phase, die den Raum darstellt, in dem mixed Reality auftreten wird. Die Stufe definiert minimal einen Phasenursprung, ein räumliches Koordinatensystem, das an der gewählten Bodenposition des Benutzers und der Vorwärtsausrichtung zentriert ist, wo das Gerät verwendet werden soll. Indem Sie Inhalte in diesem Phasenkoordinatensystem auf der Y=0-Bodenebene platzieren, können Sie sicherstellen, dass Ihre Hologramme bequem auf dem Boden angezeigt werden, wenn der Benutzer steht, sodass Die Benutzer eine ständige Erfahrung erhalten.
Phasengrenzen
Der Benutzer kann optional auch Phasengrenzen definieren , einen Bereich innerhalb des Raums, den er gelöscht hat, um sich in Mixed Reality zu bewegen. Wenn ja, kann die App eine Raumskalaerfahrung erstellen, indem sie diese Grenzen verwendet, um sicherzustellen, dass Hologramme immer dort platziert werden, wo der Benutzer sie erreichen kann.
Da der Phasenrahmen ein einzelnes festes Koordinatensystem bereitstellt, in dem bodenrelative Inhalte platziert werden sollen, ist es der einfachste Weg für die Portierung von Anwendungen im Steh- und Raummaßstab, die für Virtual Reality-Headsets entwickelt wurden. Wie bei diesen VR-Plattformen kann ein einzelnes Koordinatensystem jedoch nur inhalte in etwa 5 Metern (16 Fuß) Durchmesser stabilisieren, bevor Hebelarmeffekte Inhalte weit vom Zentrum weit von der Mitte her deutlich verschieben können, wenn das System angepasst wird. Um über 5 Meter zu gehen, sind räumliche Verankerungen erforderlich.
Erstellen einer weltweiten Erfahrung
HoloLens ermöglicht echte Welterfahrungen , mit denen Benutzer über 5 Meter wandern können. Um eine weltweit skalierende App zu erstellen, benötigen Sie neue Techniken, die über diejenigen hinausgehen, die für Raum-Skalierungsfunktionen verwendet werden.
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 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 beim Rendern einer rein virtuellen Welt, in der Sie alle Geometrie im Voraus kennen. Vr-Apps im Raummaßstab etablieren heute in der Regel diese Art von absolutem Raumkoordinatensystem mit seinem Ursprung auf dem Boden.
Im Gegensatz dazu verfügt ein ungebundenes Mixed Reality-Gerät wie HoloLens über ein dynamisches sensorgesteuertes Verständnis der Welt und passt seine Kenntnisse im Laufe der Zeit der Umgebung des Benutzers kontinuierlich an, während sie über eine ganze Etage eines Gebäudes gehen. Wenn Sie all Ihre Hologramme in einem einzigen starren Koordinatensystem platziert haben, würden diese Hologramme in einer weltgerechten Erfahrung notwendigerweise im Laufe der Zeit driften, entweder basierend auf der Welt oder auf einander.
Beispielsweise kann das Headset derzeit glauben, dass zwei Standorte in der Welt 4 Meter auseinander liegen, und dann später verfeinern Sie dieses Verständnis, und lernen Sie, dass die Standorte tatsächlich 3,9 Meter auseinander liegen. Wenn diese Hologramme anfangs 4 Meter auseinander in einem einzigen starren Koordinatensystem platziert wurden, würde einer davon immer 0,1 Meter von der realen Welt entfernt erscheinen.
Raumanker
Windows Mixed Reality löst das im vorherigen Abschnitt beschriebene Problem, indem Sie räumliche Anker 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 über die Welt lernt, können diese räumlichen Anker ihre Position je nach Bedarf anpassen, um sicherzustellen, dass jeder Anker genau dort bleibt, wo er basierend auf der realen Welt platziert wurde. Indem Sie einen räumlichen Anker an der Stelle platzieren, an der der Benutzer ein Hologramm platziert und dann das Hologramm basierend auf seiner räumlichen Verankerung positioniert, können Sie sicherstellen, dass das Hologramm eine optimale Stabilität behält, auch wenn der Benutzer über mehrere zehn Meter wechselt.
Diese kontinuierliche Anpassung der räumlichen Verankerungen auf der Grundlage eines anderen ist der Schlüsselunterschied zwischen Koordinatensystemen von räumlichen Verankerungen und stationären Referenzrahmen:
Hologramme, die im stationären Bezugsrahmen platziert sind, behalten alle eine starre Beziehung zueinander. Wenn der Benutzer jedoch lange Entfernungen durchläuft, kann das Koordinatensystem dieses Frames basierend auf der Welt driften, um sicherzustellen, dass Hologramme neben dem Benutzer stabil erscheinen.
Hologramme, die im Phasenrahmen des Bezugs platziert sind, behalten auch eine starre Beziehung zueinander. Im Gegensatz zum stationären Rahmen bleibt der Phasenrahmen immer basierend auf seinem definierten physischen Ursprung fest. Inhalte, die im Koordinatensystem der Phase über ihre 5-Meter-Grenze gerendert werden, werden jedoch nur stabil angezeigt, während der Benutzer innerhalb dieser Grenze steht.
Hologramme, die mit einem räumlichen Anker platziert werden, können basierend auf Hologrammen, die mit einem anderen räumlichen Anker platziert werden, driften. Auf diese Weise kann Windows das Verständnis der Position jedes räumlichen Ankers verbessern, auch wenn sich beispielsweise ein Anker nach links anpassen muss und ein anderer Anker nach rechts anpassen muss.
Im Gegensatz zu einem stationären Bezugsrahmen, der immer für Stabilität in der Nähe des Benutzers optimiert wird, sorgen die Phasenrahmen von Bezug und räumlichen Verankerungen für Stabilität in der Nähe ihrer Ursprünge. Dies hilft diesen Hologrammen, genau im Laufe der Zeit an Ort und Stelle zu bleiben, aber es bedeutet auch, dass Hologramme, die zu weit vom Ursprung ihres Koordinatensystems gerendert wurden, immer schwerere Hebelarmeffekte erleben. Dies liegt daran, dass kleine Anpassungen an der Position und Ausrichtung der Stufe oder Verankerung 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 räumlichen Ankers rendern, innerhalb von etwa 3 Metern seines Ursprungs liegt. Bei einem Ursprung in der nähen Phase ist das Rendern entfernter Inhalte ok, da sich jeder erhöhte Positionsfehler nur auf kleine Hologramme auswirkt, die nicht viel in der Ansicht des Benutzers verschoben werden.
Räumliche Verankerungspersistenz
Räumliche Anker können Es Ihrer App auch ermöglichen, sich einen wichtigen Ort zu merken, auch nachdem Ihre App angehalten oder das Gerät heruntergefahren wurde.
Sie können die von Der App erstellten räumlichen Verankerungen auf dem Datenträger speichern und sie später erneut laden, indem Sie sie im räumlichen Ankerspeicher Ihrer App beibehalten. Beim Speichern oder Laden eines Ankers stellen Sie einen Zeichenfolgenschlüssel bereit, der für Ihre App aussagekräftig ist, um den Anker später zu identifizieren. Stellen Sie sich diesen Schlüssel als Dateinamen für Ihren Anker vor. Wenn Sie andere Daten diesem Anker zuordnen möchten, z. B. ein 3D-Modell, das der Benutzer an diesem Speicherort platziert hat, speichern Sie dies im lokalen Speicher Ihrer App, und ordnen Sie sie dem von Ihnen ausgewählten Schlüssel zu.
Durch beibehaltene Anker im Store können Ihre Benutzer einzelne Hologramme platzieren oder einen Arbeitsbereich platzieren, in dem eine App die verschiedenen Hologramme platziert, und diese Hologramme später dort finden, wo sie sie erwarten, über viele Anwendungen Ihrer App.
Vermeiden von head-locked-Inhalten
Es wird dringend davon abgeraten, head-locked-Inhalte zu rendern, die an einer festen Stelle im Display (z. B. huD) bleiben. Im Allgemeinen ist kopfgesperrte Inhalte für Benutzer unangenehm und fühlt sich nicht wie ein natürlicher Teil ihrer Welt an.
Kopfsperrter Inhalt sollte in der Regel durch Hologramme ersetzt werden, die dem Benutzer zugeordnet sind oder sich in der Welt selbst befinden. Cursor sollten z. B. in der Regel in die Welt verschoben werden, wobei die Skalierung natürlich die Position und den Abstand des Objekts unter dem Blick des Benutzers widerspiegelt.
Behandeln von Nachverfolgungsfehlern
In manchen Umgebungen wie dunklen Hallen ist es möglicherweise nicht möglich, dass ein Headset innerhalb der Nachverfolgung sich in der Welt richtig auffinden kann. Dies kann dazu führen, dass Hologramme entweder nicht angezeigt oder an falschen Stellen angezeigt werden, wenn sie falsch behandelt werden. Wir besprechen nun die Bedingungen, unter denen dies geschehen kann, deren Auswirkungen auf die Benutzererfahrung und Tipps, um diese Situation am besten zu behandeln.
Headset kann aufgrund unzureichender Sensordaten nicht nachverfolgt werden
Manchmal können die Sensoren des Headsets nicht herausfinden, wo sich das Headset befindet. Dies kann in folgenden Fällen vorkommen:
- Der Raum ist dunkel
- Wenn die Sensoren von Haaren oder Händen bedeckt sind
- Wenn die Umgebung nicht genügend Textur aufweist.
In diesem Fall kann das Headset seine Position nicht mit ausreichender Genauigkeit nachverfolgen, um weltsperrte Hologramme zu rendern. Sie können nicht herausfinden, wo ein räumlicher Anker, ein stationärer Rahmen oder ein Phasenrahmen auf dem Gerät basiert. Sie können jedoch weiterhin Textkörper gesperrten Inhalt im angefügten Referenzrahmen rendern.
Ihre App sollte dem Benutzer mitteilen, wie Sie positionsbezogene Nachverfolgungen erhalten und einige fallback-gesperrte Inhalte rendern, die einige Tipps beschreiben, z. B. das Aufdecken der Sensoren und das Aktivieren weiterer Lichter.
Headset verfolgt aufgrund dynamischer Änderungen in der Umgebung falsch nach
Das Gerät kann nicht ordnungsgemäß nachverfolgt werden, wenn es viele dynamische Änderungen in der Umgebung gibt, z. B. viele Menschen, die im Raum herumgehen. In diesem Fall scheinen die Hologramme zu springen oder zu driften, da 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 erreicht haben.
Headsetspuren fälschlicherweise, da sich die Umgebung im Laufe der Zeit erheblich geändert hat
Wenn Sie mit der Verwendung eines Headsets in einer Umgebung beginnen, in der Möbel, Wandhänge usw. verschoben wurden, ist es möglich, dass einige Hologramme von ihren ursprünglichen Standorten verschoben werden können. Die früheren Hologramme können auch herumspringen, wenn der Benutzer im neuen Raum bewegt wird, da das Verständnis ihres Raums nicht mehr zutrifft. Das System versucht dann, die Umgebung neu zuzuordnen und gleichzeitig zu versuchen, die Features des Raums abzugleichen. In diesem Szenario wird empfohlen, Benutzer zu ermutigen, Hologramme zu ersetzen, die sie in der Welt angeheftet haben, wenn sie nicht wo erwartet angezeigt werden.
Headset verfolgt aufgrund identischer Leerzeichen in einer Umgebung falsch nach
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 ihrer internen Darstellung als identisch kennzeichnen. Dies kann dazu führen, dass die Hologramme aus einigen Bereichen an anderen Stellen angezeigt werden. Das Gerät verliert möglicherweise häufig die Nachverfolgung, da die 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 zu Verlust aller räumlichen Verankerungsplatzierungen. Dies führt dazu, dass das Headset in den einzigartigen Bereichen der Umgebung gut nachverfolgt wird. Das Problem kann jedoch erneut auftreten, wenn das Gerät wieder zwischen den identischen Bereichen verwechselt wird.