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 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 wnioskowania o pozycji hologramu, orientacji, promienia wzroku lub położenia ręki.
Obsługa urządzeń
Funkcja | HoloLens (1. generacja) | HoloLens 2 | Immersyjne zestawy nagłowne |
Ramka nieruchoma odniesienia | ✔️ | ✔️ | ✔️ |
Dołączona ramka odwołania | ✔️ | ✔️ | ✔️ |
Ramka etapowa odwołania | Jeszcze nie obsługiwane | Jeszcze nie obsługiwane | ✔️ |
Kotwice przestrzenne | ✔️ | ✔️ | ✔️ |
Mapowanie przestrzenne | ✔️ | ✔️ | ❌ |
Informacje o scenie | ❌ | ✔️ | ❌ |
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 nagłownego po aplikacje i gry w skali światowej przy użyciu mapowania przestrzennego i kotwic przestrzennych:
Skala środowiska | Wymagania | Przykładowe środowisko |
---|---|---|
Tylko orientacja | Orientacja zestawu nagłownego (wyrównana grawitacja) | Przeglądarka wideo 360° |
Skala siedzeń | Pozycja na zestawie słuchawkowym powyżej plus na podstawie pozycji zerowej | Gra wyścigowa lub symulator kosmosu |
Skala stojąca | Powyżej źródła podłogi etapowej plus | Gra akcji, w której kaczki i dodge w miejscu |
Skala pomieszczeń | Powyżej znaku plus granice wielokąta | Gra logiczna, w której chodzisz po zagadki |
Skala światowa | Kotwice przestrzenne (i zazwyczaj mapowanie przestrzenne) | Graj 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 środowiska Windows Mixed Reality jest to: dany zestaw słuchawkowy obsługuje aplikacje utworzone w celu skalowania środowiska docelowego i wszystkich mniejszych skali.
Śledzenie 6DOF | Zdefiniowano podłogę | Śledzenie 360° | Zdefiniowane granice | Kotwice przestrzenne | Maksymalna liczba doświadczeń |
---|---|---|---|---|---|
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. | Room (Podstawowe pomieszczenie sieciowe) |
Tak | Tak | Tak | Tak | Tak | Świat |
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, aby znaleźć podłogę i ściany użytkownika.
Układy współrzędnych przestrzennych
Wszystkie aplikacje graficzne 3D używają kartezjańskich układów współrzędnych do wnioskowania o położeniach i orientacjach 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 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 leworęcznym układzie współrzędnych oś Z wskazuje od Ciebie.
Systemy współrzędnych przestrzennych w systemie Windows (i w związku z tym Windows Mixed Reality) są zawsze praworęczne.
[! UWAGI]
- Unity i Unreal używają leworęcznego układu współrzędnych.
- 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 dla aplikacji modelowania 3D, aby używać 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 skalowania tylko do orientacji lub siedzenia
Kluczem do renderowania holograficznego jest zmiana widoku jego hologramów każdej ramki w miarę poruszania się użytkownika w celu dopasowania ich przewidywanego ruchu głowy. Możesz tworzyć środowiska o 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, utrzymując stałe w wybranym nagłówku i odległość od użytkownika zawsze. Podstawowym przykładem jest 360-stopniowy film wideo: ponieważ wideo jest przechwytywane z pojedynczej stałej perspektywy, zrujnowałoby to iluzję, aby położenie widoku było przenoszone na podstawie zawartości, mimo że orientacja widoku zmienia się, gdy użytkownik patrzy. Takie środowiska tylko orientacji można tworzyć przy użyciu dołączonej ramki odwołania.
Ramka nieruchoma odniesienia
Układ współrzędnych dostarczany przez nieruchomą ramę odniesienia działa w celu utrzymania pozycji obiektów w pobliżu użytkownika tak stabilnych, jak to możliwe na podstawie świata, przy jednoczesnym poszanowaniu zmian położenia głowy użytkownika.
W przypadku środowisk o skali siedzenia w silniku gry, takim jak Unity, stacjonarny rama odniesienia jest tym, co definiuje "pochodzenie świata silnika". Obiekty umieszczone na określonej współrzędnej świata używają stacjonarnej ramki odniesienia, 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ą ramkę 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 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 stacjonarnej ramce odniesienia dla aplikacji na 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ę świata, 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 przenosi się z użytkownikiem w miarę poruszania się, ze stałym nagłówkiem zdefiniowanym podczas pierwszego tworzenia ramki przez aplikację. Dzięki temu użytkownik wygodnie rozgląda się nad zawartością umieszczoną 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 ustalić, gdzie znajduje się na świecie, dołączona rama odniesienia 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 jego urządzenie nie może znaleźć ich na świecie. Aplikacje, które są skalowane w poziomie lub wyższym, powinny zawierać rezerwowy tylko orientację, aby ułatwić użytkownikowi powrót do pracy, z interfejsem użytkownika podobnym do pokazanego w domu rzeczywistości mieszanej.
Tworzenie środowiska na skalę stałą lub w skali pomieszczenia
Aby wyjść poza skalę siedzącą na immersywnym zestawie słuchawkowym i utworzyć ś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 etapowa 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 minimalnie definiuje początek etapu, układ współrzędnych przestrzennych wyśrodkowany na wybranej przez użytkownika pozycji podłogi i orientacji do przodu, gdzie 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 w celu poruszania 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, gdzie użytkownik może je osiągnąć.
Ponieważ ramka etapowa odwołania zapewnia jeden stały system współrzędnych, w którym można umieścić zawartość względną podłogą, 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 zmienić zauważalnie, gdy system się dostosowuje. Aby przejść 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ć poza 5 metrów. Aby utworzyć aplikację na skalę światową, potrzebujesz nowych technik poza tymi, które są używane w środowiskach o 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 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 zwykle ustanawiają tego rodzaju bezwzględny system współrzędnych skali pokoju z jego pochodzeniem na podłodze.
Natomiast niezamierzone 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 o wiele metrów po całym piętrze budynku. W środowisku skali światowej, jeśli wszystkie hologramy zostały umieszczone w jednym sztywnym układzie współrzędnych, te hologramy muszą dryfować w czasie, zarówno na podstawie świata, jak i siebie nawzajem.
Na przykład zestaw słuchawkowy może obecnie wierzyć, że dwie lokalizacje na świecie mają być 4 metrów od siebie, 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 metrów od siebie w jednym sztywnym układzie współrzędnych, jeden z nich zawsze wydaje 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 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 kotwic przestrzennych na podstawie siebie jest kluczową różnicą między układami współrzędnych z kotwic przestrzennych i ram stacjonarnych odniesienia:
Hologramy umieszczone w nieruchomej ramie odniesienia zachowują sztywną relację 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 będą stabilne.
Hologramy umieszczone w ramce etapowej odwołania również zachowują sztywną relację ze sobą. W przeciwieństwie do ramy stacjonarnej ramka sceny 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 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ę do lewej, a inna kotwica musi dostosować prawą.
W przeciwieństwie do nieruchomej ramki odniesienia, 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łą kciuka jest upewnienie się, że wszystkie elementy renderowane na podstawie odległego układu współrzędnych kotwicy przestrzennej mieści się w odległości około 3 metrów od jego ź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
Zakotwiczenia przestrzenne mogą również umożliwić aplikacji zapamiętywanie ważnej lokalizacji nawet po zawieszeniu aplikacji lub wyłączeniu 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, 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 tym kotwicą, na przykład model 3D, który użytkownik umieścił w tej lokalizacji, zapisz je w magazynie lokalnym aplikacji i skojarz 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.
Unikaj zawartości zablokowanej przez głowę
Zdecydowanie odradzamy renderowanie zawartości zablokowanej przez głowę, która pozostaje na stałym miejscu na wyświetlaczu (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 umieszczonymi 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 tego, że hologramy nie są wyświetlane lub pojawiają się w nieprawidłowych miejscach, jeśli są obsługiwane nieprawidłowo. Teraz omawiamy 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 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 nieruchoma ani 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 niepoprawnie z powodu dynamicznych zmian w środowisku
Urządzenie nie może śledzić prawidłowo, jeśli w środowisku istnieje 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 trafienia w tym scenariuszu zalecamy użycie urządzenia w środowisku mniej dynamicznym.
Ścieżki nagłowne nieprawidłowo, ponieważ środowisko uległo znacznej zmianie w czasie
Kiedy zaczniesz używać zestawu słuchawkowego w środowisku, w którym meble, wiszące na ścianie i tak dalej, zostało 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, a jednocześnie próbuje 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 pojawiają się tam, gdzie się spodziewano.
Ścieżki nagłowne niepoprawnie ze względu na identyczne przestrzenie 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 widzenia urządzenia. W takich scenariuszach urządzenie może czasami mylić te same części i oznaczyć je jako takie same w 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 zostanie ponownie zdezorientowane między identycznymi obszarami.