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 Appareil photo Unity gère automatiquement le rendu astérisque et suit le mouvement et la 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 vs 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 skybox-like, 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 affiche. Définissez l’arrière-plan de l’appareil photo comme transparent (dans HoloLens, le noir est transparent) au lieu d’une texture Skybox :
    1. Sélectionnez la caméra principale 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 modifiez les valeurs RVBA (0, 0, 0, 0)
      1. Si vous définissez cette valeur à partir du code, vous pouvez utiliser unity’s 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’affichage monté en tête de votre appareil. Il sera plus facile de mettre en place votre application si vous imaginez la position de départ de l’utilisateur en tant que (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 l’appareil photo principal.

Le choix central que vous devez faire est de savoir si vous développez des casques immersifs HoloLens ou VR. Une fois que vous avez cela, 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 un 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 à partir de MRTK pour Unity et de définir l’échelle cible sur world :

Fenêtre paramètres MRTK

MRTK doit gérer la position du playspace et de l’appareil photo automatiquement, mais il est bon de double vérifier :

Espace de jeu MRTK

  1. Dans le panneau Hiérarchie, développez MixedRealityPlayspace GameObject et recherchez l’objet enfant Main Camera
  2. Dans le panneau Inspecteur , recherchez le composant Transformer et modifiez la positionen (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, de l’orientation uniquement et des applications basées sur un scale-up par le biais d’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, d’explorer un étage entier d’un bâtiment et au-delà.

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

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

Notes

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 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 paramètres MRTK

MRTK doit gérer la position du playspace et de l’appareil photo automatiquement, mais il est bon de double vérifier :

Espace de jeu MRTK

  1. Dans le panneau Hiérarchie, développez MixedRealityPlayspace GameObject et recherchez l’objet enfant Main Camera
  2. Dans le panneau Inspecteur , recherchez le composant Transformer et modifiez la positionen (X: 0, Y: 0, Z: 0)

Expériences assises

Utilisez la classe MixedRealityPlayspace de MRTK pour Unity et définissez l’échelle ciblesur assise :

Fenêtre paramètres MRTK

MRTK doit gérer la position du playspace et de l’appareil photo automatiquement, mais il est bon de double vérifier :

Espace de jeu MRTK

  1. Dans le panneau Hiérarchie, développez MixedRealityPlayspace GameObject et recherchez l’objet enfant Main Camera
  2. Dans le panneau Inspecteur , recherchez le composant Transformer et modifiez la positionen (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 XR ou sdk 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 skybox pour VR.

Utilisation de plusieurs caméras

Lorsqu’il existe plusieurs composants de caméra dans la scène, Unity sait quelle caméra utiliser pour le rendu astérisique 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 des têtes 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 trame donne à 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 soin de la reprojection positionnelle lorsqu’une mémoire tampon de profondeur est fournie, en ajustez vos hologrammes pour la mauvaise prédiction à la fois en position et en 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 tente de définir des paramètres de mémoire tampon de profondeur pour le KIT DE développement logiciel (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 la caméra principale dans le panneau Hiérarchie
  2. Dans le panneau Inspecteur, recherchez les plans de découpage du composant Caméra et modifiez la zone de texte Proche de 0,3 à 0,85. Le contenu rendu encore plus proche peut conduire à l’inconfort de l’utilisateur et doit être évité par les instructions de distance de rendu.

Recenter l’appareil photo

Si vous créez une expérience à l’échelle assise, vous pouvez récenter l’origine mondiale de Unity à la position de tête 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 Kit de développement logiciel (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 in-box qui fonctionne automatiquement entre les mains et les contrôleurs articulés.

Modes de reprojection

HoloLens et casques immersifs reprojetent chaque image que votre application affiche 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 s’occupent de la reprojection positionnelle si l’application fournit une mémoire tampon de profondeur pour un frame donné. Les casques immersifs ajustent également vos hologrammes pour la mauvaise prédiction à la fois dans la position et l’orientation. Si aucune mémoire tampon de profondeur n’est 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émoires tampons 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 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 au milieu de l’exploration des blocs de construction principaux 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