Partager via


Configuration de la caméra dans Unity

Lorsque vous portez un casque de réalité mixte, il devient le centre de votre monde holographique. Le composant Appareil photo Unity gère automatiquement le rendu stéréoscopique et suit votre mouvement et rotation de la tête. Toutefois, pour optimiser entièrement la qualité visuelle et la stabilité de l’hologramme, vous devez définir les paramètres de l’appareil photo décrits ci-dessous.

Casques immersifs HoloLens et VR

Les paramètres par défaut du composant Appareil photo Unity sont destinés aux applications 3D traditionnelles, qui ont besoin d’un arrière-plan de type skybox, car ils n’ont pas de monde réel.

  • Lors de l’exécution sur un casque immersif, vous affichez tout ce que l’utilisateur voit, et vous voudrez probablement conserver la boîte de réception.
  • Toutefois, lors de l’exécution sur un casque holographique comme HoloLens, le monde réel doit apparaître derrière tout ce que l’appareil photo restitue. Définissez l’arrière-plan de l’appareil photo comme transparent (dans HoloLens, le noir s’affiche comme transparent) au lieu d’une texture Skybox :
    1. Sélectionnez l’appareil photo principal dans le panneau Hiérarchie
    2. Dans le panneau Inspecteur, recherchez le composant Caméra et modifiez la liste déroulante Clear Flags de Skybox en Couleur unie
    3. Sélectionnez le sélecteur de couleurs d’arrière-plan et remplacez les valeurs RVBA par (0, 0, 0, 0)
      1. Si vous définissez cette valeur à partir du code, vous pouvez utiliser les fichiers Unity Color.clear

MRTK gère automatiquement les paramètres de caméra spécifiques, en fonction de la configuration dans le profil système de la caméra.

Espace de noms : Microsoft.MixedReality.Toolkit.CameraSystem
Type : MixedRealityCameraSystem

Pour vérifier l’opacité de la caméra, le système MixedRealityCamera possède une IsOpaque propriété.

CoreServices.CameraSystem.IsOpaque;

Installation de l'appareil photo

Quel que soit le type d’expérience que vous développez, la caméra principale est toujours le composant de rendu stéréo principal attaché à l’affichage monté sur la tête de votre appareil. Il sera plus facile de disposer votre application si vous imaginez que la position de départ de l’utilisateur est (X : 0, Y : 0, Z : 0). Étant donné que la caméra principale suit le mouvement de la tête de l’utilisateur, la position de départ de l’utilisateur peut être définie en définissant la position de départ de la caméra principale.

Le choix central que vous devez faire est que vous développiez pour HoloLens ou des casques immersifs VR. Une fois que vous l’avez obtenu, passez à la section d’installation qui s’applique.

Configuration de la caméra HoloLens

Pour les applications HoloLens, vous devez utiliser des ancres pour tous les objets que vous souhaitez verrouiller dans l’environnement de scène. Nous vous recommandons d’utiliser l’espace non lié pour optimiser la stabilité et créer des ancres dans plusieurs salles.

Suivez ce tutoriel pas à pas pour ajouter et configurer automatiquement Mixed Reality Toolkit dans votre projet Unity. Il est également possible de travailler directement avec la classe MixedRealityPlayspace de MRTK pour Unity et de définir l’échelle cible sur World :

Fenêtre paramètres MRTK

MRTK doit gérer la position de l’espace de jeu et de la caméra automatiquement, mais il est bon de vérifier :

Playspace MRTK

  1. Dans le panneau Hierarchy, développez MixedRealityPlayspace GameObject et recherchez l’objet enfant Main Camera
  2. Dans le panneau Inspecteur , recherchez le composant Transformer et remplacez la position par (X : 0, Y : 0, Z : 0)

Configuration de la caméra VR

Windows Mixed Reality prend en charge les applications sur un large éventail d’échelles d’expérience, à partir d’applications d’orientation uniquement et de mise à l’échelle assises via des applications à l’échelle de la salle. Sur HoloLens, vous pouvez aller plus loin et créer des applications à l’échelle mondiale qui permettent aux utilisateurs de marcher au-delà de 5 mètres, en explorant un étage entier d’un bâtiment et au-delà.

La première étape de la création d’une expérience de réalité mixte dans Unity consiste à déterminer la mise à l’échelle de votre application cible :

Expériences à l’échelle de la salle ou debout

Remarque

Si vous créez pour HL2, nous vous recommandons de créer une expérience de niveau œil ou d’utiliser Scene Understanding pour raisonner le plancher de votre scène.

Utilisez la classe MixedRealityPlayspace de MRTK pour Unity et définissez l’échelle cible sur Room ou Standing :

Fenêtre paramètres MRTK

MRTK doit gérer la position de l’espace de jeu et de la caméra automatiquement, mais il est bon de vérifier :

Playspace MRTK

  1. Dans le panneau Hierarchy, développez MixedRealityPlayspace GameObject et recherchez l’objet enfant Main Camera
  2. Dans le panneau Inspecteur , recherchez le composant Transformer et remplacez la position par (X : 0, Y : 0, Z : 0)

Expériences assises

Utilisez la classe MixedRealityPlayspace de MRTK pour Unity et définissez l’échelle cible sur Assise :

Fenêtre paramètres MRTK

MRTK doit gérer la position de l’espace de jeu et de la caméra automatiquement, mais il est bon de vérifier :

Playspace MRTK

  1. Dans le panneau Hierarchy, développez MixedRealityPlayspace GameObject et recherchez l’objet enfant Main Camera
  2. Dans le panneau Inspecteur , recherchez le composant Transformer et remplacez la position par (X : 0, Y : 0, Z : 0)

Configuration de l’arrière-plan de l’appareil photo

Si vous utilisez MRTK, l’arrière-plan de l’appareil photo est automatiquement configuré et géré. Pour les projets WSA ou sdk XR hérités, nous vous recommandons de définir l’arrière-plan de l’appareil photo sur un noir solide sur HoloLens et de conserver la zone de ciel pour VR.

Utilisation de plusieurs caméras

Lorsqu’il existe plusieurs composants caméra dans la scène, Unity sait quelle caméra utiliser pour le rendu stéréoscopique basé sur lequel GameObject a la balise MainCamera. Dans XR hérité, il utilise également cette balise pour synchroniser le suivi de la tête. Dans le Kit de développement logiciel (SDK) XR, le suivi principal est piloté par un script TrackedPoseDriver attaché à la caméra.

Partage des mémoires tampons de profondeur

Le partage de la mémoire tampon de profondeur de votre application sur Windows chaque image donnera à votre application l’une des deux améliorations de la stabilité de l’hologramme, en fonction du type de casque pour lequel vous effectuez le rendu :

  • Les casques immersifs VR peuvent prendre en charge la reprojection positionnelle lorsqu’une mémoire tampon de profondeur est fournie, en ajustant vos hologrammes pour la mauvaise prédiction à la fois dans la position et l’orientation.
  • Les casques HoloLens ont quelques méthodes différentes. HoloLens 1 sélectionne automatiquement un point de focus lorsqu’une mémoire tampon de profondeur est fournie, en optimisant la stabilité de l’hologramme le long du plan qui croise le plus de contenu. HoloLens 2 stabilisera le contenu à l’aide du LSR de profondeur (voir remarques).

La boîte de dialogue de configuration de MRTK tentera de définir des paramètres de mémoire tampon de profondeur pour le SDK XR et le WSA hérité, mais il est préférable de vérifier ces onglets et de vérifier les paramètres dans Unity.

Utilisation de plans de découpage

Le rendu du contenu trop proche de l’utilisateur peut être mal à l’aise dans la réalité mixte. Vous pouvez ajuster les plans de clip proche et lointain sur le composant Caméra.

  1. Sélectionnez l’appareil photo principal dans le panneau Hiérarchie
  2. Dans le panneau Inspecteur, recherchez les plans de découpage du composant Caméra et remplacez la zone de texte Proche de la version 0.3 par 0.85. Le contenu rendu encore plus proche peut entraîner l’inconfort de l’utilisateur et doit être évité conformément aux instructions de distance de rendu.

Recentrage de la caméra

Si vous créez une expérience à l’échelle assise, vous pouvez récentiser l’origine mondiale d’Unity à la position actuelle de l’utilisateur en appelant le XR. Méthode InputTracking.Recenter dans le XR hérité ou la méthode XRInputSubsystem.TryRecenter dans le SDK XR.

Téléportation

Cette fonctionnalité est généralement réservée aux expériences VR :

MRTK fournit un système de téléporteur intégré qui fonctionne automatiquement entre les mains et les contrôleurs articulés.

Modes de reprojection

HoloLens et casques immersifs reprojetent chaque image rendue par votre application pour s’ajuster à toute mauvaise prédiction de la position réelle de la tête de l’utilisateur lorsque des photons sont émis.

Par défaut :

  • Les casques immersifs VR prennent soin de la reprojection positionnelle si l’application fournit une mémoire tampon de profondeur pour une trame donnée. Les casques immersifs ajustent également vos hologrammes pour la mauvaise prédiction à la fois dans la position et l’orientation. Si une mémoire tampon de profondeur n’est pas fournie, le système corrige uniquement les erreurs d’orientation.
  • Les casques holographiques tels que HoloLens 2 s’occupent de la reprojection positionnelle si l’application fournit sa mémoire tampon de profondeur ou non. La reprojection positionnelle est possible sans mémoire tampon de profondeur sur HoloLens, car le rendu est souvent éparse avec un arrière-plan stable fourni par le monde réel.

MRTK n’a actuellement pas d’assistance pour le mode de reprojection. Pour plus d’informations, consultez l’un des autres onglets.

Point de contrôle de développement suivant

Si vous suivez le parcours de développement Unity que nous avons mis en place, vous êtes en train d’explorer les blocs de construction principaux MRTK. À partir d’ici, vous pouvez passer au composant suivant :

Ou accéder aux API et fonctionnalités de la plateforme Mixed Reality :

Vous pouvez revenir aux points de contrôle de développement Unity à tout moment.

Voir aussi