Partager via


Point de focus dans Unity

Espace de noms : UnityEngine.XR.WSA
Type : HolographicSettings

Utilisez le point de focus pour fournir à HoloLens un indicateur sur la façon de stabiliser le mieux les hologrammes actuellement affichés.

Si vous souhaitez définir le point de focus dans Unity, il doit être défini sur chaque image à l’aide de HolographicSettings.SetFocusPointForFrame(). Lorsque le point de focus n’est pas défini pour un cadre, le plan de stabilisation par défaut est utilisé.

Remarque

Par défaut, les nouveaux projets Unity ont l’option « Activer le partage de mémoire tampon de profondeur » définie. Avec cette option, une application Unity s’exécutant sur un casque de bureau immersif ou holoLens exécutant la mise à jour de Windows 10 avril 2018 (RS4) ou une version ultérieure envoie votre mémoire tampon de profondeur à Windows pour optimiser la stabilité de l’hologramme automatiquement, sans que votre application spécifie un point de focus :

  • Sur un casque de bureau immersif, cela active la reprojection basée sur la profondeur par pixel.
  • Sur un HoloLens exécutant la mise à jour d’avril 2018 windows 2018 ou ultérieure, il analyse la mémoire tampon de profondeur pour choisir automatiquement un plan de stabilisation optimal.

L’une ou l’autre approche doit fournir une meilleure qualité d’image sans travail explicite par votre application pour sélectionner un point de focus pour chaque image. Notez que si vous fournissez manuellement un point de focus, qui remplace le comportement automatique décrit ci-dessus et réduit généralement la stabilité de l’hologramme. En règle générale, vous devez spécifier uniquement un point de focus manuel lorsque votre application s’exécute sur un HoloLens qui n’a pas encore été mis à jour vers la mise à jour d’avril 2018 de Windows 10.

Exemple

Il existe de nombreuses façons de définir le point de focus, comme suggéré par les surcharges disponibles sur la fonction statique SetFocusPointForFrame . Présenté ci-dessous est un exemple simple pour définir le plan de focus sur l’objet fourni pour chaque image :

public GameObject focusedObject;
void Update()
{
    // Normally the normal is best set to be the opposite of the main camera's
    // forward vector.
    // If the content is actually all on a plane (like text), set the normal to
    // the normal of the plane and ensure the user does not pass through the
    // plane.
    var normal = -Camera.main.transform.forward;     
    var position = focusedObject.transform.position;
    UnityEngine.XR.WSA.HolographicSettings.SetFocusPointForFrame(position, normal);
}

Remarque

Le code simple ci-dessus peut réduire la stabilité de l’hologramme si l’objet ciblé se termine derrière l’utilisateur. Nous vous recommandons généralement de définir activer le partage de mémoire tampon de profondeur au lieu de spécifier manuellement un point de focus.

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 fonctionnalités et LES API de plateforme de réalité mixte. À partir d’ici, vous pouvez passer au sujet suivant :

Ou accéder directement au déploiement de votre application sur un appareil ou un émulateur :

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

Voir aussi