Configurazione della fotocamera in Unity

Quando indossi un visore VR di realtà mista, diventa il centro del tuo mondo olografico. Il componente Unity Camera gestirà automaticamente il rendering stereoscopico e seguirà il movimento e la rotazione della testa. Tuttavia, per ottimizzare completamente la qualità visiva e la stabilità degli ologrammi, è necessario impostare le impostazioni della fotocamera descritte di seguito.

HoloLens vs VR vr immersive headsets

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

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

MRTK gestirà automaticamente impostazioni specifiche della fotocamera, in base alla configurazione nel profilo del 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;

Configurazione della fotocamera

Qualunque sia il tipo di esperienza che stai sviluppando, la fotocamera principale è sempre il componente di rendering stereo principale collegato al display montato sulla testa del dispositivo. Sarà più semplice disporre l'app se si immagina la posizione iniziale dell'utente come (X: 0, Y: 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 è necessario fare è se si sta sviluppando per HoloLens o vr immersive headsets. Una volta ottenuto questo, passare a qualsiasi sezione di configurazione si applica.

Configurazione della fotocamera HoloLens

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

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

Finestra impostazioni MRTK

MRTK deve gestire automaticamente la posizione dello spazio di riproduzione e della fotocamera, ma è consigliabile controllare due volte:

Spazio di gioco MRTK

  1. Nel pannello Hierarchy (Gerarchia) espandere MixedRealityPlayspace GameObject e trovare l'oggetto figlio Main Camera
  2. Nel pannello Inspector (Controllo ) individuare il componente Transform (Trasforma) e modificare La posizionein (X: 0, Y: 0, Z: 0)

Configurazione della fotocamera VR

Windows Mixed Reality supporta le app in un'ampia gamma di scalabilità di esperienze, dalle app solo orientamento e su larga scala fino alle app su scala locale. In HoloLens puoi andare oltre e creare app su scala mondiale che consentono agli utenti di camminare oltre i 5 metri, esplorando un intero piano di un edificio e oltre.

Il primo passaggio per la creazione di un'esperienza di realtà mista in Unity consiste nel determinare la scalabilità dell'esperienza destinata all'app:

Esperienze su scala locale o in piedi

Nota

Se stai creando per HL2, ti consigliamo di creare un'esperienza a livello di occhio o di usare La comprensione della scena per ragionare sul piano della scena.

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

Finestra impostazioni MRTK

MRTK deve gestire automaticamente la posizione dello spazio di riproduzione e della fotocamera, ma è consigliabile controllare due volte:

Spazio di gioco MRTK

  1. Nel pannello Hierarchy (Gerarchia) espandere MixedRealityPlayspace GameObject e trovare l'oggetto figlio Main Camera
  2. Nel pannello Inspector (Controllo ) individuare il componente Transform (Trasforma) e modificare La posizionein (X: 0, Y: 0, Z: 0)

Esperienze seduti

Usare la classe MixedRealityPlayspace di MRTK per Unity e impostare La scala di destinazione su Seduta:

Finestra impostazioni MRTK

MRTK deve gestire automaticamente la posizione dello spazio di riproduzione e della fotocamera, ma è consigliabile controllare due volte:

Spazio di gioco MRTK

  1. Nel pannello Hierarchy (Gerarchia) espandere MixedRealityPlayspace GameObject e trovare l'oggetto figlio Main Camera
  2. Nel pannello Inspector (Controllo ) individuare il componente Transform (Trasforma) e modificare La posizionein (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 WSA legacy o XR SDK, è consigliabile impostare lo sfondo della fotocamera su nero a tinta unita in HoloLens e mantenere il skybox per la realtà virtuale.

Uso di più fotocamere

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

Condivisione di buffer di profondità

La condivisione del buffer di profondità dell'app in Windows per ogni fotogramma fornirà all'app uno dei due incrementi di stabilità degli ologrammi, in base al tipo di visore per cui si esegue il rendering:

  • Le cuffie VR immersive possono occuparsi della riprogettazione posizionale quando viene fornito un buffer di profondità, regolando gli ologrammi per una errata prepredizione sia in posizione che in orientamento.
  • Le cuffie HoloLens hanno alcuni metodi diversi. HoloLens 1 selezionerà automaticamente un punto di messa a fuoco quando viene fornito un buffer di profondità, ottimizzando la stabilità degli ologrammi lungo il piano che interseca la maggior parte del contenuto. HoloLens 2 stabilizzerà il contenuto usando Depth LSR (vedere osservazioni).

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

Uso dei piani di ritaglio

Il rendering di contenuto troppo vicino all'utente può risultare scomodo nella realtà mista. È possibile regolare i piani di clip vicini e lontani sul componente Fotocamera.

  1. Selezionare la fotocamera principale nel pannello Gerarchia
  2. Nel pannello Controllo individuare i piani di ritaglio del componente Fotocamera e modificare la casella di testo Vicino da 0,3 a 0,85. Il rendering del contenuto ancora più vicino può causare disagio per l'utente e deve essere evitato in base alle linee guida sulla distanza di rendering.

Recentere la fotocamera

Se si sta creando un'esperienza su larga scala, è possibile usare l'origine globale di Unity più recente nella posizione head corrente dell'utente chiamando la XR. Metodo InputTracking.Recenter in XR legacy o il metodo XRInputSubsystem.TryRecenter in XR SDK.

Teletrasporto

Questa funzionalità è in genere riservata alle esperienze VR:

MRTK fornisce un sistema di teletrasporto incorporato che funziona automaticamente su mani e controller articolati.

Modalità di riprogettazione

Sia HoloLens che le cuffie immersive riprogetteranno ogni fotogramma di cui l'app esegue il rendering per adattarla a qualsiasi errata precondizione della posizione effettiva della testa dell'utente quando vengono emessi i fotoni.

Per impostazione predefinita:

  • Le cuffie vr immersive si occuperanno della riprogettazione posizionale se l'app fornisce un buffer di profondità per un determinato fotogramma. Gli auricolari immersive regolano anche gli ologrammi per un'errata prepredizione sia in posizione che in orientamento. Se non viene fornito un buffer di profondità, il sistema correggerà solo gli errori di orientamento.
  • Le cuffie olografiche come HoloLens 2 si occuperanno della riprogettazione posizionale indipendentemente dal fatto che l'app fornisca o meno il buffer di profondità. La riprogettazione posizionale è possibile senza buffer di profondità in HoloLens poiché il rendering è spesso di tipo 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.

Checkpoint di sviluppo successivo

Se si segue il percorso di sviluppo di Unity definito, si sta esplorando i blocchi predefiniti principali di MRTK. Da qui è possibile continuare con il blocco predefinito successivo:

In alternativa, passare a Realtà mista funzionalità e API della piattaforma:

È sempre possibile tornare ai checkpoint di sviluppo di Unity in qualsiasi momento.

Vedere anche