Configurazione della fotocamera in Unity

Quando si indossa un visore di realtà mista, diventa il centro del mondo olografico. Il componente Unity Camera gestirà automaticamente il rendering stereoscopico e seguirà lo spostamento e la rotazione della testa. Tuttavia, per ottimizzare completamente la qualità visiva e la stabilità dell'ologramma, è necessario impostare le impostazioni della fotocamera descritte di seguito.

visori vr e HoloLens vr

Le impostazioni predefinite del componente Fotocamera unity sono per le applicazioni 3D tradizionali, che necessitano di uno sfondo simile a skybox perché non hanno un mondo reale.

  • Quando si esegue su un visore visore immersivo, si esegue il rendering di tutto ciò che l'utente vede e quindi probabilmente si vuole mantenere la skybox.
  • Tuttavia, quando si esegue su un visore olografico come HoloLens, il mondo reale dovrebbe apparire dietro tutto il rendering della fotocamera. Impostare lo sfondo della fotocamera per essere trasparente (in HoloLens, il rendering nero è trasparente) anziché una trama skybox:
    1. Selezionare la fotocamera principale nel pannello Gerarchia
    2. Nel pannello Controllo individuare il componente Fotocamera e modificare l'elenco a discesa Cancella flag da Skybox a Colore a tinta unita
    3. Selezionare la selezione colori sfondo e modificare i valori RGBA su (0, 0, 0, 0, 0)
      1. Se si imposta questa impostazione dal codice, è possibile usare Unity Color.clear

MRTK gestirà automaticamente le impostazioni specifiche della fotocamera, in base alla configurazione nel profilo di sistema della fotocamera.

Spazio dei nomi:Microsoft.MixedReality.Toolkit. CameraSystem
Type:MixedRealityCameraSystem

Per controllare l'opacità della fotocamera, il sistema MixedRealityCamera ha una IsOpaque proprietà.

CoreServices.CameraSystem.IsOpaque;

Impostazione della fotocamera

Qualsiasi tipo di esperienza che stai sviluppando, la fotocamera principale è sempre il componente di rendering stereo primario collegato al display montato sulla testa del dispositivo. Sarà più semplice creare l'app se si immagina la posizione iniziale dell'utente come (X: 0, Y: 0, Z: 0, Z: 0). Poiché la fotocamera principale tiene traccia dello spostamento della testa dell'utente, la posizione iniziale dell'utente può essere impostata impostando la posizione iniziale della fotocamera principale.

La scelta centrale che devi fare è se stai sviluppando per HoloLens o visori vr immersivi. Una volta ottenuto questo, passare a qualsiasi sezione di installazione si applica.

HoloLens configurazione della fotocamera

Per HoloLens app, è necessario usare ancoraggi per tutti gli oggetti che si desidera bloccare nell'ambiente della scena. È consigliabile usare spazio non associato per ottimizzare la stabilità e creare ancoraggi in più camere.

Seguire questa esercitazione dettagliata per aggiungere e configurare automaticamente Realtà mista Toolkit nel progetto Unity. È anche possibile usare direttamente la classe MixedRealityPlayspace da MRTK per Unity e impostare la scala di destinazione su World:

MRTK settings window

MRTK deve gestire automaticamente la posizione dello spazio di riproduzione e della fotocamera, ma è consigliabile fare doppio controllo:

MRTK playspace

  1. Nel pannello Gerarchia espandere MixedRealityPlayspace GameObject e trovare l'oggetto figlio della fotocamera principale
  2. Nel pannello Controllo individuare il componente Trasforma e modificare la posizionesu (X: 0, Y: 0, Z: 0)

Configurazione della fotocamera VR

Windows Mixed Reality supporta le app in un'ampia gamma di scalabilità di esperienze, dall'orientamento alle app a livello di orientamento e a livello di sede fino alle app su larga scala. In HoloLens è possibile andare avanti e creare app su scala mondiale che consentono agli utenti di camminare oltre 5 metri, esplorando un intero piano di un edificio e oltre.

Il primo passaggio nella creazione di un'esperienza di realtà mista in Unity consiste nel determinare quale esperienza ridimensiona l'app sarà di destinazione:

Esperienze in scala o in piedi

Nota

Se si sta creando per HL2, è consigliabile creare un'esperienza a livello di occhio o prendere in considerazione l'uso di Scene Understanding per motivi sul pavimento della scena.

Usare la classe MixedRealityPlayspace da MRTK per Unity e impostare la scala di destinazione su Room o Standing:

MRTK settings window

MRTK deve gestire automaticamente la posizione dello spazio di riproduzione e della fotocamera, ma è consigliabile fare doppio controllo:

MRTK playspace

  1. Nel pannello Gerarchia espandere MixedRealityPlayspace GameObject e trovare l'oggetto figlio della fotocamera principale
  2. Nel pannello Controllo individuare il componente Trasforma e modificare la posizionesu (X: 0, Y: 0, Z: 0)

Esperienze sedute

Usare la classe MixedRealityPlayspace da MRTK per Unity e impostare la scala di destinazione su Seated:

MRTK settings window

MRTK deve gestire automaticamente la posizione dello spazio di riproduzione e della fotocamera, ma è consigliabile fare doppio controllo:

MRTK playspace

  1. Nel pannello Gerarchia espandere MixedRealityPlayspace GameObject e trovare l'oggetto figlio della fotocamera principale
  2. Nel pannello Controllo individuare il componente Trasforma e modificare la posizionesu (X: 0, Y: 0, Z: 0)

Configurazione dello sfondo della fotocamera

Se si usa MRTK, lo sfondo della fotocamera viene configurato e gestito automaticamente. Per i progetti XR SDK o Legacy WSA, è consigliabile impostare lo sfondo della fotocamera su nero solido su HoloLens e mantenere lo skybox per VR.

Uso di più fotocamere

Quando sono presenti più componenti della fotocamera nella scena, Unity sa quale fotocamera usare per il rendering stereoscopico in base al quale GameObject ha il tag MainCamera. In XR legacy usa anche questo tag per sincronizzare il rilevamento head. In XR SDK il rilevamento head viene guidato da uno script TrackedPoseDriver collegato alla fotocamera.

Condivisione dei buffer di profondità

La condivisione del buffer di profondità dell'app per Windows ogni frame darà all'app uno dei due incrementi nella stabilità dell'ologramma, in base al tipo di visore visore per cui si esegue il rendering:

  • I visori vr immersivi possono prendersi cura della riprogettazione posizionale quando viene fornito un buffer di profondità, modificando gli ologrammi per la prespredizione in entrambe le posizioni e l'orientamento.
  • HoloLens visori visori hanno alcuni metodi diversi. HoloLens 1 seleziona automaticamente un punto di stato attivo quando viene fornito un buffer di profondità, ottimizzando la stabilità dell'ologramma lungo il piano che interseca la maggior parte del contenuto. HoloLens 2 stabilirà il contenuto usando Depth LSR (vedere Osservazioni).

La finestra di dialogo di configurazione di MRTK tenterà di impostare le impostazioni del buffer di profondità per XR SDK e WSA legacy, ma è consigliabile controllare tali schede e verificare le impostazioni in Unity.

Uso dei piani di ritaglio

Il rendering del contenuto troppo vicino all'utente può essere scomodo in realtà mista. È possibile regolare i piani di clip vicino e lontano nel componente Fotocamera.

  1. Selezionare la fotocamera principale nel pannello Gerarchia
  2. Nel pannello Controllo trovare il componente FotocameraRitaglio piani e modificare la casella di testo Near da 0.3 a 0.85. Il rendering del contenuto è ancora più vicino può causare disagio dell'utente e deve essere evitato per le linee guida sulla distanza di rendering.

Recentering the camera

Se si sta creando un'esperienza su scala seduta, è possibile recente l'origine del mondo di Unity nella posizione head corrente dell'utente chiamando XR. Metodo InputTracking.Recenter in XR legacy o nel metodo XRInputSubsystem.TryRecenter in XR SDK.

Teletrasporto

Questa funzionalità è in genere riservata alle esperienze VR:

MRTK offre un sistema di teleporting in box che funziona automaticamente tra mani e controller articolati.

Modalità di riprogettazione

Entrambi i visori visori HoloLens e immersivi riprogetteranno ogni fotogramma che l'app esegue il rendering per modificare qualsiasi prepredizione della posizione head effettiva dell'utente quando vengono generati fotoni.

Per impostazione predefinita:

  • I visori vr immersivi si occuperanno della riprogettazione posizionale se l'app fornisce un buffer di profondità per un determinato frame. Gli visori immersivi regolano anche gli ologrammi per la prespredizione sia nella posizione che nell'orientamento. Se non viene fornito un buffer di profondità, il sistema correggerà solo le errori di orientamento.
  • Gli visori olografici come HoloLens 2 si occuparanno della riprogettazione posizionale se l'app fornisce il buffer di profondità o meno. La riprogettazione posizionale è possibile senza buffer di profondità su HoloLens poiché il rendering è spesso sparse con uno sfondo stabile fornito dal mondo reale.

MRTK attualmente non dispone di helper per la modalità di riprogettazione. Per altre informazioni, vedere una delle altre schede.

Successivo checkpoint di sviluppo

Se si sta seguendo il percorso di sviluppo di Unity, si è in corso l'esplorazione dei blocchi predefiniti di MRTK. Da qui è possibile passare al blocco predefinito successivo:

In alternativa, passare alle API e funzionalità della piattaforma di realtà mista:

È sempre possibile tornare ai checkpoint per lo sviluppo con Unity in qualsiasi momento.

Vedere anche