Configuration de l’appareil photo dans Unity

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

Casques immersifs HoloLens et VR

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

  • Lorsque vous exécutez sur un casque immersif, vous affichez tout ce que l’utilisateur voit, et vous voudrez donc probablement conserver la skybox.
  • Toutefois, lorsque vous exécutez sur un casque holographique comme HoloLens, le monde réel doit apparaître derrière tout ce que la caméra affiche. Définissez l’arrière-plan de la caméra sur transparent (dans HoloLens, le rendu noir est 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 Effacer les indicateurs 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 ce paramètre à partir du code, vous pouvez utiliser 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 a 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’écran monté sur la tête de votre appareil. Il sera plus facile de disposer votre application si vous imaginez la position de départ de l’utilisateur comme (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 de savoir si vous développez pour des casques immersifs HoloLens ou VR. Une fois que vous avez cela, passez à la section de configuration 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 un espace illimité 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 d’utiliser directement la classe MixedRealityPlayspace de MRTK pour Unity et de définir l’échelle cible sur World :

Fenêtre des paramètres MRTK

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

Espace de jeu 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, depuis les applications d’orientation uniquement et de mise à l’échelle assise jusqu’aux 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 l’expérience de mise à l’échelle que votre application ciblera :

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

Notes

Si vous créez pour HL2, nous vous recommandons de créer une expérience au niveau des yeux, ou d’utiliser La compréhension de la scène pour raisonner l’étage de votre scène.

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

Fenêtre des paramètres MRTK

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

Espace de jeu 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 Assis :

Fenêtre des paramètres MRTK

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

Espace de jeu 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 la caméra

Si vous utilisez MRTK, l’arrière-plan de la caméra est automatiquement configuré et géré. Pour les projets sdk XR ou WSA hérités, nous vous recommandons de définir l’arrière-plan de l’appareil photo sur un noir uni sur HoloLens et de conserver la skybox 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 en fonction de l’étiquette MainCamera dans GameObject. Dans XR hérité, il utilise également cette balise pour synchroniser le suivi de la tête. Dans le SDK XR, le suivi de la tête est piloté par un script TrackedPoseDriver attaché à la caméra.

Partage de mémoires tampons de profondeur

Le partage de la mémoire tampon de profondeur de votre application sur Windows pour chaque image donnera à votre application l’un 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 en cas de mauvaise dépréciation à la fois dans la position et l’orientation.
  • Les casques HoloLens ont plusieurs méthodes différentes. HoloLens 1 sélectionne automatiquement un point de focus lorsqu’une mémoire tampon de profondeur est fournie, ce qui optimise la stabilité de l’hologramme le long du plan qui croise le plus de contenu. HoloLens 2 stabilisera le contenu à l’aide de depth LSR (voir Les remarques).

La boîte de dialogue de configuration de MRTK tente de définir les paramètres de mémoire tampon de profondeur pour le SDK XR et le WSA hérité, mais il est judicieux 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 inconfortable dans la réalité mixte. Vous pouvez ajuster les plans de découpage proches et lointains sur le composant Caméra.

  1. Sélectionnez l’appareil photo principal dans le panneau Hiérarchie
  2. Dans le panneau Inspecteur , recherchez le composant CaméraPlans de découpage et remplacez la zone de texte Près de 0,3 par 0,85. Le contenu rendu encore plus proche peut entraîner une gêne de l’utilisateur et doit être évité conformément aux recommandations de distance de rendu.

Recentrage de la caméra

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

Téléportation

Cette fonctionnalité est généralement réservée aux expériences de réalité virtuelle :

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

Modes de reprojection

HoloLens et les casques immersifs reprojetent chaque image rendue par votre application pour s’adapter à toute mauvaise interprétation de la position réelle de la tête de l’utilisateur lors de l’émission de photons.

Par défaut :

  • Les casques immersifs VR prennent en charge la reprojection positionnelle si l’application fournit une mémoire tampon de profondeur pour un cadre donné. Les casques immersifs ajustent également vos hologrammes en cas de mauvaise dépréciation à la fois dans la position et l’orientation. Si aucune mémoire tampon de profondeur n’est fournie, le système ne corrige que les erreurs d’orientation.
  • Les casques holographiques comme HoloLens 2 s’occupent de la reprojection positionnelle, que l’application fournisse ou non sa mémoire tampon de profondeur. La reprojection positionnelle est possible sans tampons de profondeur sur HoloLens, car le rendu est souvent partiellement alloué 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 de MRTK. À partir de là, vous pouvez passer au module 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