Informazioni sulla scena

Scene Understanding restituisce una rappresentazione semantica delle entità della scena e delle relative forme geometriche in HoloLens 2 (HoloLens di prima generazione non è supportato).

Di seguito sono riportati alcuni casi d'uso previsti di questa tecnologia:

  • Posizionare gli oggetti sulla superficie più vicina di un determinato tipo (ad esempio, le pareti e il piano)
  • Costruire la mesh di spostamento per i giochi in stile piattaforma
  • Fornire la geometria descrittiva del motore di fisica come quad
  • Accelerare lo sviluppo evitando la necessità di scrivere algoritmi simili

Scene Understanding è stato introdotto come funzionalità sperimentale in MRTK 2.6. È integrato in MRTK come osservatore spaziale denominato WindowsSceneUnderstandingObserver . Scene Understanding funziona sia con la pipeline legacy XR che con la pipeline XR SDK (sia OpenXR (a partire da MRTK 2.7) che con il plug-in Windows XR). In entrambi i casi WindowsSceneUnderstandingObserver viene usato .

Nota

L'uso di Scene Understanding nella comunicazione remota non è supportato.

Panoramica dell'osservatore

Quando richiesto, WindowsSceneUnderstandingObserver restituirà SpatialAwarenessSceneObject con attributi utili per l'applicazione per comprendere l'ambiente circostante. La frequenza di osservazione, il tipo di oggetto restituito (ad esempio, le pareti, il piano) e altri comportamenti dell'osservatore dipendono dalla configurazione dell'osservatore tramite il profilo. Ad esempio, se si desidera la maschera di occlusione, l'osservatore deve essere configurato per generare quad. La scena osservata può essere salvata come file serializzato che può essere caricato in un secondo momento per ricreare la scena in modalità di riproduzione dell'editor.

Eseguire la configurazione

Importante

Scene Understanding è supportato solo in HoloLens 2 e Unity 2019.4 e versioni successive.

  1. Verificare che la piattaforma sia impostata su UWP nelle impostazioni di compilazione.
  2. Acquisire il pacchetto Scene Understanding tramite lo strumento di funzionalità di realtà mista.

Uso di Scene Understanding

Il modo più rapido per iniziare a usare Scene Understanding è vedere la scena di esempio.

Scena di esempio scene Understanding

In Unity usare Project Explorer (Esplora progetti) per aprire il file della scena in Examples/Experimental/SceneUnderstanding/Scenes/SceneUnderstandingExample.unity e premere play!

Importante

Si applica solo a MRTK 2.6.0: quando si usa lo strumento di funzionalità di realtà mista o si importa in altro modo tramite UPM, importare l'esempio Demos - SpatialAwareness prima di importare l'esempio Experimental - SceneUnderstanding a causa di un problema di dipendenza. Per altre informazioni, vedere questo problema di GitHub.

La scena illustra quanto segue:

  • Visualizzazione degli oggetti scena osservati con nell'interfaccia utente dell'applicazione per la configurazione dell'osservatore
  • Script DemoSceneUnderstandingController di esempio che illustra come modificare le impostazioni dell'osservatore e restare in ascolto degli eventi pertinenti
  • Salvataggio dei dati della scena nel dispositivo per lo sviluppo offline
  • Caricamento dei dati della scena salvati in precedenza (file con estensione bytes) per supportare il flusso di lavoro di sviluppo nell'editor

Importante

Per impostazione ShouldLoadFromFile predefinita, la proprietà dell'osservatore è impostata su false. Per visualizzare una stanza di esempio serializzata, vedere la sezione configurazione del servizio osservatore riportata di seguito e impostare la proprietà su true nell'editor.

Nota

La scena di esempio è basata sulla pipeline XR legacy. Se si usa la pipeline XR SDK, è necessario modificare i profili di conseguenza. Il profilo Scene Understanding Spatial Awareness System ( ) e i profili DemoSceneUnderstandingSystemProfile Scene Understanding Observer ( e ) funzionano per DefaultSceneUnderstandingObserverProfile DemoSceneUnderstandingObserverProfile entrambe le pipeline.

Nota

La scena di esempio registra un avviso in determinate circostanze a There is no active AsyncCoroutineRunner when an action is posted. causa dell'ordine di inizializzazione/esecuzione del thread. Se puoi verificare che il componente sia collegato al GameObject "Demo Controller" e che il componente/GameObject rimanga abilitato/attivo nella scena (caso predefinito), l'avviso può essere tranquillamente AsyncCoroutineRunner ignorato.

Configurazione del servizio observer

Selezionare l'oggetto gioco "MixedRealityToolkit" e controllare il controllo.

comprensione della posizione della scena nella gerarchia

Posizione di MRTK in Inspector

Queste opzioni consentiranno a un utente di configurare WindowsSceneUnderstandingObserver .

Script di esempio

Lo script di esempio DemoSceneUnderstandingController.cs illustra i concetti principali dell'uso del servizio Scene Understanding.

  • Sottoscrizione di eventi scene understanding
  • Gestione degli eventi di comprensione della scena
  • Configurazione di in WindowsSceneUnderstandingObserver fase di esecuzione

Gli interruttori sul pannello nella scena modificano il comportamento dell'osservatore di comprensione della scena chiamando le funzioni pubbliche di questo script di esempio.

Attivando Instantiate Prefabs, verrà illustrata la creazione di oggetti che si adattano a tutti gli SpatialAwarenessSceneObject,raccolti in modo accurato in un oggetto padre.

opzioni del controller demo

Note sull'app compilata

Compilare e distribuire in HoloLens in modo standard. Dopo l'esecuzione, dovrebbe apparire una serie di pulsanti per la riproduzione con le funzionalità.

Si noti che esistono alcuni problemi nell'esecuzione di query all'osservatore. Una configurazione errata di una richiesta di recupero ha come risultato il payload dell'evento che non contiene i dati previsti. Ad esempio, se non si richiedono quad, non saranno presenti trame maschera di occlusione. Analogamente, non verrà visualizzata alcuna mesh mondiale se l'osservatore non è configurato per richiedere mesh. Lo DemoSceneUnderstandingController script si occupa di alcune di queste dipendenze, ma non di tutte.

I file di scena salvati sono accessibili tramite il portale dei dispositivi all'indirizzo User Folders/LocalAppData/[APP_NAME]/LocalState/PREFIX_yyyyMMdd_hhmmss.bytes . Questi file di scena possono essere usati nell'editor specificandoli nel profilo osservatore trovato nel controllo.

Portale di dispositivi percorso del file di byte

Byte della scena serializzati nell'osservatore

Vedere anche