Případová studie – Prohlížíte si díry ve své realitě.

Když lidé přemýšlí o hybridní realitě a o tom, co můžou dělat s Microsoft HoloLens, obvykle se drží otázek typu "Jaké objekty můžu přidat do svého pokoje?" nebo "Co můžu vrstvit nad prostorem?". Chtěl bych zdůraznit další oblast, kterou můžete zvážit – v podstatě kouzelný trik – použití stejné technologie k pohledu na skutečné fyzické objekty kolem vás nebo přes ně.

Technologie

Pokud jste bojovali s mimozemšťany, když prolomili vaše zdi v RoboRaid, odemknuli jste zeď bezpečně ve fragmentech, nebo jste měli to štěstí, že jste viděli hangár UNSC Infinity v halo 5 v prostředí Halo 5 v roce 2015, pak jste viděli, o čem mluvím. V závislosti na vaší fantazii může být tento vizuální trik použit k umístění dočasných otvorů do sádrokartonu nebo ke skrytí světů pod volnou podlahovou deskou.

RoboRaid přidává za zdmi trojrozměrné trubky a další strukturu, viditelné pouze prostřednictvím otvorů vytvořených při prolomení útočníků.

RoboRaid přidává za zdmi trojrozměrné trubky a další strukturu, viditelné pouze prostřednictvím otvorů vytvořených při prolomení útočníků.

Pomocí jednoho z těchto jedinečných hologramů na HoloLensu může aplikace poskytovat iluzi obsahu za zdmi nebo podlahou stejným způsobem, jakým se realita prezentuje skutečným oknem. Přesuňte se doleva a uvidíte, co je na pravé straně. Dostaďte se blíž a uvidíte trochu víc ze všeho. Hlavní rozdíl je v tom, že skutečné díry umožňují projít, zatímco vaše podlaha tvrdohlavě nedovolí vyšplhat až k magickému holografickému obsahu. (Přidám úkol do backlogu.)

Informace pro pokročilé uživatele

Tento trik je kombinací dvou efektů. Za prvé, holografický obsah je připnut na svět pomocí "prostorových ukotvení". Použití ukotvení k tomu, aby byl tento obsah "uzamčený světem", znamená, že to, na co se díváte, se vizuálně neodklánějí od fyzických objektů v jeho blízkosti, ani když se přesunete nebo když základní systém prostorového mapování aktualizuje svůj 3D model vaší místnosti.

Za druhé, tento holografický obsah je vizuálně omezen na velmi specifický prostor, takže můžete vidět jen skrz díru ve své realitě. Tato okluze je nezbytná k tomu, aby bylo nutné prohlédnout logickou díru, okno nebo dveře, které tento trik prodávají. Bez něčeho, co blokuje většinu pohledů, by trhlina ve vesmíru do tajné jurské dimenze mohla vypadat jako špatně umístěný dinosaurus.

Toto není skutečný snímek obrazovky, ale ilustrace toho, jak vypadá tajné podsvětí z MR Basics 101 na HoloLensu. Černý kryt se nezobrazuje, ale obsah můžete vidět virtuální dírou. (Při prohlížení skutečného zařízení by se zdálo, že podlaha zmizí ještě více, protože vaše oči se zaměřují na větší vzdálenost, jako by tam ani není.)

Toto není skutečný snímek obrazovky, ale ilustrace toho, jak vypadá tajné podsvětí z MR Basics 101 na HoloLensu. Černý kryt se nezobrazuje, ale obsah můžete vidět virtuální dírou. (Při prohlížení skutečného zařízení by se zdálo, že podlaha zmizí ještě více, protože vaše oči se zaměřují na větší vzdálenost, jako by tam ani není.)

Holografický obsah, který je po celém světě

V Unity může holografický obsah zůstat uzamčený na světě stejně snadno jako přidání komponenty WorldAnchor:

myObject.AddComponent<WorldAnchor>();

Komponenta WorldAnchor bude neustále upravovat polohu a otáčení svého objektu GameObject (a tedy čehokoli jiného pod tímto objektem v hierarchii), aby byl stabilní vzhledem k blízkým fyzickým objektům. Při vytváření obsahu ho vytvořte tak, aby byl kořenový pivot objektu uprostřed tohoto virtuálního otvoru. (Pokud je pivot objektu hluboko ve zdi, bude jeho mírné vychytávky v poloze a otáčení mnohem patrnější a díra nemusí vypadat příliš stabilně.)

Occluding všeho kromě virtuální díry

Existuje řada způsobů, jak selektivně zablokovat zobrazení toho, co je skryté ve vašich zdech. Nejjednodušší z nich využívá skutečnost, že HoloLens používá doplňkový displej, což znamená, že zcela černé objekty se zdají být neviditelné. V Unity to můžete udělat bez speciálních shaderů nebo materiálových triků – stačí vytvořit černý materiál a přiřadit ho k objektu, který obsahuje váš obsah. Pokud se vám nechce dělat 3D modelování, stačí použít několik výchozích objektů Quad a mírně je překrývat. Tento přístup má řadu nevýhod, ale je to nejrychlejší způsob, jak něco zpracovat, a získání důkazu o fungování konceptu s nízkou věrností je skvělé, i když se domníváte, že byste ho později chtěli refaktorovat.

Jednou z hlavních nevýhod výše uvedeného přístupu "black box" je, že se nefotí dobře. I když váš efekt může vypadat dokonale díky zobrazení HoloLensu, všechny snímky obrazovky, které pořídíte, budou místo toho, co zbyly na zdi nebo podlaze, zobrazovat velký černý objekt. Důvodem je to, že fyzický hardware a snímky obrazovky složených hologramů a realita se liší. Pojďme se na chvíli zaohlédnout do falešné matematiky...

Falešné matematické upozornění! Tato čísla a vzorce mají ilustrovat bod, ne být přesnou metrikou!

Co vidíte prostřednictvím HoloLensu:

( Reality * darkening_amount ) + Holograms

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

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

V angličtině: To, co vidíte prostřednictvím HoloLensu, je jednoduchá kombinace zatemnělé reality (například přes sluneční brýle) a hologramů, které chce aplikace zobrazit. Když ale pořídíte snímek obrazovky, obrázek fotoaparátu se prolíná s hologramy aplikace podle hodnoty průhlednosti podle pixelů.

Jedním ze způsobů, jak to obejít, je změnit materiál "černé skříňky" tak, aby se zapsal pouze do hloubkové vyrovnávací paměti, a řadit se všemi ostatními neprůhlhlými materiály. Příklad najdete v souboru WindowOcclusion.shader v mixedRealityToolkit na GitHubu. Příslušné řádky se zkopírují sem:

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

(Všimněte si, že řádek Posun 50, 100 je určen k řešení nesouvisejících problémů, takže by asi mělo smysl to vynechat.)

Implementace takového neviditelného materiálu okluze umožní vaší aplikaci nakreslit pole, které vypadá správně na displeji a na snímcích obrazovky hybridní reality. Pro bonusové body se můžete pokusit ještě zlepšit výkon tohoto boxu tím, že uděláte chytré věci, abyste nakreslili ještě méně neviditelných pixelů, ale to se může opravdu dostat do plevele a obvykle nebude nutné.

Tady je tajné podsvětí z MR Basics 101, jak unity kreslí, s výjimkou vnějších částí occluding box. Všimněte si, že pivot pro podsvětí je ve středu krabice, což pomáhá udržet díru co nejstabilnější vzhledem k vaší skutečné podlaze.

Tady je tajné podsvětí z MR Basics 101 , jak unity kreslí, s výjimkou vnějších částí occluding box. Všimněte si, že pivot pro podsvětí je ve středu krabice, což pomáhá udržet díru co nejstabilnější vzhledem k vaší skutečné podlaze.

Udělejte to sami

Máte HoloLens a chcete vyzkoušet účinek pro sebe? Nejjednodušší věc, kterou můžete udělat (bez nutnosti kódování), je nainstalovat bezplatnou aplikaci 3D Viewer a pak načíst soubor .fbx, který jsem poskytl na GitHubu , abyste si mohli ve svém pokoji prohlédnout model květinových nádob. Načtěte ho na HoloLens a uvidíte, jak funguje iluze. Když jste před modelem, můžete vidět jenom do malé díry – všechno ostatní je neviditelné. Podívejte se na model z jakékoli jiné strany a úplně zmizí. Pomocí ovládacích prvků pohybu, otáčení a měřítka nástroje 3D Viewer umístěte virtuální díru na jakýkoliv svislý povrch, který si můžete představit, abyste vygenerovali nějaké nápady!

Při prohlížení tohoto modelu v editoru Unity se kolem truhlíku zobrazí velká černá skříňka. Na HoloLensu zmizí krabice a ustoupila tak efektu kouzelného okna.

Při prohlížení tohoto modelu v editoru Unity se kolem truhlíku zobrazí velká černá skříňka. Na HoloLensu zmizí krabice a ustoupila tak efektu kouzelného okna.

Pokud chcete vytvořit aplikaci, která používá tuto techniku, projděte si kurz MR Basics 101 v kurzech Mixed Reality. Kapitola 7 končí explozí v podlaze, která odhalí skryté podsvětí (jak je znázorněno výše). Kdo říkal, že kurzy musí být nudné?

Tady jsou některé nápady, kde můžete tuto myšlenku vzít jako další:

  • Vymyslete, jak obsah uvnitř virtuální díry udělat interaktivním. Když uživatelům umožníte, aby měli nějaký dopad za jejich zdmi, může to skutečně zlepšit pocit údivu, který vám tento trik může poskytnout.
  • Vymyslete si způsoby, jak prohlédnout objekty zpět do známých oblastí. Například jak můžete dát holografický otvor do konferenčního stolku a vidět podlahu pod ním?

O autorovi

Obrázek Erica Rehmeyera Eric Rehmeyer
Vedoucí softwarový inženýr @Microsoft

Viz také