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 miejscem, czy obszarem wirtualnym, 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. Tych systemów można używać do powodowania położenia hologramu, orientacji, promienia wzroku lub położenia ręki.


Obsługa urządzeń

Funkcja HoloLens (1. generacja) HoloLens 2 Immersyjne zestawy nagłowne
Rama nieruchoma odniesienia ✔️ ✔️ ✔️
Dołączona ramka odwołania ✔️ ✔️ ✔️
Ramka etapowa odwołania Jeszcze nieobsługiwane Jeszcze nieobsługiwane ✔️
Kotwice przestrzenne ✔️ ✔️ ✔️
Mapowanie przestrzenne ✔️ ✔️
Informacje o scenie ✔️

Skalowanie środowiska rzeczywistości mieszanej

Aplikacje rzeczywistości mieszanej można projektować pod kątem szerokiej gamy środowisk użytkownika— od 360 stopni osób oglądających wideo przy użyciu orientacji zestawu nagłownego po aplikacje i gry w skali światowej przy użyciu mapowania przestrzennego i kotwic przestrzennych:


Skalowanie środowiska Wymagania Przykładowe środowisko
Tylko orientacja Orientacja zestawu nagłownego (wyrównana grawitacja) Przeglądarka wideo 360°
Skala siedzeń Powyżej plus położenie zestawu nagłownego w oparciu o położenie zerowe Gry wyścigowe lub symulator kosmosu
Skala stojąca Początek podłogi powyżej plus etap Gra akcji, w której kaczki i unikać na miejscu
Skala pomieszczeń Powyżej znaku plus granice wielokąta Gra logiczna, w której chodzisz po układanki
Skala światowa Kotwice przestrzenne (i zwykle mapowanie przestrzenne) Graj z wrogami pochodzącymi z prawdziwych ścian, takich jak RoboRaid

Powyższe środowisko jest skalowane 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 Zdefiniowane piętro Śledzenie 360° Zdefiniowane granice Kotwice przestrzenne Maksymalne doświadczenie
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 pomieszczeń na urządzeniu HoloLens musi obecnie używać mapowania przestrzennego lub zrozumienia sceny , aby znaleźć podłogę i ściany użytkownika.

Systemy 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ł pozycję 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 dwa jednostki od siebie na osi X, Y lub Z będą wyświetlane dwa mierniki oprócz 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 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 w kierunku Ciebie, podczas gdy w układzie współrzędnych leworęcznych oś Z wskazuje od Ciebie.

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

Zdjęcie lewej strony osoby pokazującej 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]

  • Aparat 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. Nie jest to na przykład niezwykłe w przypadku aplikacji modelowania 3D do używania układu współrzędnych, w którym oś Y wskazuje w kierunku lub z dala od widza, a oś Z wskazuje w górę.

Tworzenie środowiska skalowania tylko do orientacji lub siedzenia

Kluczem do renderowania holograficznego jest zmiana widoku aplikacji na hologramy każdej ramki, gdy użytkownik porusza się w celu dopasowania ich przewidywanego ruchu głowy. Można tworzyć środowiska na dużą skalę , które szanują zmiany położenia głowy i orientacji głowy użytkownika przy użyciu stacjonarnej ramki odwołania.

Niektóre elementy zawartości muszą ignorować aktualizacje pozycji głowy, pozostają 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, zrujnuje iluzję położenia widoku, aby przenieść się na podstawie zawartości, mimo że widok zmienia orientację, gdy użytkownik rozgląda się. Takie środowiska tylko orientacji można tworzyć przy użyciu dołączonej ramki odwołania.

Rama nieruchoma odniesienia

Układ współrzędny dostarczany przez stacjonarną ramę odniesienia działa w celu utrzymania pozycji obiektów znajdujących się w pobliżu użytkownika tak stabilnego, jak to możliwe na podstawie świata, przy jednoczesnym przestrzeganiu zmian w pozycji głównej użytkownika.

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

Aplikacja zazwyczaj tworzy jedną nieruchomą ramę odwołania podczas uruchamiania i używa jej systemu 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, co będzie znajdować się w początkowej pozycji i orientacji użytkownika. Jeśli użytkownik przejdzie do nowego miejsca i chce kontynuować ś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 uważa system. Jeśli renderujesz hologramy w stacjonarnej 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ło innych technik, aby zachować stabilność hologramów, jak opisano poniżej.

Dołączona ramka odwołania

Dołączona ramka odwołania przenosi się z użytkownikiem w miarę poruszania się, ze stałym nagłówkiem zdefiniowanym po pierwszym utworzeniu ramki przez aplikację. Dzięki temu użytkownik wygodnie rozgląda się po zawartości umieszczonej w tej ramce odwołania. Zawartość renderowana w ten sposób względny dla użytkownika jest nazywana zawartością zablokowaną treść .

Gdy zestaw słuchawkowy nie może dowiedzieć się, gdzie znajduje się na świecie, dołączona ramka odwołania zapewnia jedyny układ współrzędnych, który może służyć do renderowania hologramów. To sprawia, że idealnie nadaje się do wyświetlania rezerwowego interfejsu użytkownika, aby poinformować użytkownika, że ich urządzenie nie może znaleźć na świecie. Aplikacje, które są skalowane na dużą skalę lub wyższą, powinny zawierać rezerwowy tylko orientację, aby pomóc użytkownikowi w ponownym przejściu, z interfejsem użytkownika podobnym do pokazanego w Mixed Reality domu.

Tworzenie środowiska skalowania na stojąco lub w skali pokoju

Aby przejść poza skalę siedzącą na immersywnym zestawie słuchawkowym i zbudować środowisko na skalę stałą, możesz użyć ramki etapowej odwołania.

Aby zapewnić środowisko skalowania pomieszczeń, pozwalając użytkownikom poruszać się w granicach 5-metrowych, które wstępnie zdefiniowali, możesz również sprawdzić granice etapu .

Ramka etapu odwołania

Podczas pierwszego konfigurowania immersyjnego zestawu słuchawkowego 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 pozycji podłogi użytkownika i orientacji do przodu, w której zamierza używać urządzenia. Umieszczając zawartość w tym układzie współrzędnych etapu na płaszczyźnie Y=0, można zapewnić, że hologramy są wygodnie wyświetlane 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 skalowania pomieszczeń, 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ą na podłodze, jest to najłatwiejsza ścieżka do przenoszenia aplikacji na skalę stojącą i skalowania pomieszczeń opracowanych dla zestawów słuchawkowych 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 ramienia powodują zawartość daleko od środka, aby zmienić zauważalnie w miarę dostosowywania systemu. Aby przejść poza 5 metrów, potrzebne są kotwice przestrzenne.

Tworzenie środowiska na skalę światową

Urządzenie HoloLens umożliwia prawdziwe środowiska skali światowej , które pozwalają użytkownikom wędrować poza 5 metrów. Aby utworzyć aplikację na skalę światową, potrzebne będą nowe techniki wykraczające poza te, które są używane w środowiskach w skali pomieszczenia.

Dlaczego nie można używać jednego sztywnego układu współrzędnych poza 5 metrów

Obecnie podczas pisania gier, aplikacji do 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 na 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 obecnie zwykle ustanawiają ten rodzaj bezwzględnego systemu współrzędnych w skali pokoju z jego pochodzeniem na podłodze.

Z kolei urządzenie rzeczywistości mieszanej, takie jak HoloLens, ma dynamiczne zrozumienie świata oparte na czujnikach, stale dostosowując swoją wiedzę w czasie otoczenia użytkownika, gdy chodzi wiele metrów po całej podłodze budynku. W środowisku skali światowej, jeśli umieścisz wszystkie hologramy w jednym sztywnym układzie współrzędnych, te hologramy muszą dryfować w czasie, albo na podstawie świata, czy do 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 uściślić 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 metrów 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 zakotwiczeń przestrzennych w celu oznaczania ważnych punktów na świecie, w których użytkownik umieścił hologramy. Kotwica przestrzenna reprezentuje ważny punkt na świecie, który system powinien śledzić w czasie.

Gdy urządzenie dowie się o świecie, te kotwice przestrzenne mogą dostosować swoje położenie 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 zakotwiczenia przestrzennego, można upewnić się, że hologram utrzymuje optymalną stabilność, nawet gdy użytkownik wędruje przez dziesiątki metrów.

Ta ciągła korekta zakotwiczeń przestrzennych na podstawie siebie jest kluczową różnicą między układami współrzędnymi z kotwic przestrzennych i ram stacjonarnych odwołań:

  • Hologramy umieszczone w stacjonarnej ramie odniesienia wszystkie utrzymują sztywne relacje ze sobą. Jednak gdy użytkownik przechodzi długie odległości, układ współrzędnych ramki może dryfować na podstawie świata, aby upewnić się, że hologramy obok użytkownika wydają się stabilne.

  • Hologramy umieszczone w ramce etapowej odwołania również zachowują sztywną relację ze sobą. W przeciwieństwie do ramy stacjonarnej ramka scenii zawsze pozostaje stała na podstawie zdefiniowanego pochodzenia fizycznego. Jednak zawartość renderowana w układzie współrzędnych etapu poza granicą 5-metrową będzie widoczna tylko stabilna, gdy użytkownik stoi w obrębie 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 inna kotwica musi dostosować się do prawej.

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

Dobrą regułą jest zapewnienie, że wszystko renderowane na podstawie układu współrzędnych odległej kotwicy przestrzennej mieści się w odległości około 3 metrów od jego pochodzenia. 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 przesuną dużo w widoku użytkownika.

Trwałość zakotwiczenia przestrzennego

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

Możesz zapisać na dysku zakotwiczenia 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, który ma znaczenie dla aplikacji, aby później zidentyfikować kotwicę. Ten klucz należy traktować jako nazwę pliku kotwicy. Jeśli chcesz skojarzyć inne dane z tę 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 znaleźć te hologramy później, gdzie ich oczekują, w wielu zastosowaniach aplikacji.

Możesz również użyć usługi Azure Spatial Anchors do asynchronicznego 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 utrwalone hologramy 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 pozwala na współużytkowanie środowisk w czasie rzeczywistym.

Za pomocą usługi Azure Spatial Anchors aplikacja może udostępniać kotwicę przestrzenną na wielu urządzeniach HoloLens, iOS i Android. Jeśli 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 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 przez 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, skalowanie naturalnie w celu odzwierciedlenia położenia i odległości 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, aby zlokalizować się poprawnie na świecie. Może to prowadzić hologramy, aby nie były wyświetlane lub pojawiały się w nieprawidłowych miejscach, jeśli zostały nieprawidłowo obsłużone. Teraz omawiamy warunki, w których może się to zdarzyć, jego wpływ na środowisko użytkownika i porady, aby najlepiej poradzić sobie z tą sytuacją.

Zestaw słuchawkowy nie może śledzić z powodu niewystarczającej ilości danych 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ć światowej blokady hologramów. Nie można dowiedzieć się, 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.

Aplikacja powinna poinformować użytkownika, jak uzyskać śledzenie pozycyjne, renderowanie niektórych rezerwowych treści zablokowanych treści, które opisują niektóre wskazówki, takie jak odkrywanie czujników i włączanie większej liczby świateł.

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

Urządzenie nie może śledzić prawidłowo, jeśli istnieje wiele dynamicznych zmian w środowisku, 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życie 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ły przeniesione, możliwe, że niektóre hologramy mogą pojawić się przesunięte z ich oryginalnych lokalizacji. Wcześniejsze hologramy mogą również przeskoczyć, gdy użytkownik porusza się w nowej przestrzeni, ponieważ zrozumienie przestrzeni przez system nie jest już prawdziwe. Następnie system próbuje ponownie zamapować środowisko, starając się również uzgodnić cechy pokoju. W tym scenariuszu zaleca się zachęcanie użytkowników do zastępowania hologramów przypiętych na świecie, jeśli nie pojawiają się tam, gdzie się spodziewano.

Zestaw słuchawkowy śledzi nieprawidłowo ze względu na identyczne przestrzenie w środowisku

Czasami dom lub inna przestrzeń 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 zostać zdezorientowane między identycznymi częściami i oznaczyć je jako takie same w swojej 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. Jednak problem może się powtarzać, jeśli urządzenie ponownie zostanie zdezorientowane między identycznymi obszarami.

Zobacz też