Condividi tramite


Panoramica dell'acquisizione di realtà mista

Nota

Per indicazioni su una nuova funzionalità MRC per HoloLens 2, vedere Eseguire il rendering dalla fotocamera pv di seguito.

È possibile acquisire una foto o un video di acquisizione di realtà mista in qualsiasi momento, ma quando si sviluppa l'applicazione è necessario tenere presente alcuni aspetti. Sono incluse le procedure consigliate per la qualità dell'oggetto visivo MRC e la risposta alle modifiche del sistema durante l'acquisizione di MRC.

Gli sviluppatori possono anche integrare facilmente l'acquisizione e l'inserimento di realtà mista nelle proprie app.

MRC in HoloLens (prima generazione) supporta video e foto fino a 720p, mentre MRC su HoloLens 2 supporta video fino a 1080p e foto fino a 4K risoluzione.

L'importanza del MRC di qualità

Che si tratti di screenshot di realtà mista nella pagina di Microsoft Store o di altri utenti che condividono contenuti di acquisizione sui social network, Realtà mista Capture media è spesso una prima esposizione degli utenti alla tua app. È possibile usare MRC per illustrare l'app, educare gli utenti, incoraggiare gli utenti a condividere le interazioni con il mondo misto e per la ricerca e la risoluzione dei problemi degli utenti.

Impatto di MRC sull'app

Abilitazione di MRC nell'app

Per impostazione predefinita, un'app non deve eseguire alcuna operazione per consentire agli utenti di acquisire realtà mista.

Abilitazione dell'allineamento migliorato per MRC nell'app

Per impostazione predefinita, l'acquisizione di realtà mista combina l'output olografico dell'occhio destro con la fotocamera foto/video (PV). Queste due origini vengono combinate usando il punto attivo impostato dall'app immersiva attualmente in esecuzione.

Ciò significa che gli ologrammi al di fuori del piano di messa a fuoco non verranno allineati a causa della distanza fisica tra la fotocamera PV e il display destro.

Impostare il punto attivo

Le app immersive (in HoloLens) devono impostare il punto di messa a fuoco della posizione in cui devono trovarsi il piano di stabilizzazione. In questo modo si garantisce il migliore allineamento sia nell'auricolare che nell'acquisizione di realtà mista.

Se non è impostato un punto di messa a fuoco, il piano di stabilizzazione verrà impostato per impostazione predefinita su 2 metri.

Rendering dalla fotocamera pv (consenso esplicito)

HoloLens 2 aggiunge la possibilità per un'app immersiva di eseguire il rendering dalla fotocamera PV mentre è in esecuzione l'acquisizione di realtà mista. Per assicurarsi che l'app supporti correttamente il rendering aggiuntivo, l'app deve acconsentire esplicitamente a questa funzionalità.

Il rendering dalla fotocamera pv offre i miglioramenti seguenti rispetto all'esperienza MRC predefinita:

  • L'allineamento dell'ologramma all'ambiente fisico e alle mani per le interazioni vicine deve essere accurato a tutte le distanze. Evitare di avere un offset a distanze diverse dal punto di messa a fuoco, come si potrebbe vedere nel mrc predefinito.
  • L'occhio destro nell'auricolare non verrà compromesso, perché non verrà usato per eseguire il rendering degli ologrammi per l'output MRC.

Altre informazioni sul rendering dalla fotocamera PV (DirectX).

Procedure consigliate (specifiche di HoloLens)

MrC dovrebbe funzionare senza ulteriori sforzi di sviluppo, ma ci sono alcuni aspetti da tenere presenti quando si offre la migliore esperienza di acquisizione della realtà mista.

MRC usa il canale alfa dell'ologramma per fondersi con le immagini della fotocamera

Il passaggio più importante consiste nell'assicurarsi che l'app venga cancellata in nero trasparente anziché in nero opaco. In Unity questa operazione viene eseguita per impostazione predefinita con MixedRealityToolkit. Se si sta sviluppando in non Unity, potrebbe essere necessario apportare una modifica di una riga.

Ecco alcuni degli artefatti che potrebbero essere visualizzati in MRC se l'app non viene cancellata in nero trasparente:

Errori di esempio: bordi neri intorno al contenuto (non riesce a cancellare il nero trasparente)

Non è possibile cancellare il nero trasparente: artefatti dei bordi neri intorno agli ologrammi Non è possibile cancellare il nero trasparente: artefatti perimetrali neri intorno agli ologrammi

Errori di esempio: l'intera scena di sfondo dell'ologramma viene visualizzata in nero. L'impostazione di un valore alfa di sfondo di uno genera uno sfondo nero

L'impostazione di un valore alfa di sfondo pari a 1 genera uno sfondo nero

Risultato previsto: gli ologrammi vengono visualizzati correttamente mescolati con il mondo reale (risultato previsto se la cancellazione diventa nero trasparente)

Risultato previsto se si cancella il nero trasparente

Soluzione:

  • Modificare qualsiasi contenuto visualizzato come nero opaco in modo che abbia un valore alfa pari a 0.
  • Assicurarsi che l'app venga cancellata in nero trasparente.
  • Per impostazione predefinita Unity viene cancellato automaticamente con MixedRealityToolkit, ma se si tratta di un'app non Unity, è necessario modificare il colore usato con ID3D11DeiceContext::ClearRenderTargetView(). Si vuole assicurarsi di essere chiari al nero trasparente (0,0,0,0) anziché al nero opaco (0,0,0,1).

È ora possibile ottimizzare i valori alfa degli asset, se lo si desidera, ma in genere non è necessario. Per la maggior parte dei casi, i mrc avranno un aspetto ottimale. MRC presuppone alfa premoltiplicato. I valori alfa influiranno solo sull'acquisizione mrc.

Cosa aspettarsi quando MRC è abilitato in HoloLens

Quanto segue si applica sia a HoloLens (prima generazione) che a HoloLens 2, se non diversamente specificato:

  • Il sistema limiterà l'applicazione al rendering a 30 Hz. In questo modo si crea un margine di manovra per l'esecuzione di MRC in modo che l'app non debba mantenere una riserva di budget costante e corrisponda anche al framerate del record video MRC di 30 fps
  • Il contenuto dell'ologramma nell'occhio destro del dispositivo può sembrare "sparkle" durante la registrazione/streaming di MRC: il testo potrebbe diventare più difficile da leggere e i bordi dell'ologramma potrebbero apparire più irregolari (acconsentendo esplicitamente al rendering della terza fotocamera su HoloLens 2 evita questa compromissione)
  • Le foto e i video MRC rispetteranno il punto di messa a fuoco dell'applicazione se l'applicazione l'ha abilitata, il che consentirà di garantire che gli ologrammi siano posizionati in modo accurato. Per i video, il punto di messa a fuoco è smussato in modo che gli ologrammi possano sembrare lentamente sfocarsi in posizione se la profondità del punto di messa a fuoco cambia significativamente. Gli ologrammi che si trovano a profondità diverse dal punto di messa a fuoco possono apparire sfalsati dal mondo reale (vedere l'esempio seguente in cui il punto di messa a fuoco è impostato su 2 metri, ma l'ologramma è posizionato a 1 metro).

Gli ologrammi a 2 metri appariranno perfettamente registrati al mondo. Gli ologrammi a distanze vicine o lontane possono essere leggermente sfalsati.

Integrazione della funzionalità MRC dall'interno dell'app

L'app di realtà mista può avviare l'acquisizione di foto o video MRC dall'interno dell'app e il contenuto acquisito viene reso disponibile per l'app senza essere archiviato nel "Rullino fotografico" del dispositivo. È possibile creare un registratore MRC personalizzato o sfruttare i vantaggi dell'interfaccia utente di acquisizione della fotocamera predefinita.

MRC con interfaccia utente della fotocamera predefinita

Gli sviluppatori possono usare l'API dell'interfaccia utente di Acquisizione fotocamera per ottenere una foto o un video di realtà mista acquisiti dall'utente con poche righe di codice.

Questa API avvia l'interfaccia utente della fotocamera MRC predefinita in cui gli utenti possono scattare una foto o un video e restituire l'acquisizione risultante all'app. È possibile creare un registratore Realtà mista Capture personalizzato se è necessario aggiungere l'interfaccia utente della fotocamera o l'accesso di livello inferiore per acquisire i flussi.

Creazione di un registratore MRC personalizzato

Anche se l'utente può sempre attivare una foto o un video usando il servizio di acquisizione MRC di sistema, un'applicazione potrebbe voler creare un'app per fotocamera personalizzata che includa ologrammi nel flusso della fotocamera proprio come MRC. In questo modo l'applicazione può avviare le acquisizioni dall'input dell'utente, creare un'interfaccia utente di registrazione personalizzata o personalizzare le impostazioni mrc per citarne alcuni esempi.

HoloStudio aggiunge una fotocamera MRC personalizzata con effetti MRC

HoloStudio aggiunge una fotocamera MRC personalizzata con effetti MRC

Le applicazioni Unity dovrebbero visualizzare Locatable_camera_in_Unity per la proprietà per abilitare gli ologrammi.

Altre applicazioni possono eseguire questa operazione usando le API di Acquisizione di Windows Media per controllare la fotocamera e aggiungere un effetto MRC Video e Audio per includere ologrammi virtuali e audio dell'applicazione in immagini fisse e video.

Altre informazioni sulla creazione di un registratore MRC personalizzato (DirectX).

Limitazioni simultanee di MRC

È necessario essere consapevoli di alcune limitazioni quando più app accedono contemporaneamente a MRC.

Accesso con fotocamera foto/video

In HoloLens 1 MRC non riuscirà a catturare una foto o a catturare video mentre un processo sta registrando video o scattando una foto. Anche il contrario è vero: se MRC è in esecuzione, l'applicazione non riuscirà a ottenere l'accesso alla fotocamera.

Con HoloLens 2, è possibile condividere l'accesso alla fotocamera. Se non è necessario il controllo diretto della risoluzione o della frequenza dei fotogrammi, è possibile inizializzare MediaCapture usando la proprietà SharedMode con SharedReadOnly.

Accesso con fotocamera mrc incorporata

Informazioni sull'accesso con fotocamera mrc incorporata (DirectX).

Accesso MRC per sviluppatori

È consigliabile richiedere sempre il controllo esclusivo per la fotocamera quando si usa MRC. In questo modo, l'applicazione avrà il controllo completo delle impostazioni per la fotocamera, purché si conoscano le limitazioni elencate in precedenza.

Altre informazioni sull'accesso MRC per sviluppatori (DirectX).

Vedere anche