Prostorové kotvy
Prostorová kotva představuje důležitý bod na světě, který systém sleduje v průběhu času. Každá kotva má nastavitelný systém souřadnic založený na jiných kotvách nebo referenčních rámcích, aby ukotvené hologramy zůstaly přesně na svém místě. Vykreslení hologramu v souřadnicovém systému ukotvení vám poskytne nejpřesnější umístění daného hologramu v daném okamžiku. To přichází za cenu malých úprav pozice hologramu v průběhu času, protože systém ho průběžně přesouvá zpět na místo na základě reálného světa.
Můžete také zachovat a sdílet prostorové kotvy napříč relacemi aplikace a mezi zařízeními:
- Uložením místních prostorových ukotvení na disk a jejich pozdějším načtením může vaše aplikace vypočítat stejné umístění v reálném světě napříč několika relacemi aplikace na jednom HoloLensu.
- Když použijete Azure Spatial Anchors k vytvoření cloudové kotvy, může vaše aplikace sdílet prostorové ukotvení napříč několika zařízeními HoloLens, iOS a Android. Díky tomu, že každé zařízení vykresluje hologram pomocí stejného prostorového ukotvení, uvidí uživatelé hologram na stejném místě v reálném světě. To umožňuje sdílení v reálném čase.
- Azure Spatial Anchors můžete také použít pro asynchronní trvalost hologramů napříč zařízeními HoloLens, iOS a Android. Díky sdílení odolné prostorové kotvy cloudu může několik zařízení v průběhu času sledovat stejný hologram, i když se tato zařízení nenacházejí současně.
Pro prostředí v měřítku ve stoje nebo v měřítku místnosti pro připojené stolní náhlavní soupravy, které zůstanou v průměru 5 metrů, můžete obvykle místo prostorových ukotvení použít referenční rámec pódia , který poskytuje jeden souřadnicový systém, ve kterém můžete vykreslit veškerý obsah. Pokud ale vaše aplikace umožňuje uživatelům procházet se v HoloLensu více než 5 metrů, třeba v celém patře budovy, budete k udržení stabilního obsahu potřebovat prostorové kotvy.
Zatímco prostorové kotvy jsou skvělé pro hologramy, které by měly zůstat ve světě pevné, jakmile je kotva umístěna, nelze ji přesunout. Existují alternativy k ukotvení, které jsou vhodnější pro dynamické hologramy, které označují společně s uživatelem. Nejlepší je umístit dynamické hologramy pomocí statického referenčního rámce (základ pro souřadnice světa Unity) nebo připojeného referenčního rámce.
Osvědčené postupy
Tyto pokyny pro prostorové ukotvení vám pomůžou vykreslit stabilní hologramy, které přesně sledují skutečný svět.
Vytvoření prostorových ukotvení na místo, kam je uživatelé umístí
Uživatelé obvykle explicitně umísťují prostorové kotvy.
Například na HoloLensu může aplikace protínnout pohledu uživatele se sítí prostorového mapování , aby se uživatel mohl rozhodnout, kam hologram umístit. Když uživatel klepnutím umístí hologram, vytvořte prostorovou kotvu v průsečíku a pak umístěte hologram na počátku souřadnicového systému dané kotvy.
Vytvoření místních prostorových ukotvení je snadné a výkonné. Systém kombinuje interní data, pokud více ukotvení může sdílet podkladová data ze senzorů. Doporučujeme vytvořit novou místní prostorovou kotvu pro každý hologram, který uživatel explicitně umístí, s výjimkou níže uvedených případů, jako jsou pevné skupiny hologramů.
Ukotvené hologramy se vždy vykreslují do 3 metrů od ukotvení.
Prostorové kotvy stabilizují svůj souřadnicový systém v blízkosti původu kotvy. Pokud vykreslujete hologramy více než 3 metry od počátku, může u hologramů docházet k znatelným pozičním chybám v poměru k jejich vzdálenosti od tohoto původu kvůli efektům páky a ramene. To funguje, pokud uživatel stojí v blízkosti ukotvení, protože hologram je také daleko od uživatele. Jinými slovy, úhlová chyba vzdáleného hologramu bude malá. Pokud ale uživatel přejde na vzdálený hologram, bude z jeho pohledu velký, takže efekty pákových ramen z dalekého původu kotvy budou zřejmé.
Seskupení hologramů, které by měly tvořit tuhý shluk
Více hologramů může sdílet stejnou prostorovou kotvu, pokud aplikace očekává, že tyto hologramy budou udržovat pevné vztahy mezi sebou.
Pokud například animujete holografickou sluneční soustavu v místnosti, je lepší spojit všechny objekty sluneční soustavy s jednou kotvou ve středu. Tímto způsobem se budou pohybovat hladce podle sebe. V tomto případě je ukotvena sluneční soustava jako celek, i když se její součásti dynamicky pohybují kolem kotvy.
Klíčovým upozorněním pro zachování stability hologramu je dodržovat výše uvedené pravidlo 3 metrů.
Vykreslení vysoce dynamických hologramů pomocí statického referenčního rámce místo místního prostorového ukotvení
Pokud máte vysoce dynamický hologram, například znak procházející se po místnosti nebo plovoucí uživatelské rozhraní, které následuje podél zdi v blízkosti uživatele, je nejlepší vynechat místní prostorové kotvy a vykreslit tyto hologramy přímo v souřadnicovém systému poskytovaném statickým referenčním rámcem. V Unity toho dosáhnete umístěním hologramů přímo do souřadnic světa bez objektu WorldAnchor. U hologramů ve statickém referenčním rámci může docházet k posunu, když je uživatel daleko od hologramu. U dynamických hologramů je to ale méně pravděpodobné: buď se hologram neustále pohybuje, nebo ho jeho pohyb neustále udržuje blízko uživateli, kde se posun minimalizuje.
Zajímavým případem dynamických hologramů je objekt, který animuje z jednoho ukotveného souřadnicového systému do jiného. Můžete mít například dva hrady vzdálené 10 metrů, každý na své vlastní prostorové kotvě, přičemž jeden hrad střílí dělovou kouli na druhý hrad. Když je dělová koule vystřelená, můžete ji vykreslit na příslušném místě ve statickém rámci odkazu tak, aby se shodovala s dělem v ukotvené souřadnicové soustavě prvního hradu. Pak může sledovat svou trajektorii ve statickém referenčním rámci, jak letí 10 metrů vzduchem. Jakmile dělová koule dosáhne druhého hradu, můžete ji přesunout do ukotveného souřadnicového systému druhého hradu, aby bylo možné provádět fyzikální výpočty s pevnými tělesy hradu.
Pokud sdílíte vysoce dynamický hologram napříč zařízeními, vyberte si cloudové prostorové ukotvení, které bude fungovat jako nadřazené, protože statické referenční rámce není možné sdílet mezi zařízeními. Měli byste ale zajistit, aby dynamický hologram nebo zařízení, která ho prohlížejí, zůstaly v poloměru 3 metrů ukotvení, aby se hologram na všech zařízeních zobrazoval stabilně.
Vyhněte se vytváření mřížky prostorových ukotvení
Můžete být v pokušení, aby vaše aplikace během procházení uživatelem vyřadila pravidelnou mřížku prostorových ukotvení a přecházala dynamické objekty z ukotvení do ukotvení při jejich pohybu. To však zahrnuje větší správu vaší aplikace, aniž by byla přínosná data hlubokých snímačů, která udržuje samotný systém interně. V těchto případech dosáhnete lepších výsledků umístěním hologramů do statického referenčního rámce, jak je popsáno v předchozí části. Při předběžném umístění sady prostorových ukotvení cloudu kolem statického prostoru zvažte umístění prostorových ukotvení do umístění klíčových hologramů, na které se uživatel podle výše uvedeného principu setká, a nevytvářet libovolnou mřížku ukotvení. Tím zajistíte maximální stabilitu těchto klíčových hologramů.
Uvolnění místních prostorových ukotvení, které už nepotřebujete
Zatímco je místní prostorové ukotvení aktivní, systém upřednostňuje zachování dat senzoru, která jsou v blízkosti této kotvy. Pokud už prostorovou kotvu nepoužíváte, ukončete přístup k jeho souřadnicovým systémům. To umožňuje odebrání podkladových dat ze senzorů podle potřeby.
To je zvlášť důležité pro místní kotvy, které jste uložili do úložiště prostorových ukotvení. Data senzorů za těmito kotvami se budou trvale uchovávat, aby vaše aplikace mohla toto ukotvení najít v budoucích relacích, čímž se zmenšuje prostor, který je k dispozici pro sledování jiných ukotvení. Zachovají se jenom místní kotvy, které budete potřebovat znovu najít v budoucích relacích. Pokud už nebudou pro uživatele smysluplné, doporučujeme je z úložiště odebrat.
V případě prostorových ukotvení cloudu se vaše úložiště může škálovat podle potřeby vašeho scénáře. Můžete uložit tolik cloudových ukotvení, kolik potřebujete, a uvolnit je, když víte, že vaši uživatelé ukotvení už nebudou potřebovat.