Panoramica dell'acquisizione di realtà mista

Nota

Per indicazioni su una nuova funzionalità MRC per HoloLens 2, vedere Rendering dalla fotocamera PV seguente.

È possibile eseguire una foto o un video di acquisizione di realtà mista (MRC) in qualsiasi momento, ma ci sono alcune cose da tenere presente durante lo sviluppo dell'applicazione. Sono incluse le procedure consigliate per la qualità visiva mrC e la velocità di risposta alle modifiche del sistema durante l'acquisizione di MRC.

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

MRC su 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à

Indipendentemente dal fatto che si tratti di screenshot di realtà mista nella pagina Microsoft Store o di altri utenti che condividono il contenuto di acquisizione nei social network, Realtà mista Capture media è spesso una prima esposizione degli utenti all'app. È possibile usare MRC per demore l'app, informare gli utenti, incoraggiare gli utenti a condividere le interazioni del mondo misto e per la ricerca utente e la risoluzione dei problemi.

Come MRC influisce sull'app

Abilitazione di MRC nell'app

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

Abilitazione di un 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 di messa a fuoco impostato dall'app immersiva attualmente in esecuzione.

Ciò significa che gli ologrammi all'esterno 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 di dove vogliono che il piano di stabilizzazione sia. Ciò garantisce l'allineamento migliore sia nel visore che nell'acquisizione di realtà mista.

Se un punto di messa a fuoco non è impostato, il piano di stabilizzazione sarà predefinito a 2 metri.

Rendering dalla fotocamera PV (opt-in)

HoloLens 2 aggiunge la possibilità di eseguire il rendering di un'app immersiva dalla fotocamera PV mentre l'acquisizione di realtà mista è in esecuzione. Per garantire 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 le mani per le interazioni vicino devono essere accurati in tutte le distanze. Evitare di avere un offset a distanze diverse dal punto di messa a fuoco come potrebbe essere visualizzato nel mrC predefinito.
  • L'occhio destro nel visore 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 è previsto che funzioni senza ulteriori sforzi di sviluppo, ma ci sono alcune cose da tenere presente quando si fornisce la migliore esperienza di acquisizione di realtà mista.

MRC usa il canale alfa dell'ologramma per fondersi con l'immagine della fotocamera

Il passaggio più importante consiste nel assicurarsi che l'app stia cancellando il nero trasparente anziché cancellare il 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 potresti vedere in MRC se l'app non cancella il nero trasparente:

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

Failure to clear to transparent black: black edge artifacts around holograms Failing to clear to transparent black: black edge artifacts around holograms

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

Setting a background alpha value of 1 results in a black background

Risultato previsto: Ologrammi appaiono correttamente mescolati con il mondo reale (risultato previsto se si cancella il nero trasparente)

Expected result if clearing to transparent black

Soluzione:

  • Modificare qualsiasi contenuto visualizzato come nero opaco per avere un valore alfa pari a 0.
  • Assicurarsi che l'app sia deselezionata in nero trasparente.
  • Le impostazioni predefinite di Unity vengono cancellate automaticamente con MixedRealityToolkit, ma se si tratta di un'app non Unity, è consigliabile modificare il colore usato con ID3D11DeiceContext::ClearRenderTargetView(). Si vuole assicurarsi di cancellare il nero trasparente (0,0,0,0) anziché nero opaco (0,0,0,1).

È ora possibile ottimizzare i valori alfa degli asset se si vuole, ma in genere non è necessario. La maggior parte del tempo, mrcs sarà buono fuori dalla scatola. MRC presuppone che alfa pre-moltiplicato. I valori alfa influiscono solo sull'acquisizione MRC.

Cosa aspettarsi quando MRC è abilitato in HoloLens

Le seguenti si applicano sia a HoloLens (prima generazione) che a HoloLens 2, a meno che non sia diversamente indicato:

  • Il sistema limita il rendering dell'applicazione a 30-Hz. In questo modo viene creata una headroom per l'esecuzione di MRC, in modo che l'app non debba mantenere una costante riserva di budget e corrisponda anche al fotogramma del record video MRC di 30 fps
  • Il contenuto dell'ologramma nell'occhio destro del dispositivo può sembrare "sparkle" quando si registra/streaming MRC: il testo potrebbe diventare più difficile da leggere e gli ologrammi potrebbero apparire più fraslicenza (optando per il terzo rendering della fotocamera su HoloLens 2 evita questa compromissione)
  • Le foto e i video MRC rispettano il punto attivo dell'applicazione se l'applicazione l'ha abilitata, che consente di garantire che gli ologrammi siano posizionati in modo accurato. Per i video, il punto di messa a fuoco viene lisciato in modo che gli ologrammi possano apparire lentamente in posizione se la profondità del punto attivo cambia significativamente. Ologrammi che si trovano a profondità diverse dal punto di messa a fuoco possono apparire offset dal mondo reale (vedere l'esempio seguente in cui punto attivo è impostato a 2 metri ma l'ologramma è posizionato a 1 metro).

Holograms at 2 meters will appear perfectly registered to the world. Holograms at close or far distances may be slightly offset.

Integrazione della funzionalità MRC dall'interno dell'app

L'app di realtà mista può avviare l'acquisizione di foto o video di MRC dall'app e il contenuto acquisito è reso disponibile per l'app senza essere archiviato nel "Roll della fotocamera" del dispositivo. È possibile creare un registratore MRC personalizzato o sfruttare l'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 acquisita 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 restituisce l'acquisizione risultante all'app. È possibile creare un registratore di acquisizione personalizzato Realtà mista se è necessario aggiungere l'interfaccia utente della fotocamera o l'accesso a 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 fotocamera personalizzata che include ologrammi nel flusso della fotocamera proprio come MRC. Ciò consente all'applicazione di avviare le acquisizioni dall'input utente, compilare l'interfaccia utente di registrazione personalizzata o personalizzare le impostazioni di MRC per assegnare un nome a alcuni esempi.

HoloStudio aggiunge una fotocamera MRC personalizzata usando gli effetti MRC

HoloStudio adds a custom MRC camera using MRC effects

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

Altre applicazioni possono eseguire questa operazione usando le API di acquisizione multimediale Windows per controllare la fotocamera e aggiungere un effetto MRC Video e Audio per includere gli ologrammi virtuali e l'audio dell'applicazione in ancora e video.

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

Limitazioni di MRC simultanee

È necessario tenere presente alcune limitazioni quando più app accedono contemporaneamente a MRC.

Accesso alla fotocamera/foto

In HoloLens 1, MRC non riuscirà a acquisire una foto o acquisire video durante la registrazione di un video o l'acquisizione di una foto. Il contrario è anche 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 a foto/videocamera MRC predefinito

Informazioni sull'accesso a foto/video di MRC predefinito (DirectX).

Accesso MRC per gli 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 siano consapevoli delle limitazioni elencate in precedenza.

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

Vedere anche