Point de focus dans UnityFocus point in Unity

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

Utilisez le point de focus pour fournir à HoloLens une indication sur la manière de mieux stabiliser les hologrammes actuellement affichés.Use the focus point to provide HoloLens with a hint about how to best stabilize the holograms currently being displayed.

Si vous souhaitez définir le point de focus dans Unity, vous devez définir chaque frame à l’aide de HolographicSettings. SetFocusPointForFrame ().If you want to set the Focus Point in Unity, it needs to be set every frame using HolographicSettings.SetFocusPointForFrame(). Lorsque le point de focus n’est pas défini pour un cadre, le plan de stabilisation par défaut est utilisé.When the Focus Point isn't set for a frame, the default stabilization plane is used.

Notes

Par défaut, l’option « Activer le partage de tampon de profondeur » est définie pour les nouveaux projets Unity.By default, new Unity projects have the "Enable Depth Buffer Sharing" option set. Avec cette option, une application Unity s’exécutant sur un casque de bureau immersif ou sur un HoloLens exécutant la mise à jour 2018 d’avril de Windows 10 (RS4) ou une version ultérieure envoie votre tampon de profondeur à Windows pour optimiser la stabilité de l’hologramme automatiquement, sans que votre application spécifie un point de focalisation :With this option, a Unity app running on either an immersive desktop headset or a HoloLens running the Windows 10 April 2018 Update (RS4) or later will submit your depth buffer to Windows to optimize hologram stability automatically, without your app specifying a focus point:

  • Sur un casque d’un bureau immersif, cela permet une reprojection basée sur la profondeur par pixel.On an immersive desktop headset, this will enable per-pixel depth-based reprojection.
  • Sur un HoloLens exécutant la mise à jour 2018 de Windows 10 avril ou une version ultérieure, le tampon de profondeur est analysé afin de choisir un plan de stabilisation optimal automatiquement.On a HoloLens running the Windows 10 April 2018 Update or later, this will analyze the depth buffer to pick an optimal stabilization plane automatically.

L’une ou l’autre approche devrait offrir une meilleure qualité d’image sans travail explicite de votre application pour sélectionner un point de focus pour chaque frame.Either approach should provide even better image quality without explicit work by your app to select a focus point for each frame. Notez que si vous fournissez un point de focalisation manuellement, cela remplacera le comportement automatique décrit ci-dessus et réduira généralement la stabilité de l’hologramme.Note that if you do provide a focus point manually, that will override the automatic behavior described above, and will usually reduce hologram stability. En règle générale, vous devez uniquement spécifier 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 2018 d’avril de Windows 10.Generally, you should only specify a manual focus point when your app is running on a HoloLens that has not yet been updated to the Windows 10 April 2018 Update.

ExempleExample

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 .There are many ways to set the Focus Point, as suggested by the overloads available on the SetFocusPointForFrame static function. Vous trouverez ci-dessous un exemple simple pour définir le plan de focus sur l’objet fourni pour chaque frame :Presented below is a simple example to set the focus plane to the provided object for each frame:

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);
}

Notes

Le code simple ci-dessus peut réduire la stabilité des hologrammes si l’objet ayant le focus se termine derrière l’utilisateur.The simple code above may reduce hologram stability if the focused object ends up behind the user. Nous recommandons généralement de définir le partage de mémoire tampon de profondeur au lieu de spécifier manuellement un point de focus.We generally recommend setting Enable Depth Buffer Sharing instead of manually specifying a focus point.

Point de contrôle de développement suivantNext Development Checkpoint

Si vous suivez le parcours de développement Unity que nous avons disposé, vous êtes au cœur de l’exploration des fonctionnalités de la plateforme de réalité mixte et des API.If you're following the Unity development journey we've laid out, you're in the midst of exploring the Mixed Reality platform capabilities and APIs. À partir d’ici, vous pouvez passer au sujet suivant :From here, you can continue to the next topic:

Ou accéder directement au déploiement de votre application sur un appareil ou un émulateur :Or jump directly to deploying your app on a device or emulator:

Vous pouvez revenir aux points de contrôle de développement Unity à tout moment.You can always go back to the Unity development checkpoints at any time.

Voir aussiSee also