Analiza przypadku — badanie otworów w rzeczywistości

Gdy ludzie pomyślą o rzeczywistości mieszanej i tym, co mogą zrobić z Microsoft HoloLens, zwykle sięgają po pytania takie jak "Jakie obiekty mogę dodać do mojego pokoju?". lub "What can I layer on of my space?" (Co mogę zrobić na mojej przestrzeni?) Chcę wyróżnić inny obszar, który możesz wziąć pod uwagę — zasadniczo magiczny trik — używając tej samej technologii, aby przyjrzeć się rzeczywistym obiektom fizycznym lub przechodzić przez nie.

Technologia

Jeśli w 2015 roku podczas włamań przez ściany w roboRaid odblokowano bezpieczny ściany w fragmencie lub na tyle dobrze, aby zobaczyć hangar UNSC Infinity w środowisku Halo 5 na E3 w 2015 r., zobaczyliśmy, o czym mówię. W zależności od wyobraźni ta wizualna sztuczka może służyć do kładenia tymczasowych otworów w suchej ścianie lub do ukrywania świata pod luźną deską podłogową.

RoboRaid dodaje trójwymiarowe potoki i inną strukturę za ścianami, widoczne tylko za pośrednictwem otworów utworzonych podczas łamania się zszywek.

RoboRaid dodaje trójwymiarowe potoki i inną strukturę za ścianami, widoczne tylko za pośrednictwem otworów utworzonych podczas łamania się zszywek.

Korzystając z jednego z tych unikatowych hologramów na HoloLens, aplikacja może zapewnić iluzję zawartości za ścianami lub przez podłogę w taki sam sposób, jak w rzeczywistości przez rzeczywiste okno. Przenieś się w lewo i zobaczysz, co znajduje się po prawej stronie. Przybliż się i zobaczysz trochę więcej informacji. Główna różnica polega na tym, że rzeczywiste otwory pozwalają przechodzić przez, podczas gdy podłoga uparcie nie pozwala przechodzić przez zawartość magicznych holograficznych. (Dodasz zadanie do listy prac).

Za kulisami

Ta sztuczka to kombinacja dwóch efektów. Najpierw zawartość holograficzna jest przypięta do świata przy użyciu "kotwic przestrzennych". Użycie kotwic w celu "zablokowania świata" zawartości oznacza, że to, co patrzysz, nie odchodzi wizualnie od obiektów fizycznych w pobliżu, nawet gdy przenosisz lub bazowy system mapowania przestrzennego aktualizuje swój model 3D pomieszczenia.

Po drugie, zawartość holograficzna jest wizualnie ograniczona do bardzo określonej przestrzeni, więc w rzeczywistości można ją zobaczyć tylko przez otwory. To okluzowanie jest niezbędne, aby wymagać zaglądanie przez logiczną otworkę, okno lub bramę, która sprzedaje sztuczkę. Bez czegoś blokującego większość widoku, pęknięcie w przestrzeni do tajnego wymiaru Jurajska może po prostu wyglądać jak źle rozpatrzony obraz.

Nie jest to rzeczywisty zrzut ekranu, ale ilustracja przedstawiająca, jak wygląda tajne underworld z wersji MR Basics 101 HoloLens. Czarna obudowa nie jest pokazywana, ale zawartość jest widać za pośrednictwem wirtualnego otworu. (Podczas szukania rzeczywistego urządzenia podłoga wydaje się jeszcze bardziej znikać, ponieważ twoje oczy skupiają się na dalszej odległości, jakby jej nie było).

Nie jest to rzeczywisty zrzut ekranu, ale ilustracja przedstawiająca wygląd tajnego underworld z zestawu mr Basics 101 w HoloLens. Czarna obudowa nie jest pokazywana, ale zawartość jest widać za pośrednictwem wirtualnego otworu. (Podczas szukania rzeczywistego urządzenia podłoga wydaje się jeszcze bardziej znikać, ponieważ twoje oczy skupiają się na dalszej odległości, jakby jej nie było).

Blokowanie zawartości holograficznej na świecie

W a aparatu Unity sprawianie, że zawartość holograficzna jest blokowana na całym świecie, jest tak proste, jak dodanie składnika WorldAnchor:

myObject.AddComponent<WorldAnchor>();

Składnik WorldAnchor będzie stale dostosowywać położenie i rotację obiektu GameObject (a tym samym wszystkie inne elementy w tym obiekcie w hierarchii), aby zachować stabilność względem pobliskich obiektów fizycznych. Podczas tworzenia zawartości utwórz ją w taki sposób, aby główny pivot obiektu był wyśrodkowany w tym wirtualnym otworze. (Jeśli przekrój obiektu znajduje się głęboko w ścianie, niewielkie zmiany położenia i obrotu będą znacznie bardziej zauważalne, a otwory mogą nie wyglądać bardzo stabilnie).

Occluding wszystko oprócz wirtualnego otworu

Istnieją różne sposoby selektywnego blokowania widoku na to, co jest ukryte w ściany. Najprostszy korzysta z faktu, że HoloLens ekranu addytywnego, co oznacza, że w pełni czarne obiekty wydają się niewidoczne. Można to zrobić w a aparatu Unity bez wykonywania żadnych specjalnych cieniowania ani wskazówek materialnych — wystarczy utworzyć czarny materiał i przypisać go do obiektu, który tworzy pola w zawartości. Jeśli nie chcesz modelować 3D, po prostu użyj kilku domyślnych obiektów czworokąt i nieco się nakładają. To podejście ma wiele wad, ale jest najszybszym sposobem na pracę, a uzyskanie weryfikacji koncepcji o niskiej wierności jest doskonałe, nawet jeśli podejrzewasz, że warto refaktoryzować ją później.

Jedną z głównych wad powyższego podejścia "czarnej skrzynki" jest to, że nie jest dobrze sfotografowane. Chociaż efekt może wyglądać idealnie dzięki wyświetlaniu HoloLens, na wszystkich zrzutach ekranu będzie wyświetlany duży czarny obiekt, a nie to, co pozostało ze ściany lub podłogi. Przyczyną jest to, że sprzęt fizyczny i zrzuty ekranu złożone hologramy i rzeczywistość są inaczej. Przejdźmy na chwilę do pewnych fałszywych obliczeń matematycznych...

Fałszywy alert matematycznych! Te liczby i formuły mają na celu zilustrować punkt, a nie być dokładną metryką.

Co można zobaczyć za pośrednictwem HoloLens:

( Reality * darkening_amount ) + Holograms

Co widzisz na zrzutach ekranu i wideo:

( Reality * ( 1 - hologram_alpha ) ) + Holograms * hologram_alpha

W języku angielskim: to, co widzisz HoloLens to prosta kombinacja zaciemnianej rzeczywistości (np. za pomocą okularów przeciwsłonecznych) i dowolnych hologramów, które aplikacja chce pokazać. Jednak po zrzucie ekranu obraz aparatu jest wtopiony w hologramy aplikacji zgodnie z wartością przezroczystości 1 piksela.

Jednym ze sposobów na omianie tego jest zmiana materiału "czarnej skrzynki" tak, aby zapisywał tylko w buforze głębokości, i sortowanie ze wszystkimi innymi nieprzezroczystymi materiałami. Aby uzyskać przykład, zapoznaj się z plikiem WindowOcclusion.shader w zestawie Narzędzi MixedRealityToolkitw GitHub . Odpowiednie wiersze są kopiowane tutaj:

"RenderType" = "Opaque"
"Queue" = "Geometry"
ColorMask 0

(Zwróć uwagę, że wiersz "Przesunięcie 50, 100" dotyczy niepowiązanych problemów, więc prawdopodobnie warto to pozostawić).

Zaimplementowanie niewidocznego materiału occlusion, takiego jak , pozwoli aplikacji na narysowanie pola, które wygląda poprawnie na ekranie i na zrzutach ekranu rzeczywistości mieszanej. W przypadku punktów dodatkowych możesz spróbować jeszcze bardziej poprawić wydajność tego pola, wykonując inteligentne rzeczy w celu narysowania jeszcze mniejszej liczby niewidocznych pikseli, ale to naprawdę może uzyskać dostęp do chłosów i zwykle nie będzie to konieczne.

Oto tajny underworld z mr Basics 101 as Unity drawing it, z wyjątkiem zewnętrznych części pola occluding. Zwróć uwagę, że w środku pola znajduje się punkt przestawny dla podłóg, co pomaga zachować jak najbardziej stabilne otwory względem rzeczywistej podłogi.

Poniżej znajduje się tajne underworld z mr Basics 101 as Unity drawing it, z wyjątkiem zewnętrznych części pola occluding. Zwróć uwagę, że w środku pola znajduje się punkt przestawny dla podłóg, co pomaga zachować jak najbardziej stabilne otwory względem rzeczywistej podłogi.

Zrób to samodzielnie

Masz HoloLens i chcesz wypróbować efekt samodzielnie? Najprostszym rozwiązaniem jest zainstalowanie bezpłatnej aplikacji Przeglądarka 3D i załadowanie pliku download.fbx dostarczonego przeze mnie na platformie GitHub w celu wyświetlenia modelu doniczki kwiatów w pomieszczeniu. Załaduj HoloLens, aby zobaczyć iluzję w pracy. Przed modelem widać tylko mały otwor — wszystkie inne są niewidoczne. Przyjrzyj się modelowi z innej strony i całkowicie znika. Użyj kontrolek ruchu, obrotu i skalowania Przeglądarka 3D, aby umieścić wirtualny otwor na dowolnej pionowej powierzchni, o których możesz myśleć, aby wygenerować kilka pomysłów.

Wyświetlenie tego modelu w edytorze aparatu Unity spowoduje wyświetlenie dużej czarnej skrzynki wokół doniczki. Na HoloLens pole zniknie, dając w efekcie efekt magiczny okna.

Wyświetlenie tego modelu w edytorze aparatu Unity spowoduje wyświetlenie dużej czarnej skrzynki wokół doniczki. Na HoloLens pole zniknie, dając w efekcie efekt magiczny okna.

Jeśli chcesz utworzyć aplikację, która korzysta z tej techniki, zapoznaj się z samouczkiem MR Basics 101 w samouczkach Mixed Reality samouczków. Rozdział 7 kończy się insygnacyjną insygnacyjną powierzchnią podłogi, która ujawnia ukryte podziemie (jak na ilustracji powyżej). KtoTo samouczki muszą być nudziące?

Poniżej podano kilka pomysłów, na które możesz skorzystać w następnej części tego pomysłu:

  • Pomyśl o sposobach na interakcyjną zawartość wewnątrz wirtualnego otworu. Umożliwienie użytkownikom pewnego wpływu poza ich ściany może naprawdę poprawić sens, że ten trik może zapewnić.
  • Pomyśl o sposobach, aby przejść przez obiekty z powrotem do znanych obszarów. Na przykład jak można umieścić otwory holograficzne w tabeli do kawy i zobaczyć łódkę pod nim?

Informacje o autorze

Picture of Eric Rehmeyer Eric Reh w imieniu
Starszy inżynier oprogramowania @Microsoft

Zobacz też