Megosztás a következőn keresztül:


Jelenetértelmezés az Unrealben

A jelenetfelismerés olyan síkokat biztosít az MRMesh számára, amelyek az értelmezett használatuk alapján vannak besorolva, például falakat, padlókat, mennyezeteket és asztalokat. A használati esetek hasonlóak a térbeli leképezéshez, de a hálók rendelkeznek ezekkel a további metaadatokkal, és síkként jelennek meg, nem pedig durva hálóként.

További információt a Scene Understanding dokumentumban talál.

Megjegyzés

A Holographic Remoting 2.8.0 Scene Understanding verziótól kezdődően a rendszer teljes mértékben támogatja.

Előfeltételek

Fontos

A Scene Understanding használatához Microsoft OpenXR beépülő modul és Unreal 4.27.1 vagy újabb verzió szükséges.

A Microsoft OpenXR beépülő modult kell használni, amely az Unreal Marketplace-en vagy a GitHubon érhető el.

Másik lehetőségként kezdje az OpenXR mintaalkalmazással , amely bemutatja a Scene Understanding használatát.

Telepítés

Jelenetfelismerés engedélyezése a HoloLensben:

  1. Nyissa meg a Projektbeállítások szerkesztése > elemet , és görgessen le a Platformok szakaszhoz.
  2. Válassza a HoloLens , majd a Térbeli érzékelés lehetőséget.

Képernyőkép a HoloLens-projekt beállításainak képességeiről, kiemelt térbeli észleléssel

A jelenet megértéséhez és az MRMesh használatához egy HoloLens-játékban:

  1. Nyissa meg az ARSessionConfig fájlt, és bontsa ki az ARSettings > World Mapping szakaszt.
  2. Jelölje be a Mesh-adatok létrehozása a követett geometriából jelölőnégyzetet, amely arra utasítja a HoloLens beépülő modult, hogy aszinkron módon kezdje el a jelenetfelismerést, és az MRMesh segítségével felszínre hozza az Unrealbe.
  3. Ha szeretné, ellenőrizze a Hálóadatok renderelése drótvázban jelölőnégyzetet, hogy az MRMesh minden háromszögének fehér drótvázszerkezetét mutassa.

Scene Understanding ARSettings

  1. A második ARSettings legördülő menüben keresse meg a Vízszintes sík észlelése és a Függőleges sík észlelése jelölőnégyzetet. Ezek szelektíven letilthatók, ha a felhasználói élmény csak vízszintes vagy függőleges síkokat igényel. A rendszer alapértelmezés szerint vízszintes és függőleges síkokat is használ.

Jelenet – A síkészlelés ismertetése

Nem kötelező ini beállítások

A térbeli leképezési futtatókörnyezet viselkedésének frissítéséhez az alábbi paramétereket módosíthatja:

  • Nyissa meg a Projektbeállítások szerkesztése > elemet, görgessen le a Platformok szakaszhoz, majd válassza a HoloLens spatial Mapping (HoloLens > térbeli leképezés) lehetőséget:

Jelenet – A projekt beállításainak ismertetése

  • A Térbeli hálózás kötetmérete a lejátszó körüli gömb átmérője az adatok megjelenítéséhez és frissítéséhez.
  • Ha az alkalmazás futtatókörnyezete várhatóan nagy, akkor ennek az értéknek nagynak kell lennie ahhoz, hogy megfeleljen a valós helynek. Az érték kisebb lehet, ha az alkalmazásnak csak a felhasználó körüli felületeken kell hologramokat elhelyeznie. Ahogy a felhasználó körbejárja a világot, a térbeli leképezési kötet velük együtt mozog.

Jelenetfelismerés használatakor a nagy vizsgálati kötetek ronthatják a teljesítményt, mivel sokkal több háló jön létre, mint a térbeli leképezés. A hívások számának csökkentése érdekében további ini-beállításokkal korlátozhatja a kötet magasságát:

  • A játék Config/DefaultGame.ini fájljában adjon hozzá egy [/Script/HoloLensSettings.SceneUnderstanding] szakaszt opcionális beállításokkal:
[/Script/HoloLensSettings.SceneUnderstanding]
SceneUnderstandingVolumeHeight=4
ShouldDoSceneUnderstandingMeshDetection=true
  • A SceneUnderstandingVolumeHeight a szkennelt szkennelt kötetet egy téglalap alakú prizmára korlátozza, amelynek magassága és oldalai Térhálózás kötetmérete.

  • A ShouldDoSceneUnderstandingMeshDetection hálókat ad hozzá az egyes azonosított síkokhoz. A hálók bizonyos felületeken, például táblázatokon átfedik egymást, pontosabban, mint a síkok, de további rajzolásokat és számítási hívásokat vonnak maga után. Alapértelmezés szerint a rendszer csak síkokat észlel.

Az MRMesh használata

Először el kell indítania az ARSessiont:

Terv az ARSession indításakor

Ezután el kell kezdenie a jelenet megértését:

A ToggleARCapture függvény tervrajza jelenetfelismeréssel és térbeli leképezéssel

Ebben a példában a CanDetectPlanes függvényt ellenőrizzük, hogy ki kell-e váltanunk a jelenetértelmezést vagy a térbeli leképezést. Ez lehetővé teszi, hogy a kód mind a remoting, mind a HoloLens-eszközön működjön. Ellenkező esetben a visszacsatolás közbeni jelenetértelmezés nem ad vissza egyetlen síkot sem.

Az MRMesh-hez való hozzáférés biztosítása futásidőben:

  1. ARTrackableNotify összetevő hozzáadása a Terv aktorhoz.

Az AR nyomon követhető értesítésének jelenetfelismerése

  1. Válassza az ARTrackableNotify összetevőt , és bontsa ki az Események szakaszt a Részletek panelen.
  2. Válassza ki a + figyelni kívánt események gombját.

Jelenetfelismerési események

Az események teljes listáját az UARTrackableNotify összetevő API-ban találja.

Ebben a példában az MRMeshes azonosításakor a rendszer lekérdezi az objektumbesorolásukat, és egy másik anyag van beállítva a felület típusa alapján.

Jelenetértelmezett geometria hozzáadása

Ahhoz, hogy ütközési teszteket hajtsunk végre a jelenetértelmező hálókon, a LineTraceTrackedObjects3D használható:

A vonalkövetés ütközésészlelésének észlelése a jelenetben

Tiltsa le a Tesztsík kiterjedése beállítást, hogy csak a jelenetértelmezhető hálókon végezzen találati teszteket, ellenkező esetben a hálókat és a síkokat is használni fogja. A síkok nem mindig fedik le a valós geometriát, ezért téves ütközést okozhatnak, ha használják őket. Például a nyitott ajtókat a sík lefedi a körülötte lévő falról.

A nyomon követett geometria és objektumbesorolás lekérdezhető a nyomkövetési eredményből, így különböző függvényeket hajthat végre attól függően, hogy falba vagy táblázatba ütközik-e, például.

Ebben a példában egy hibakeresési koordinátarendszert rajzolunk az ütközési ponthoz a legközelebbi jelenetben, és megértjük, hogy mi történt.

Lásd még: