Camera-instelling in Unity

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

HoloLens versus VR immersive headsets

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

  • Wanneer u een immersive headset gebruikt, geeft u alles weer wat de gebruiker ziet en dus wilt u de skybox waarschijnlijk behouden.
  • Bij het uitvoeren van een holografische headset zoals HoloLens moet de echte wereld echter worden weergegeven achter alles wat de camera weergeeft. Stel de achtergrond van de camera in op transparant (in HoloLens wordt zwart weergegeven als transparant) in plaats van een Skybox-patroon:
    1. Selecteer de hoofdcamera in het deelvenster Hiërarchie
    2. Zoek in het deelvenster Inspector het onderdeel Camera en wijzig de vervolgkeuzelijst Markeringen wissen van Skybox in Effen kleur
    3. Selecteer de achtergrondkleurkiezer en wijzig de RGBA-waarden in (0, 0, 0, 0)
      1. Als u dit instelt vanuit code, kunt u de Color.clear

MRTK verwerkt specifieke camera-instellingen automatisch, 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

Wat voor soort ervaring u ook ontwikkelt, de hoofdcamera is altijd het primaire stereorenderingsonderdeel dat is gekoppeld aan het hoofdscherm van uw apparaat. Het is gemakkelijker om uw app in te delen als u zich de beginpositie van de gebruiker voorstelt als (X: 0, Y: 0, Z: 0). Omdat de hoofdcamera de beweging van het hoofd van de gebruiker volgt, kan de startpositie 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, gaat u verder met de instellingssectie die van toepassing is.

HoloLens-camera instellen

Voor HoloLens-apps moet u ankers gebruiken voor alle objecten die u wilt vergrendelen in de scèneomgeving. We raden u aan om 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 mixedRealityPlayspace-klasse 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 Hoofdcamera
  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 apps met alleen afdrukstanden en apps met zittende schaal omhoog tot apps op ruimteschaal. Op HoloLens kunt u verder gaan en wereldwijde apps bouwen waarmee gebruikers meer dan 5 meter kunnen lopen en een hele verdieping van een gebouw en daarbuiten kunnen verkennen.

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

Ruimteschaal- of staande ervaringen

Notitie

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

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 Hoofdcamera
  2. Zoek in het deelvenster Inspector het onderdeel Transformeren en wijzig de positie in (X: 0, Y: 0, Z: 0)

Zittende ervaringen

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

Venster MRTK-instellingen

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

MRTK-playspace

  1. Vouw in het deelvenster Hierarchy het GameObject MixedRealityPlayspace 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 verouderde 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 hoofdtracering aangestuurd door een TrackedPoseDriver-script dat aan de camera is gekoppeld.

Dieptebuffers delen

Als u de dieptebuffer van uw app deelt met Windows elk frame, krijgt uw app een van twee extra stabiliteitsverbeteringen in hologrammen, op basis van het type headset waarvoor u rendert:

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

In het configuratiedialoogvenster van MRTK wordt geprobeerd 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 te dicht bij de gebruiker kan ongemakkelijk zijn in mixed reality. U kunt de clipvlakken dichtbij en ver in het onderdeel Camera aanpassen.

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

De camera recent maken

Als u een zittende ervaring bouwt, kunt u de oorsprong van Unity op de huidige koppositie van de gebruiker recenter maken 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 op gelede handen en controllers.

Modi voor opnieuw projecteren

Zowel HoloLens als immersive headsets projecteren elk frame dat door uw app wordt weergegeven, opnieuw om aan te passen op een onjuiste beoordeling van de werkelijke hoofdpositie van de gebruiker wanneer fotonen worden verzonden.

Standaard:

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

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

Controlepunt volgende ontwikkeling

Als u het Unity-ontwikkelingstraject volgt dat we hebben uitgetekend, bent u bezig met het verkennen van de basisbouwstenen van MRTK. Vanaf hier kunt u doorgaan naar de volgende bouwsteen:

Of ga naar Mixed Reality platformmogelijkheden en API's:

U kunt altijd op elk gewenst moment teruggaan naar de controlepunten voor Unity-ontwikkeling .

Zie ook