Pozorovatel s porozuměním scéně – MRTK2

Funkce Porozumění scéně vrací sémantickou reprezentaci entit scény a jejich geometrických forem na HoloLens 2 (HoloLens 1. generace se nepodporuje).

Mezi očekávané případy použití této technologie patří:

  • Umístění objektů na nejbližší povrch určitého druhu (např. stěna a podlaha)
  • Vytvoření navigační sítě pro hry ve stylu platformy
  • Poskytnout geometrii pro fyzikální motor jako čtyřúhelníky
  • Urychlení vývoje tím, že se vyhnete nutnosti psát podobné algoritmy.

Porozumění scéně se v MRTK 2.6 zavádí jako experimentální funkce. Je integrován do MRTK jako prostorový pozorovatel s názvem WindowsSceneUnderstandingObserver. Porozumění scéně funguje se starším kanálem XR i kanálem sady XR SDK (jak OpenXR (počínaje MRTK 2.7), tak s modulem plug-in Windows XR). V obou případech se WindowsSceneUnderstandingObserver používá .

Poznámka

Použití funkce Porozumění scéně v vzdálené komunikace je podporováno pouze v MRTK 2.7.3 a novějších verzích. Podporují se jenom projekty používající OpenXR. Projekty používající starší kanál XR nebo modul plug-in Windows XR se nepodporují .

Přehled pozorovatele

Když se zobrazí dotaz, WindowsSceneUnderstandingObserver vrátí SpatialAwarenessSceneObject s atributy užitečnými pro aplikaci, aby porozuměla svému okolí. Frekvence pozorování, vrácený typ objektu (např. stěna, podlaha) a další chování pozorovatele závisí na konfiguraci pozorovatele prostřednictvím profilu. Pokud je například požadovaná maska okluze, musí být pozorovatel nakonfigurovaný tak, aby vygeneroval čtyřúhelníky. Pozorovaná scéna může být uložena jako serializovaný soubor, který lze později načíst a znovu vytvořit scénu v režimu přehrávání editoru.

Nastavení

Důležité

Porozumění scéně se podporuje jenom v HoloLens 2 a Unity 2019.4 a novějších.

  1. Ujistěte se, že je platforma v nastavení sestavení nastavená na UPW.
  2. Získejte balíček Scene Understanding prostřednictvím nástroje Mixed Reality Feature Tool.

Použití porozumění scéně

Nejrychlejším způsobem, jak začít s porozuměním scéně, je podívat se na ukázkovou scénu.

Princip scény – ukázková scéna

V Unity otevřete pomocí Průzkumníka projektů soubor scény v Examples/Experimental/SceneUnderstanding/Scenes/SceneUnderstandingExample.unity a stiskněte přehrát!

Důležité

Platí pouze pro MRTK 2.6.0 – Pokud používáte nástroj Mixed Reality Feature Tool nebo jinak importujete přes UPM, před importem ukázky Experimentální – SceneUnderstanding kvůli problému se závislostí naimportujte ukázku Ukázky – SpatialAwareness. Další informace najdete v tomto problému na GitHubu .

Scéna ukazuje následující:

  • Vizualizace pozorovaných objektů scény pomocí příkazu v uživatelském rozhraní aplikace pro konfiguraci pozorovatele
  • Ukázkový DemoSceneUnderstandingController skript, který ukazuje, jak změnit nastavení pozorovatele a naslouchat relevantním událostem
  • Ukládání dat scény do zařízení pro offline vývoj
  • Načítání dříve uložených dat scény (soubory .bytes) pro podporu pracovního postupu vývoje v editoru

Důležité

Ve výchozím nastavení ShouldLoadFromFile je vlastnost pozorovatele nastavená na false. Pokud chcete zobrazit vizualizaci serializované ukázkové místnosti, projděte si část konfigurace služby pozorovatele níže a nastavte vlastnost v editoru na hodnotu true.

Poznámka

Ukázková scéna je založená na starší verzi kanálu XR. Pokud používáte kanál sady XR SDK, měli byste profily odpovídajícím způsobem upravit. Zadaný profil Scene Understanding Spatial Awareness System (DemoSceneUnderstandingSystemProfile) a profily Scene Understanding Observer (DefaultSceneUnderstandingObserverProfile a DemoSceneUnderstandingObserverProfile) fungují pro oba kanály.

Poznámka

Ukázková scéna za určitých okolností zaznamená There is no active AsyncCoroutineRunner when an action is posted. upozornění kvůli pořadí spuštění inicializace nebo vlákna. Pokud můžete potvrdit, že AsyncCoroutineRunner je komponenta připojená k objektu GameObject "Demo Controller" a komponenta/GameObject ve scéně zůstává povolená nebo aktivní (výchozí případ), můžete upozornění bezpečně ignorovat. Při vytváření nové scény s porozuměním scéně se ujistěte, že jste v kořenovém adresáři vytvořili prázdný objekt GameObject a připojili AsyncCoroutineRunner k němu skript, jinak by porozumění scéně nemuselo fungovat správně.

Konfigurace služby pozorovatele

Vyberte objekt hry MixedRealityToolkit a zkontrolujte inspektor.

scene understanding location in hierarchy

Umístění MRTK v inspektoru

Tyto možnosti umožní uživateli konfigurovat WindowsSceneUnderstandingObserver.

Ukázkový skript

Ukázkový skript DemoSceneUnderstandingController.cs demonstruje hlavní koncepty při práci se službou Scene Understanding.

  • Přihlášení k odběru událostí Porozumění scéně
  • Zpracování událostí porozumění scéně
  • Konfigurace za WindowsSceneUnderstandingObserver běhu

Přepínače na panelu ve scéně mění chování pozorovatele pro pochopení scény voláním veřejných funkcí tohoto ukázkového skriptu.

Zapnutím vytváření instancí prefabs předvedete vytváření objektů, které se vejdou do všech objektů SpatialAwarenessSceneObject, které jsou úhledně shromážděny pod nadřazeným objektem.

demo controller options

Poznámky k vytvořené aplikaci

Sestavte a nasaďte do HoloLensu standardním způsobem. Po spuštění by se měla zobrazit řada tlačítek, která si s funkcemi pohrají.

Všimněte si, že při vytváření dotazů na pozorovatele dochází k určitým pádům. Chybná konfigurace požadavku na načtení způsobí, že datová část události neobsahuje očekávaná data. Pokud například nepožádáte o čtyřúhelníky, nebudou k dispozici žádné textury masky okluze. Pokud pozorovatel není nakonfigurovaný tak, aby požadoval sítě, nezobrazí se žádná světová síť. Skript DemoSceneUnderstandingController se postará o některé z těchto závislostí, ale ne o všechny.

Uložené soubory scény jsou přístupné prostřednictvím portálu zařízení na adrese User Folders/LocalAppData/[APP_NAME]/LocalState/PREFIX_yyyyMMdd_hhmmss.bytes. Tyto soubory scén lze použít v editoru tak, že je zadáte v profilu pozorovatele, který se nachází v inspektoru.

Umístění souboru bajtů na portálu zařízení

Serializované bajty scény v pozorovateli

Viz také