Případová studie – Prohledejte si otvory ve skutečnosti

Když lidé přemýšlejí o hybridní realitě a o tom, co mohou dělat s Microsoft HoloLens, obvykle se drží otázek typu "Jaké objekty můžu přidat do místnosti?" nebo "Co můžu vrstvit nad svým prostorem?" Chci zdůraznit další oblast, kterou můžete vzít v úvahu – v podstatě magický trik – pomocí stejné technologie k prohlédněte si nebo prohlédněte skutečné fyzické objekty kolem vás.

Tech

Pokud jste v RoboRaiduprolomili stěny, odemkli jste trezor na zdi ve fragmentechnebo měli dost štěstí, že jste viděli v prostředí Haló 5 na E3 v roce 2015nekonečný hangar UNSC, pak jste viděli, o čem mluvím. V závislosti na vaší představivosti můžete tento vizuální trik použít k umístění dočasných otvorů do sádrokartonu nebo k skrytí světů pod volné podlahy.

RoboRaid přidává trojrozměrné kanály a další strukturu za zdi, které jsou viditelné pouze prostřednictvím otvorů vytvořených při prolomení suřacích.

RoboRaid přidává trojrozměrné kanály a další strukturu za zdi, které jsou viditelné pouze prostřednictvím otvorů vytvořených při prolomení suřacích.

Pomocí jednoho z těchto jedinečných hologramů v HoloLens může aplikace poskytnout iluzi obsahu za zdmi nebo podlahou stejným způsobem, jakým se realita prezentuje ve skutečném okně. Posuňte se doleva a uvidíte, co je na pravé straně. Přiblížte se a uvidíte všechno trochu víc. Hlavní rozdíl je v tom, že skutečné otvory vám umožní projít, zatímco vaše podlaží vám neumožní prolomit tento magický holografický obsah. (Přidám úlohu do backlogu.)

Informace pro pokročilé uživatele

Tento trik je kombinací dvou efektů. Nejprve se holografický obsah připnul do světa pomocí "prostorových ukotvení". Použití ukotvení k tomu, aby byl tento obsah "uzamknutý světem", znamená, že to, na co se díváte, se vizuálně nelizí od fyzických objektů v jeho blízkosti, a to ani v případě, že se přesunete nebo základní prostorový systém mapování aktualizuje 3D model vaší místnosti.

Za druhé je holografický obsah vizuálně omezený na velmi specifický prostor, takže můžete vidět jen skrz otvor ve vaší realitě. Toto okluze je nezbytné k tomu, abyste si prošli logickou otvor, okno nebo dveře, která tento trik prodává. Bez něčeho, co by zablokoval většinu pohledu, může prolomit vesmírnou prolomenou návěsí tajnéMu krátkujícímu rozměru vypadat jako špatně umístěný dech.

Toto není skutečný snímek obrazovky, ale obrázek toho, jak tajný kód underworld z MR Basics 101 vypadá HoloLens. Černá skříň se nez zobrazení, ale obsah můžete vidět prostřednictvím virtuálního otvoru. (Při pohledu přes skutečné zařízení by se zdálo, že podlaží zmizí ještě více, protože vaše oči se zaměřují na další vzdálenost, jako by ani tam nebyla.)

Toto není skutečný snímek obrazovky, ale obrázek toho, jak tajný kód underworld z MR Basics 101 vypadá HoloLens. Černá skříň se nez zobrazení, ale obsah můžete vidět prostřednictvím virtuálního otvoru. (Při pohledu přes skutečné zařízení by se zdálo, že podlaží zmizí ještě více, protože vaše oči se zaměřují na další vzdálenost, jako by ani tam nebyla.)

Holografický obsah se světem uzamykáním

V Unity je způsob, že holografický obsah zůstane uzamknutý na světě, stejně snadné jako přidání komponenty WorldAnchor:

myObject.AddComponent<WorldAnchor>();

Komponenta WorldAnchor neustále upraví pozici a otočení svého objektu GameObject (a tedy cokoli jiného v rámci tohoto objektu v hierarchii), aby byla stabilní vzhledem k blízkým fyzickým objektům. Při vytváření obsahu ho vytvořte tak, aby byl kořenový pivot vašeho objektu za středem tohoto virtuálního otvoru. (Pokud je pivot vašeho objektu hluboko na zdi, jeho drobné úpravy pozice a otočení budou mnohem patrnější a otvor nemusí vypadat velmi stabilní.)

Occluding everything but the virtual hole

Existuje několik způsobů, jak selektivně zablokovat zobrazení toho, co je skryté ve zdech. Nejjednodušší z nich využívá skutečnost, že HoloLens aditivní displeji, což znamená, že plně černé objekty se zdají být neviditelné. V Unity to můžete udělat bez speciálních triky v shaderu nebo materiálech – stačí vytvořit černý materiál a přiřadit ho k objektu, který v obsahu obsahuje pole. Pokud 3D modelování nechcete, stačí použít několik výchozích čtyřúhelníkových objektů a mírně je překrývat. Tento přístup má řadu nevýhod, ale je to nejrychlejší způsob, jak něco zpracuje, a získání málo věrné kontroly konceptu je skvělé, i když máte podezření, že ho budete chtít refaktorovat později.

Jednou z hlavních nevýhod výše uvedeného přístupu "černá skříňka" je, že nevyfotografuje dobře. I když by váš účinek mohl vypadat skvěle HoloLens obrazovky, všechny snímky obrazovky zobrazí velký černý objekt místo toho, co zbývá z vaší zdi nebo podlahy. Důvodem je rozdíl mezi fyzickým hardwarem a snímky obrazovky se složenými hologramy a realitou. Pojďme se na chvíli rozjet do nějaké falešné matematiky...

Upozornění na falešnou matematiku! Tato čísla a vzorce jsou určeny k ilustraci bodu, nikoli jako jakéhokoli druhu přesné metriky.

Co vidíte prostřednictvím HoloLens:

( Reality * darkening_amount ) + Holograms

Co vidíte na snímcích obrazovky a ve videu:

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

V angličtině: Co vidíte prostřednictvím HoloLens je jednoduchá kombinace tmavé reality (například prostřednictvím slunečních brýlí) a hologramů, které chce aplikace zobrazit. Když ale pořidíte snímek obrazovky, obrázek fotoaparátu se prolnutí s hologramy aplikace podle hodnoty průhlednosti na pixely.

Jedním ze způsob, jak to obchádnou, je změnit materiál "černé skříňky" tak, aby se zapisl jenom do vyrovnávací paměti hloubky a seřadí se podle všech ostatních neprůhledných materiálů. Příklad: Podívejte se na soubor WindowOcclusion.shader v mixedRealityToolkit na GitHub. Sem se zkopírují příslušné řádky:

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

(Všimněte si, že řádek Posun 50, 100 se má zabývat nesouvisejícími problémy, takže by pravděpodobně dávalo smysl to nechat mimo.)

Implementací neviditelného materiálu okluze, jako je tento, umožníte aplikaci nakreslit rámeček, který vypadá správně na displeji a na snímcích obrazovky hybridní reality. V případě bonusových bodů se můžete pokusit vylepšit výkon tohoto boxu ještě více, a to chytrým způsobem, abyste nakreslili ještě méně neviditelných pixelů, ale to se může dostat do posvítek a obvykle to nebude nutné.

Tady je tajný kód underworld z MR Basics 101, jak ho Unity vykreslí, s výjimkou vnějších částí occluding boxu. Všimněte si, že pivot pro podsvětí je uprostřed krabice, což pomáhá udržet otvor co nejstabilnější vzhledem k vaší skutečné podlaží.

Tady je tajný kód underworld z MR Basics 101, jak ho Unity vykreslí, s výjimkou vnějších částí occluding boxu. Všimněte si, že pivot pro podsvětí je uprostřed krabice, což pomáhá udržet otvor co nejstabilnější vzhledem k vaší skutečné podlaží.

Proveďte to sami.

Máte HoloLens a chcete si tento účinek vyzkoušet sami? Nejjednodušší věc, kterou můžete udělat (bez psaní kódu), je nainstalovat bezplatnou aplikaci 3D prohlížeč a pak načíst soubor download.fbx, který jsem poskytl na GitHub, abyste si mohli prohlédnout model hrnce ve vaší místnosti. Načtěte ho HoloLens a uvidíte iluzi v práci. Když jste před modelem, můžete vidět jen do malého otvoru – všechno ostatní je neviditelné. Podívejte se na model z jakékoli jiné strany a úplně zmizí. Pomocí ovládacích prvků pohyb, otočení a škálování 3D prohlížeč umístěte virtuální otvor proti libovolnému svislému povrchu, který vás napadá, abyste mohli vygenerovat nějaké nápady.

Zobrazením tohoto modelu v editoru Unity se kolem hrnítka zobrazí velká černá skříňka. Na HoloLens pole zmizí a tím se projeví magické okno.

Zobrazením tohoto modelu v editoru Unity se kolem hrnítka zobrazí velká černá skříňka. Na HoloLens pole zmizí a tím se projeví magické okno.

Pokud chcete vytvořit aplikaci, která používá tuto techniku, podívejte se na kurz MR Basics 101 v Mixed Reality kurzech. Kapitola 7 končí explozí ve vaší podlaží, která odhalí skrytý podsvět (jak je na obrázku výše). Kdo, že kurzy musí být neschůdné?

Tady jsou některé nápady, jak tuto myšlenku vzít jako další:

  • Představte si způsoby, jak obsah uvnitř virtuálního otvoru vytvořit jako interaktivní. Když dáte uživatelům nějaký dopad mimo jejich zdi, může to vylepšovat pocit divu, že tento trik může poskytnout.
  • Představte si způsoby, jak zobrazit objekty zpět do známých oblastí. Jak můžete například dát holografický otvor do kávovaru a vidět pod ním podlahu?

O autorovi

Obrázek Erica Reh na obrázku Eric Reh pro
Senior Software Engineer @Microsoft

Viz také