Delen via


Camera-instelling in Unity

Wanneer u een mixed reality headset draagt, wordt het midden van uw holografische wereld. Het Unity Camera-onderdeel verwerkt automatisch stereoscopische rendering en volgt uw hoofdbeweging en draaiing. Als u echter de visuele kwaliteit en hologramstabiliteit volledig wilt optimaliseren, moet u de hieronder beschreven camera-instellingen instellen.

HoloLens versus VR immersive headsets

De standaardinstellingen op het Unity Camera-onderdeel zijn voor traditionele 3D-toepassingen die een skybox-achtige achtergrond nodig hebben omdat ze geen echte wereld hebben.

  • Wanneer u op een insluitende headset werkt, wordt alles weergegeven wat de gebruiker ziet en wilt u de skybox waarschijnlijk behouden.
  • Wanneer u echter op een holografische headset zoals HoloLens draait, moet de echte wereld worden weergegeven achter alles wat de camera weergeeft. Stel de camera-achtergrond in op doorzichtig (in HoloLens wordt zwart weergegeven als transparant) in plaats van een Skybox-textuur:
    1. Selecteer de hoofdcamera in het deelvenster Hiërarchie
    2. Zoek in het deelvenster Inspector het onderdeel Camera en wijzig de vervolgkeuzelijst Clear Flags van Skybox in Solid Color
    3. Selecteer de achtergrondkleurkiezer en wijzig de RGBA-waarden in (0, 0, 0, 0)
      1. Als u dit instelt vanuit code, kunt u unity's gebruiken Color.clear

MRTK verwerkt automatisch specifieke camera-instellingen op basis van de configuratie in het camerasysteemprofiel.

Naamruimte: Microsoft.MixedReality.Toolkit.CameraSystem
Type: MixedRealityCameraSystem

Om de ondoorzichtigheid van de camera te controleren, heeft het MixedRealityCamera-systeem een IsOpaque eigenschap.

CoreServices.CameraSystem.IsOpaque;

Camera-instelling

Welke ervaring u ook ontwikkelt, de hoofdcamera is altijd het primaire stereorenderingsonderdeel dat is gekoppeld aan het hoofdscherm van uw apparaat. Het is eenvoudiger om uw app in te delen als u zich de beginpositie van de gebruiker voorstelt als (X: 0, Y: 0, Z: 0). Aangezien de hoofdcamera beweging van het hoofd van de gebruiker volgt, kan de beginpositie van de gebruiker worden ingesteld door de beginpositie van de hoofdcamera in te stellen.

De centrale keuze die u moet maken, is of u ontwikkelt voor HoloLens- of VR-immersive headsets. Zodra u dat hebt gedaan, gaat u verder met de instellingensectie die van toepassing is.

Installatie van HoloLens-camera

Voor HoloLens-apps moet u ankers gebruiken voor objecten die u wilt vergrendelen voor de scèneomgeving. We raden u aan niet-gebonden ruimte te gebruiken om de stabiliteit te maximaliseren en ankers in meerdere ruimten te maken.

Volg deze stapsgewijze zelfstudie om Mixed Reality Toolkit toe te voegen en automatisch te configureren in uw Unity-project. Het is ook mogelijk om rechtstreeks met de klasse MixedRealityPlayspace van MRTK voor Unity te werken en de doelschaal in te stellen op wereld:

Venster MRTK-instellingen

MRTK moet de positie van de playspace en camera automatisch afhandelen, maar het is goed om het volgende te controleren:

MRTK-playspace

  1. Vouw in het deelvenster Hierarchy het MixedRealityPlayspace GameObject uit en zoek het onderliggende object Main Camera
  2. Zoek in het deelvenster Inspector het onderdeel Transformeren en wijzig de positie in (X: 0, Y: 0, Z: 0)

VR-camera instellen

Windows Mixed Reality ondersteunt apps in een breed scala aan ervaringsschalen, van alleen oriëntatie- en zit-apps omhoog via apps op ruimteschaal. Op HoloLens kunt u verder gaan en apps op wereldschaal bouwen waarmee gebruikers meer dan 5 meter kunnen lopen en een hele verdieping van een gebouw en verder kunnen verkennen.

Uw eerste stap bij het bouwen van een mixed reality-ervaring in Unity is om te bepalen op welke ervaringsschaal uw app gericht is:

Ruimteschaal of staande ervaringen

Notitie

Als u bouwt voor HL2, raden we u aan om een ervaring op oogniveau te maken of om Scènebegrip te gebruiken om de vloer van uw scène te redeneren.

Gebruik de klasse MixedRealityPlayspace van MRTK voor Unity en stel de doelschaal in op Ruimte of Staand:

Venster MRTK-instellingen

MRTK moet de positie van de playspace en camera automatisch afhandelen, maar het is goed om het volgende te controleren:

MRTK-playspace

  1. Vouw in het deelvenster Hierarchy het MixedRealityPlayspace GameObject uit en zoek het onderliggende object Main Camera
  2. Zoek in het deelvenster Inspector het onderdeel Transformeren en wijzig de positie in (X: 0, Y: 0, Z: 0)

Zitervaringen

Gebruik de klasse MixedRealityPlayspace van MRTK voor Unity en stel de doelschaal in op Seated:

Venster MRTK-instellingen

MRTK moet de positie van de playspace en camera automatisch afhandelen, maar het is goed om het volgende te controleren:

MRTK-playspace

  1. Vouw in het deelvenster Hierarchy het MixedRealityPlayspace GameObject uit en zoek het onderliggende object Main Camera
  2. Zoek in het deelvenster Inspector het onderdeel Transformeren en wijzig de positie in (X: 0, Y: 0, Z: 0)

De achtergrond van de camera instellen

Als u MRTK gebruikt, wordt de achtergrond van de camera automatisch geconfigureerd en beheerd. Voor XR SDK- of Oudere WSA-projecten raden we u aan de achtergrond van de camera in te stellen op effen zwart op HoloLens en de skybox voor VR te behouden.

Meerdere camera's gebruiken

Wanneer er meerdere Camera-onderdelen in de scène zijn, weet Unity welke camera moet worden gebruikt voor stereoscopische rendering op basis van welk GameObject de MainCamera-tag heeft. In de verouderde XR wordt deze tag ook gebruikt om het bijhouden van hoofden te synchroniseren. In XR SDK wordt het bijhouden van hoofden aangestuurd door een TrackedPoseDriver-script dat is gekoppeld aan de camera.

Dieptebuffers voor delen

Als u de dieptebuffer van uw app deelt met Windows, krijgt u elk frame een van twee boosts in hologramstabiliteit, op basis van het type headset dat u weergeeft voor:

  • VR immersive headsets kunnen zorgen voor positionele reprojectie wanneer er een dieptebuffer wordt geleverd, waardoor uw hologrammen worden aangepast voor verkeerd dicteren in zowel de positie als de afdrukstand.
  • HoloLens-headsets hebben een aantal verschillende methoden. HoloLens 1 selecteert automatisch een focuspunt wanneer er een dieptebuffer wordt opgegeven, waardoor de stabiliteit van hologrammen wordt geoptimaliseerd op het vlak dat de meeste inhoud doorkruist. HoloLens 2 zal inhoud stabiliseren met behulp van Depth LSR (zie Opmerkingen).

Het configuratiedialoogvenster van MRTK probeert dieptebufferinstellingen in te stellen voor zowel XR SDK als verouderde WSA, maar het is goed om deze tabbladen te controleren en de instellingen in Unity te controleren.

Knipvlakken gebruiken

Het weergeven van inhoud die te dicht bij de gebruiker ligt, kan oncomfortabel zijn in mixed reality. U kunt de knipvlakken in de buurt en ver aanpassen op het cameraonderdeel.

  1. Selecteer de hoofdcamera in het deelvenster Hiërarchie
  2. Zoek in het deelvenster Inspector het cameraonderdeel Clipping Planes en wijzig het tekstvak Near van 0.3 in 0,85. Inhoud die nog dichter wordt weergegeven, kan leiden tot ongemak van gebruikers en moet worden vermeden volgens de richtlijnen voor de weergaveafstand.

De camera recent maken

Als u een zitschaalervaring bouwt, kunt u recenter de wereld van Unity op de huidige hoofdpositie van de gebruiker aanroepen door de XR aan te roepen. Methode InputTracking.Recenter in verouderde XR of de methode XRInputSubsystem.TryRecenter in XR SDK.

Teleportatie

Deze functie is doorgaans gereserveerd voor VR-ervaringen:

MRTK biedt een in-box teleportsysteem dat automatisch werkt met gearticuleerde handen en controllers.

Modi voor opnieuw projecteren

Zowel HoloLens- als insluitende headsets projecteren elk frame dat uw app weergeeft om aan te passen aan eventuele onjuiste interpretatie van de werkelijke hoofdpositie van de gebruiker wanneer fotonen worden verzonden.

Standaard:

  • VR immersive headsets zorgen voor positionele herprojectie als de app een dieptebuffer biedt voor een bepaald frame. Met insluitende headsets worden uw hologrammen ook aangepast voor verkeerd dicteren in zowel de positie als de stand. Als er geen dieptebuffer wordt opgegeven, corrigeert het systeem alleen onjuiste interpretaties in de afdrukstand.
  • Holographic headsets zoals HoloLens 2 zorgen voor positionele reprojectie, ongeacht of de app de dieptebuffer levert of niet. Positionele reprojectie is mogelijk zonder dieptebuffers op HoloLens, omdat rendering vaak wordt geparseerd met een stabiele achtergrond die wordt geleverd door de echte wereld.

MRTK heeft momenteel geen helpers voor de herprojectiemodus. Zie een van de andere tabbladen voor meer informatie.

Volgend controlepunt voor ontwikkeling

Als u het Unity-ontwikkeltraject volgt dat we hebben opgesteld, bevindt u zich midden in het verkennen van de bouwstenen van de MRTK-kern. Vanaf hier kunt u doorgaan naar de volgende bouwsteen:

Of ga naar de mogelijkheden en API's van het Mixed Reality-platform:

U kunt altijd op elk gewenst moment teruggaan naar de Unity-ontwikkelingscontrolepunten .

Zie ook