Jelenetértelmező megfigyelő – MRTK2

A Scene Understanding a jelenetentitások szemantikai ábrázolását adja vissza, valamint azok geometriai formáit HoloLens 2 (a HoloLens 1st Gen nem támogatott).

A technológia néhány várt felhasználási esete a következő:

  • Az objektumokat egy adott típus legközelebbi felületére helyezze (pl. falra és padlóra)
  • Nav-mesh létrehozása platform stílusú játékokhoz
  • Fizikai motorbarát geometria megadása quadként
  • A fejlesztés felgyorsítása a hasonló algoritmusok írásának szükségességének elkerülésével

A Scene Understanding az MRTK 2.6 kísérleti funkciójaként érhető el. Az MRTK-ba egy nevű térbeli megfigyelőként van integrálva WindowsSceneUnderstandingObserver. A Scene Understanding az örökölt XR-folyamattal és az XR SDK-folyamattal (az OpenXR (az MRTK 2.7-es verziójától kezdve) és a Windows XR beépülő modullal is működik. Mindkét esetben a WindowsSceneUnderstandingObserver használatos.

Megjegyzés

A Jelenetfelismerés funkció csak az MRTK 2.7.3-s és újabb verziókban támogatott. Csak az OpenXR-t használó projektek támogatottak. Az örökölt XR-folyamatot vagy a Windows XR beépülő modult használó projektek nem támogatottak.

Megfigyelő áttekintése

Amikor a rendszer kéri, a visszaadja a WindowsSceneUnderstandingObserverSpatialAwarenessSceneObject attribútumokat, amelyek hasznosak az alkalmazás számára a környezet megértéséhez. A megfigyelési gyakoriság, a visszaadott objektumtípus (pl. fal, padló) és egyéb megfigyelői viselkedések a megfigyelő profilon keresztüli konfigurációjától függenek. Ha például az elzáródási maszkot szeretné használni, a megfigyelőt úgy kell konfigurálni, hogy quadokat hozzon létre. A megfigyelt jelenet szerializált fájlként menthető, amely később betölthető a jelenet szerkesztői lejátszási módban való újbóli létrehozásához.

Telepítés

Fontos

A Scene Understanding csak a HoloLens 2 és a Unity 2019.4-s és újabb verzióiban támogatott.

  1. Győződjön meg arról, hogy a platform UWP értékre van állítva a buildbeállításokban.
  2. Szerezze be a Scene Understanding csomagot Mixed Reality Funkció eszközzel.

A Jelenetfelismerés használata

A Scene Understanding használatának leggyorsabb módja a mintajelenet megtekintése.

Jelenet – Mintajelenet ismertetése

A Unityben a Project Explorerrel nyissa meg a jelenetfájlt, Examples/Experimental/SceneUnderstanding/Scenes/SceneUnderstandingExample.unity és nyomja le a lejátszást!

Fontos

Csak az MRTK 2.6.0 - A Mixed Reality funkcióeszköz használatakor vagy az UPM-en keresztül más módon történő importáláskor importálja a Demos – SpatialAwareness mintát a Kísérleti – SceneUnderstanding minta importálása előtt függőségi probléma miatt. További információért tekintse meg ezt a GitHub-problémát .

A jelenet a következőket mutatja be:

  • Megfigyelt jelenetobjektumok vizualizációja az alkalmazás felhasználói felületén a megfigyelő konfigurálásához
  • Példaszkript DemoSceneUnderstandingController , amely bemutatja, hogyan módosíthatja a megfigyelő beállításait és figyelheti a releváns eseményeket
  • Jelenetadatok mentése az eszközre offline fejlesztés céljából
  • Korábban mentett jelenetadatok (.bytes fájlok) betöltése a szerkesztőn belüli fejlesztési munkafolyamat támogatásához

Fontos

Alapértelmezés szerint a ShouldLoadFromFile megfigyelő tulajdonsága false (hamis) értékre van állítva. Egy szerializált mintaszoba vizualizációjának megtekintéséhez tekintse meg az alábbi , a megfigyelő szolgáltatás konfigurálását tartalmazó szakaszt, és állítsa a tulajdonságot true (igaz) értékre a szerkesztőben.

Megjegyzés

A mintajelenet az örökölt XR-folyamaton alapul. Ha az XR SDK-folyamatot használja, ennek megfelelően módosítsa a profilokat. A megadott Scene Understanding Térbeli tudatossági rendszer profil (DemoSceneUnderstandingSystemProfile) és a Scene Understanding Megfigyelő profilok (DefaultSceneUnderstandingObserverProfile és DemoSceneUnderstandingObserverProfile) mindkét folyamat esetében működnek.

Megjegyzés

A mintajelenet bizonyos körülmények között naplóz egy There is no active AsyncCoroutineRunner when an action is posted. figyelmeztetést az inicializálás/szál végrehajtási sorrendje miatt. Ha meg tudja erősíteni, hogy az AsyncCoroutineRunner összetevő a "Demo Controller" GameObject elemhez van csatolva, és az összetevő/GameObject továbbra is engedélyezve/aktív marad a jelenetben (ez az alapértelmezett eset), a figyelmeztetést nyugodtan figyelmen kívül hagyhatja. Ha azonban új jelenetet hoz létre a Scene Understanding használatával, mindenképpen hozzon létre egy üres GameObject objektumot a gyökérkönyvtárban, és csatolja hozzá a szkriptet, különben előfordulhat, hogy a AsyncCoroutineRunner Scene Understanding nem működik megfelelően.

A megfigyelő szolgáltatás konfigurálása

Válassza ki a MixedRealityToolkit játékobjektumot, és ellenőrizze az ellenőrt.

scene understanding location in hierarchy

MRTK helye az ellenőrben

Ezek a beállítások lehetővé teszik a konfigurálását.WindowsSceneUnderstandingObserver

Példaszkript

A DemoSceneUnderstandingController.cs példaszkript bemutatja a Scene Understanding szolgáltatás használatának fő fogalmait.

  • Feliratkozás a Scene Understanding-eseményekre
  • Jelenetfelismerési események kezelése
  • A WindowsSceneUnderstandingObserver futtatókörnyezet konfigurálása

A jelenet paneljének kapcsolói megváltoztatják a jelenetértelmezési megfigyelő viselkedését a példaszkript nyilvános funkcióinak meghívásával.

A Példányosítási előtagok bekapcsolása azt mutatja be, hogy olyan méretű objektumokat hoz létre, amelyek megfelelnek az összes SpatialAwarenessSceneObject objektumnak, amely szépen egy szülőobjektum alatt van összegyűjtve.

bemutatóvezérlő beállításai

Alkalmazásjegyzetek készítése

Buildelés és üzembe helyezés a HoloLensben a szokásos módon. A futtatás után több gombnak kell megjelennie a funkciókkal való lejátszáshoz.

Vegye figyelembe, hogy néhány gödör esik, amikor lekérdezéseket végez a megfigyelőnek. A beolvasási kérelem helytelen konfigurációja azt eredményezi, hogy az esemény hasznos adatai nem tartalmazzák a várt adatokat. Ha például valaki nem kér quadokat, akkor nem lesznek occlusion mask textúrák. A bölcsekhez hasonlóan a világháló sem jelenik meg, ha a megfigyelő nincs hálók kérésére konfigurálva. A DemoSceneUnderstandingController szkript gondoskodik néhány ilyen függőségről, de nem mindegyikről.

A mentett jelenetfájlok az eszközportálon érhetők el a címen User Folders/LocalAppData/[APP_NAME]/LocalState/PREFIX_yyyyMMdd_hhmmss.bytes. Ezek a jelenetfájlok a szerkesztőben is használhatók, ha megadják azokat az ellenőrben található megfigyelői profilban.

A bájtfájl helye az eszközportálon

Szerializált jelenet bájtban a megfigyelőben

Lásd még: