Układy współrzędnych

W ich rdzeniu aplikacje rzeczywistości mieszanej umieszczają hologramy na świecie, które wyglądają jak i brzmią prawdziwe obiekty. Obejmuje to precyzyjne pozycjonowanie i orientację tych hologramów w znaczących miejscach na świecie, niezależnie od tego, czy świat jest ich fizycznym pokojem, czy wirtualnym obszarem, który został utworzony. System Windows udostępnia różne rzeczywiste systemy współrzędnych do wyrażania geometrii — są one nazywane systemami współrzędnych przestrzennych. Można użyć tych systemów do powodowania położenia hologramu, orientacji, wzroku lub położenia dłoni.

Obsługa urządzeń

Funkcja HoloLens (1. generacja) HoloLens 2 Immersyjne zestawy słuchawkowe
Rama nieruchoma odniesienia ✔️ ✔️ ✔️
Dołączona ramka odwołania ✔️ ✔️ ✔️
Ramka etapu odwołania Jeszcze nieobsługiwane Jeszcze nieobsługiwane ✔️
Kotwice przestrzenne ✔️ ✔️ ✔️
Mapowanie przestrzenne ✔️ ✔️
Opis sceny ✔️

Skalowanie środowiska rzeczywistości mieszanej

Aplikacje rzeczywistości mieszanej można projektować dla szerokiej gamy środowisk użytkownika, od 360-stopniowych widzów wideo przy użyciu orientacji zestawu słuchawkowego do pełnych aplikacji i gier w skali światowej przy użyciu mapowania przestrzennego i kotwic przestrzennych:


Skala środowiska Wymagania Przykładowe środowisko
Tylko orientacja Orientacja zestawu słuchawkowego (wyrównana grawitacja) Przeglądarka wideo 360°
Skala siedzeń Powyżej plus położenie zestawu słuchawkowego na podstawie pozycji zerowej Gry wyścigowe lub symulator kosmosu
Skala stojąca Początek nad podłogą plusa Gra akcji, w której kaczka i dodge w miejscu
Skala pokoju Powyżej znaku plus granice wielokąta Gra logiczna, w której chodzisz po układanki
Skala światowa Kotwice przestrzenne (i zazwyczaj mapowanie przestrzenne) Gra z wrogami pochodzącymi z prawdziwych ścian, takich jak RoboRaid

Środowisko jest skalowane powyżej zgodnie z modelem "zagnieżdżania lalek". Kluczową zasadą projektowania dla Windows Mixed Reality jest to: dany zestaw słuchawkowy obsługuje aplikacje utworzone na potrzeby skalowania środowiska docelowego i wszystkich mniejszych skali.


Śledzenie 6DOF Zdefiniowano podłogę Śledzenie 360° Zdefiniowane granice Kotwice przestrzenne Maksymalne środowisko
Nie - - - - Tylko orientacja
Tak Nie - - - Siedzi
Tak Tak Nie - - Stojąco — do przodu
Tak Tak Tak Nie - Stojąco - 360°
Tak Tak Tak Tak Nie Pokojach
Tak Tak Tak Tak Tak Świata

Ramka etapu odwołania nie jest jeszcze obsługiwana na urządzeniu HoloLens. Aplikacja o skali pomieszczenia na urządzeniu HoloLens musi obecnie używać mapowania przestrzennego lub zrozumienia sceny w celu znalezienia podłogi i ścian użytkownika.

Układy współrzędnych przestrzennych

Wszystkie aplikacje graficzne 3D używają kartezjańskich systemów współrzędnych do powodowania położenia i orientacji obiektów wirtualnych. Te układy współrzędnych ustanawiają trzy osie prostopadłe: X, Y i Z. Każdy obiekt dodany do sceny będzie miał położenie XYZ w układzie współrzędnych. System Windows wywołuje system współrzędnych, który ma rzeczywiste znaczenie w świecie fizycznym, system współrzędnych przestrzennych , który wyraża swoje wartości współrzędnych w metrach. Oznacza to, że obiekty umieszczone dwie jednostki od siebie na osi X, Y lub Z będą wyświetlane dwa mierniki od siebie podczas renderowania w rzeczywistości mieszanej. Wiedząc o tym, można łatwo renderować obiekty i środowiska w skali rzeczywistej.

Ogólnie rzecz biorąc, układy współrzędnych kartezjańskich są określane jako "praworęczne" lub "leworęczne", ponieważ można użyć pozycji ręcznych, aby wskazać kierunki osi XYZ. W obu układach współrzędnych dodatnia oś X wskazuje na prawą i dodatnią oś Y w górę. Różnica między nimi polega na tym, że w układzie współrzędnych praworęcznych oś Z wskazuje na Ciebie, podczas gdy w lewym układzie współrzędnych oś Z wskazuje od Ciebie.

Obraz prawej strony osoby pokazujący układ współrzędnych praworęcznych

Zdjęcie lewej ręki osoby demonstrujące układ współrzędnych leworęcznych

Systemy współrzędnych przestrzennych w systemie Windows (a zatem Windows Mixed Reality) są zawsze praworęczne.

[! UWAGI]

  • Unity i Unreal używają układu współrzędnych leworęcznych.
  • Chociaż współrzędne leworęczne i praworęczne są najbardziej typowymi systemami, istnieją inne systemy współrzędnych używane w oprogramowaniu 3D. Na przykład nie jest niczym niezwykłym, że aplikacje modelowania 3D używają układu współrzędnych, w którym oś Y wskazuje w kierunku lub z dala od przeglądarki, a oś Z wskazuje w górę.

Tworzenie środowiska tylko do orientacji lub skalowania siedzeń

Kluczem do renderowania holograficznego jest zmiana widoku jej hologramów każdej ramki w miarę poruszania się użytkownika w celu dopasowania ich przewidywanego ruchu głowy. Można tworzyć środowiska w skali siedzenia , które szanują zmiany położenia głowy i orientacji głowy użytkownika przy użyciu nieruchomej ramy odniesienia.

Niektóre treści muszą ignorować aktualizacje położenia głowy, pozostając stałe w wybranym nagłówku i odległości od użytkownika zawsze. Podstawowym przykładem jest 360-stopniowy film wideo: ponieważ wideo jest przechwytywane z jednej stałej perspektywy, zrujnowałoby to iluzję, że pozycja widoku zostanie przeniesiona na podstawie zawartości, mimo że orientacja widoku zmienia się, gdy użytkownik rozgląda się. Takie środowiska tylko dla orientacji można tworzyć przy użyciu dołączonej ramki odwołania.

Rama nieruchoma odniesienia

Układ współrzędnych zapewniany przez nieruchomą ramę odniesienia działa w celu utrzymania pozycji obiektów w pobliżu użytkownika tak stabilnego, jak to możliwe na podstawie świata, przy jednoczesnym zachowaniu zmian położenia głowy użytkownika.

W przypadku środowisk na dużą skalę w silniku gry, takim jak Unity, nieruchoma rama odniesienia definiuje "pochodzenie świata" silnika. Obiekty umieszczone na określonej współrzędnej świata używają stacjonarnej ramy odniesienia do zdefiniowania ich położenia w świecie rzeczywistym przy użyciu tych samych współrzędnych. Zawartość, która pozostaje umieszczana na świecie, nawet gdy użytkownik przechodzi przez użytkownika, jest znana jako zawartość zablokowana na świecie .

Aplikacja zazwyczaj tworzy jedną nieruchomą ramę odniesienia podczas uruchamiania i używa jej układu współrzędnych przez cały okres istnienia aplikacji. Jako deweloper aplikacji w środowisku Unity możesz po prostu zacząć umieszczać zawartość na podstawie źródła, która będzie znajdować się w początkowej pozycji i orientacji głowy użytkownika. Jeśli użytkownik przejdzie do nowego miejsca i chce kontynuować swoje środowisko na dużą skalę, możesz użyć najnowszego źródła świata w tej lokalizacji.

Wraz z upływem czasu, gdy system dowie się więcej o środowisku użytkownika, może określić, że odległości między różnymi punktami w świecie rzeczywistym są krótsze lub dłuższe niż wcześniej wierzył system. Jeśli renderujesz hologramy w nieruchomej ramce odniesienia dla aplikacji na urządzeniu HoloLens, gdzie użytkownicy wędrują poza obszar około 5 metrów szerokości, aplikacja może obserwować dryf w obserwowanej lokalizacji tych hologramów. Jeśli twoje środowisko ma użytkowników wędrujących poza 5 metrów, tworzysz środowisko na skalę światową, które będzie wymagać innych technik, aby zachować stabilność hologramów, zgodnie z poniższym opisem.

Dołączona ramka odwołania

Dołączona ramka odwołania jest przesuwana wraz z użytkownikiem w miarę poruszania się, z stałym nagłówkiem zdefiniowanym podczas pierwszego tworzenia ramki przez aplikację. Dzięki temu użytkownik wygodnie rozejrzy się z zawartością umieszczoną w tej ramce odwołania. Zawartość renderowana w ten względny sposób jest nazywana zawartością zablokowaną przez użytkownika .

Gdy zestaw słuchawkowy nie może ustalić, gdzie znajduje się na świecie, dołączona ramka odniesienia zapewnia jedyny układ współrzędnych, który może służyć do renderowania hologramów. Dzięki temu idealnie nadaje się do wyświetlania interfejsu użytkownika rezerwowego, aby poinformować użytkownika, że jego urządzenie nie może znaleźć ich na świecie. Aplikacje, które są skalowane w poziomie lub wyższym, powinny zawierać powrót tylko do orientacji, aby pomóc użytkownikowi w ponownym przejściu, z interfejsem użytkownika podobnym do pokazanego w Mixed Reality domu.

Tworzenie środowiska na skalę stałą lub w skali pokoju

Aby wyjść poza skalę siedzącą na immersywnym zestawie słuchawkowym i utworzyć środowisko na skalę stałą, możesz użyć ramki etapowej odniesienia.

Aby zapewnić środowisko w skali pomieszczenia, dzięki czemu użytkownicy mogą chodzić w granicach 5 metrów, które wstępnie zdefiniowali, możesz również sprawdzić granice etapu .

Ramka etapowa odwołania

Podczas pierwszego konfigurowania immersywnego zestawu nagłownego użytkownik definiuje etap, który reprezentuje pomieszczenie, w którym będzie występować rzeczywistość mieszana. Etap w minimalnym stopniu definiuje początek etapu, system współrzędnych przestrzennych wyśrodkowany na wybranej przez użytkownika pozycji podłogi i orientacji do przodu, gdzie zamierza korzystać z urządzenia. Umieszczając zawartość w tym układzie współrzędnych etapu na płaszczyźnie Y=0, możesz zapewnić, że hologramy pojawią się wygodnie na podłodze, gdy użytkownik stoi, zapewniając użytkownikom środowisko skalowania na stojąco.

Granice etapu

Użytkownik może również opcjonalnie zdefiniować granice etapu— obszar w pomieszczeniu, który został wyczyszczone, aby poruszać się w rzeczywistości mieszanej. Jeśli tak, aplikacja może utworzyć środowisko w skali pomieszczenia, korzystając z tych granic, aby upewnić się, że hologramy są zawsze umieszczane tam, gdzie użytkownik może do nich dotrzeć.

Ponieważ ramka etapowa odwołania zapewnia jeden stały system współrzędnych, w którym można umieścić zawartość względną podłogi, jest to najłatwiejsza ścieżka do przenoszenia aplikacji o skali stałej i skali pomieszczenia opracowanych dla zestawów nagłownych rzeczywistości wirtualnej. Jednak, podobnie jak w przypadku tych platform VR, pojedynczy układ współrzędnych może ustabilizować zawartość tylko w średnicy około 5 metrów (16 stóp), zanim efekty dźwigni ramię powodują zawartość daleko od środka, aby znacznie przesunąć się w miarę dostosowywania systemu. Aby wyjść poza 5 metrów, potrzebne są kotwice przestrzenne.

Tworzenie środowiska na skalę światową

Urządzenie HoloLens umożliwia korzystanie z rzeczywistych środowisk na skalę światową , które pozwalają użytkownikom wędrować po 5 metrach. Aby utworzyć aplikację na skalę światową, potrzebne będą nowe techniki wykraczające poza te, które są używane w środowiskach w skali pokoju.

Dlaczego jeden sztywny układ współrzędnych nie może być używany poza 5 metrów

Obecnie podczas pisania gier, aplikacji wizualizacji danych lub aplikacji rzeczywistości wirtualnej typowe podejście polega na ustanowieniu jednego bezwzględnego systemu współrzędnych świata, do którego wszystkie inne współrzędne mogą niezawodnie mapować. W tym środowisku zawsze można znaleźć stabilną transformację, która definiuje relację między dowolnymi dwoma obiektami w tym świecie. Jeśli te obiekty nie zostaną przeniesione, ich względne przekształcenia zawsze pozostaną takie same. Ten rodzaj globalnego systemu współrzędnych działa dobrze podczas renderowania czysto wirtualnego świata, w którym wiesz z wyprzedzeniem całą geometrię. Aplikacje VR w skali pokoju zwykle ustanawiają tego rodzaju bezwzględny system współrzędnych w skali pomieszczenia z jego pochodzeniem na podłodze.

Natomiast niezamierzone urządzenie rzeczywistości mieszanej, takie jak HoloLens, ma dynamiczną wiedzę opartą na czujnikach na świecie, stale dostosowując swoją wiedzę w czasie otoczenia użytkownika, gdy chodzi o wiele metrów po całym piętrze budynku. W środowisku na skalę światową, jeśli wszystkie hologramy zostały umieszczone w jednym sztywnym układzie współrzędnych, te hologramy muszą z czasem dryfować na podstawie świata lub siebie nawzajem.

Na przykład zestaw słuchawkowy może obecnie wierzyć, że dwie lokalizacje na świecie mają być od siebie 4 metrów, a następnie udoskonalić to zrozumienie, ucząc się, że lokalizacje są w rzeczywistości 3,9 metra od siebie. Gdyby te hologramy początkowo zostały umieszczone 4 metry od siebie w jednym sztywnym układzie współrzędnych, jeden z nich zawsze pojawiałby się 0,1 metra od świata rzeczywistego.

Kotwice przestrzenne

Windows Mixed Reality rozwiązuje problem opisany w poprzedniej sekcji, umożliwiając tworzenie kotwic przestrzennych oznaczania ważnych punktów na świecie, w których użytkownik umieścił hologramy. Kotwica przestrzenna reprezentuje ważny punkt na świecie, o którym system powinien śledzić w czasie.

Gdy urządzenie uczy się o świecie, te kotwice przestrzenne mogą dostosować swoją pozycję na podstawie siebie zgodnie z potrzebami, aby upewnić się, że każda kotwica pozostaje dokładnie tam, gdzie została umieszczona na podstawie rzeczywistego świata. Umieszczając kotwicę przestrzenną w lokalizacji, w której użytkownik umieszcza hologram, a następnie umieszczając ten hologram na podstawie jego kotwicy przestrzennej, można zapewnić, że hologram zachowuje optymalną stabilność, nawet gdy użytkownik wędruje przez dziesiątki metrów.

Ta ciągła korekta kotwic przestrzennych na podstawie siebie jest kluczową różnicą między układami współrzędnymi z kotwic przestrzennych i nieruchomymi ramami odniesienia:

  • Hologramy umieszczone w nieruchomej ramie odniesienia zachowują sztywną relację ze sobą. Jednak gdy użytkownik idzie w długich odległościach, układ współrzędnych tej ramki może dryfować na podstawie świata, aby upewnić się, że hologramy obok użytkownika wydają się stabilne.

  • Hologramy umieszczone w ramce etapowej odniesienia również zachowują sztywną relację ze sobą. W przeciwieństwie do ramy stacjonarnej ramka sceniarna zawsze pozostaje stała na miejscu na podstawie zdefiniowanego pochodzenia fizycznego. Jednak zawartość renderowana w układzie współrzędnych etapu poza granicą 5-metrową będzie wyświetlana stabilna tylko wtedy, gdy użytkownik znajduje się w tej granicy.

  • Hologramy umieszczone przy użyciu jednej kotwicy przestrzennej mogą dryfować na podstawie hologramów umieszczonych przy użyciu innej kotwicy przestrzennej. Dzięki temu system Windows może poprawić swoją wiedzę na temat położenia każdej kotwicy przestrzennej, nawet jeśli na przykład jedna kotwica musi dostosować się w lewo, a druga kotwica musi dostosować się do prawej.

W przeciwieństwie do stacjonarnej ramy odniesienia, która zawsze optymalizuje stabilność w pobliżu użytkownika, rama etapowa kotwic referencyjnych i przestrzennych zapewnia stabilność w pobliżu ich początków. Pomaga to tym hologramom pozostać dokładnie w miejscu w czasie, ale oznacza to również, że hologramy renderowane zbyt daleko od pochodzenia ich układu współrzędnych będą doświadczać coraz poważniejszych efektów dźwigni. Wynika to z tego, że małe korekty położenia i orientacji etapu lub kotwicy są powiększone proporcjonalnie do odległości od tej kotwicy.

Dobrą zasadą jest upewnienie się, że wszystko, co renderujesz w oparciu o system współrzędnych odległej kotwicy przestrzennej, znajduje się w odległości około 3 metrów od źródła. W przypadku pobliskiego źródła etapu renderowanie odległej zawartości jest ok, ponieważ każdy zwiększony błąd pozycyjny będzie mieć wpływ tylko na małe hologramy, które nie przeniosą się zbytnio w widoku użytkownika.

Trwałość zakotwiczenia przestrzennego

Kotwice przestrzenne mogą również umożliwić aplikacji zapamiętywanie ważnej lokalizacji nawet po zawieszeniu aplikacji lub zamknięciu urządzenia.

Możesz zapisać na dysku kotwice przestrzenne tworzone przez aplikację, a następnie załadować je ponownie później, utrwalając je w magazynie zakotwiczenia przestrzennego aplikacji. Podczas zapisywania lub ładowania kotwicy należy podać klucz ciągu zrozumiały dla aplikacji, aby później zidentyfikować kotwicę. Ten klucz należy traktować jako nazwę pliku kotwicy. Jeśli chcesz skojarzyć inne dane z kotwicą, taką jak model 3D, który użytkownik umieścił w tej lokalizacji, zapisz je w magazynie lokalnym aplikacji i skojarz go z wybranym kluczem.

Utrwalając kotwice w sklepie, użytkownicy mogą umieszczać poszczególne hologramy lub umieszczać obszar roboczy, w którym aplikacja będzie umieszczać różne hologramy, a następnie znajdować te hologramy później, gdzie ich oczekują, w wielu zastosowaniach aplikacji.

Możesz również użyć usługi Azure Spatial Anchors na potrzeby asynchronicznej trwałości hologramu na urządzeniach HoloLens, iOS i Android. Dzięki udostępnieniu trwałej kotwicy przestrzennej chmury wiele urządzeń może obserwować ten sam utrwalony hologram w czasie, nawet jeśli te urządzenia nie są obecne razem w tym samym czasie.

Udostępnianie kotwicy przestrzennej

Aplikacja może również udostępniać kotwicę przestrzenną w czasie rzeczywistym innym urządzeniom, co umożliwia udostępnianie środowisk w czasie rzeczywistym.

Za pomocą usługi Azure Spatial Anchors aplikacja może współużytkować kotwicę przestrzenną na wielu urządzeniach HoloLens, iOS i Android. Gdy każde urządzenie renderuje hologram przy użyciu tej samej kotwicy przestrzennej, wszyscy użytkownicy zobaczą hologram wyświetlany w tym samym miejscu w świecie rzeczywistym.

Unikaj zawartości zablokowanej przez głowę

Zdecydowanie odradzamy renderowanie zawartości zablokowanej przez głowę, która pozostaje w stałym miejscu na ekranie (na przykład huD). Ogólnie rzecz biorąc, zawartość zablokowana przez głowę jest niewygodna dla użytkowników i nie czuje się jak naturalna część ich świata.

Zawartość zablokowana na głowę powinna być zwykle zastępowana hologramami dołączonymi do użytkownika lub umieszczaną w samym świecie. Na przykład kursory powinny być zwykle wypychane na świat, skalując naturalnie, aby odzwierciedlić położenie i odległość obiektu pod spojrzeniem użytkownika.

Obsługa błędów śledzenia

W niektórych środowiskach, takich jak ciemne korytarze, może nie być możliwe, aby zestaw słuchawkowy używał śledzenia wewnętrznego w celu poprawnego zlokalizowania się na świecie. Może to prowadzić do hologramów, aby nie pojawiały się lub pojawiały się w nieprawidłowych miejscach, jeśli są obsługiwane nieprawidłowo. Omówimy teraz warunki, w których może się to zdarzyć, jego wpływ na środowisko użytkownika i porady, aby jak najlepiej poradzić sobie z tą sytuacją.

Zestaw słuchawkowy nie może śledzić z powodu niewystarczającej ilości danych z czujnika

Czasami czujniki zestawu słuchawkowego nie są w stanie ustalić, gdzie znajduje się zestaw słuchawkowy. Może się tak zdarzyć, jeśli:

  • Pokój jest ciemny
  • Jeśli czujniki są pokryte włosami lub rękami
  • Jeśli otoczenie nie ma wystarczającej tekstury.

W takim przypadku zestaw słuchawkowy nie będzie mógł śledzić swojej pozycji z wystarczającą dokładnością, aby renderować hologramy zablokowane na świecie. Nie można ustalić, gdzie na urządzeniu opiera się kotwica przestrzenna, ramka stacjonarna lub ramka etapowa. Jednak nadal można renderować zawartość zablokowaną treść w dołączonej ramce odwołania.

Twoja aplikacja powinna poinformować użytkownika, jak uzyskać śledzenie pozycyjne, renderując część zawartości zablokowanej ciałem rezerwową, która opisuje niektóre wskazówki, takie jak odkrywanie czujników i włączanie większej liczby świateł.

Zestaw słuchawkowy śledzi niepoprawnie z powodu zmian dynamicznych w środowisku

Urządzenie nie może prawidłowo śledzić, jeśli w środowisku jest wiele dynamicznych zmian, takich jak wiele osób spacerujących w pokoju. W takim przypadku hologramy mogą wydawać się skakać lub dryfować, ponieważ urządzenie próbuje śledzić się w tym środowisku dynamicznym. W przypadku osiągnięcia tego scenariusza zalecamy używanie urządzenia w środowisku mniej dynamicznym.

Zestaw słuchawkowy śledzi nieprawidłowo, ponieważ środowisko znacznie się zmieniło w czasie

Kiedy zaczniesz używać zestawu słuchawkowego w środowisku, w którym meble, wiszące na ścianie itd., zostało przeniesione, możliwe, że niektóre hologramy mogą pojawić się przesunięte z oryginalnych lokalizacji. Wcześniejsze hologramy mogą również przeskoczyć, gdy użytkownik porusza się w nowym obszarze, ponieważ zrozumienie przestrzeni przez system nie jest już prawdziwe. Następnie system próbuje ponownie zamapować środowisko, jednocześnie próbując uzgodnić cechy pomieszczenia. W tym scenariuszu zaleca się zachęcanie użytkowników do zastępowania hologramów przypiętych na świecie, jeśli nie są one wyświetlane w oczekiwany sposób.

Zestaw słuchawkowy śledzi niepoprawnie z powodu identycznych spacji w środowisku

Czasami dom lub inne miejsce może mieć dwa identyczne obszary. Na przykład dwa identyczne sale konferencyjne, dwa identyczne obszary narożne, dwa duże identyczne plakaty, które obejmują pole widoku urządzenia. W takich scenariuszach urządzenie może czasami pomylić się między identycznymi częściami i oznaczyć je jako takie same w jego wewnętrznej reprezentacji. Może to spowodować, że hologramy z niektórych obszarów będą wyświetlane w innych lokalizacjach. Urządzenie może zacząć tracić śledzenie często, ponieważ jego wewnętrzna reprezentacja środowiska została uszkodzona. W takim przypadku zaleca się zresetowanie zrozumienia środowiska systemu. Zresetowanie mapy prowadzi do utraty wszystkich miejsc zakotwiczenia przestrzennego. Spowoduje to, że zestaw słuchawkowy będzie dobrze śledzić w unikatowych obszarach środowiska. Problem może jednak wystąpić ponownie, jeśli urządzenie ponownie zdezorientuje się między identycznymi obszarami.

Zobacz też