Paramètres recommandés pour Unity

Unity fournit un ensemble d’options par défaut qui sont généralement le cas moyen pour toutes les plateformes. Toutefois, Unity propose certains comportements spécifiques à la réalité mixte qui peuvent être activés via les paramètres du projet.

Configuration performante de l’environnement

Paramètres de faible qualité

Il est important de modifier les paramètres de qualité Unity sur Very Low afin que votre application s’exécute et fonctionne correctement à la fréquence d’images appropriée, en particulier pour le développement HoloLens. Pour le développement sur des casques immersifs, en fonction des spécifications du bureau alimentant l’expérience VR, on peut toujours atteindre la fréquence d’images sans les paramètres de qualité les plus bas.

Dans Unity 2019 LTS+, vous pouvez définir le niveau de qualité du projet en accédant à Modifier> laqualitédes paramètres> du projet et en définissant la valeur Par défaut en cliquant sur la flèche vers le bas vers le niveau **Qualité très faible.

Paramètres d’éclairage

Comme pour les paramètres de scène qualité, il est important de définir des paramètres d’éclairage optimaux pour votre application Mixed Reality. Dans Unity, le paramètre Éclairage qui aura généralement le plus grand impact sur les performances sur votre scène est Realtime Global Illumination. Vous pouvez désactiver l’éclairage global en accédant àParamètres d’éclairagederendu> de fenêtre>en> temps réel.

Il y a un autre paramètre d’éclairage, Baked Global Illumination. Ce paramètre peut fournir des résultats performants et visuellement frappants sur des casques immersifs, mais n’est pas applicable pour le développement HoloLens. Baked Global Illumination est calculé uniquement pour les GameObjects statiques, qui ne se trouvent pas dans les scènes HoloLens en raison de la nature d’un environnement inconnu et changeant.

Pour plus d’informations, consultez Global Illumination from Unity .

Notes

Realtime Global Illumination étant défini par scène , les développeurs doivent enregistrer cette propriété pour chaque scène Unity de leur projet.

Chemin de rendu d’instanciation à passage unique

Dans Mixed Reality applications, la scène est rendue deux fois : une fois pour chaque œil. Par rapport au développement 3D traditionnel, cela double effectivement la quantité de travail qui doit être calculée. Il est important de sélectionner le chemin de rendu le plus efficace dans Unity pour économiser sur le temps processeur et GPU. Le rendu d’instance à passage unique optimise le pipeline de rendu Unity pour les applications de réalité mixte ; nous vous recommandons d’activer ce paramètre par défaut pour chaque projet.

Pour activer cette fonctionnalité dans votre projet Unity

  1. Ouvrez OpenXR Settings (accédez à Edit>Project Settings>XR Plugin Management>OpenXR).
  2. Sélectionnez Single Pass Instanced dans le menu déroulant Render Mode.

Pour plus d’informations sur cette approche de rendu, lisez les articles suivants de Unity.

Remarque

Un problème courant avec le rendu d’instance à passage unique se produit si les développeurs ont déjà des nuanceurs personnalisés existants non écrits pour l’instanciation. Une fois cette fonctionnalité activée, les développeurs peuvent remarquer que certains GameObjects ne sont rendus que dans un seul œil. Cela est dû au fait que les nuanceurs personnalisés associés n’ont pas les propriétés appropriées pour l’instanciation.

Consultez Single Pass Stereo Rendering for HoloLens sur Unity pour savoir comment résoudre ce problème.

Activer le partage de mémoire tampon de profondeur

Pour obtenir une meilleure stabilité de l’hologramme à partir de la perception de l’utilisateur, il est recommandé d’activer la propriété Partage de mémoire tampon de profondeur dans Unity. En activant cette option, Unity partage la carte de profondeur produite par votre application avec la plateforme Windows Mixed Reality. La plateforme peut ensuite optimiser la stabilité de l’hologramme spécifiquement pour votre scène pour n’importe quelle image donnée rendue par votre application.

Pour activer cette fonctionnalité dans votre projet Unity

  1. Ouvrez OpenXR Settings (accédez à Edit>Project Settings>XR Plugin Management>OpenXR).
  2. Sélectionnez Profondeur 16 bits dans le menu déroulant Mode de soumission de profondeur .

Le paramètre de mémoire tampon de profondeur 16 bits est particulièrement recommandé pour le développement HoloLens. La sélection de 16 bits par rapport à 24 bits réduit considérablement les besoins en bande passante, car moins de données devront être déplacées/traitées. Cela dit, l’optimisation s’accompagne d’un certain coût. Veillez à comprendre les implications mentionnées dans les zones Importantes ci-dessous.

Pour que la plateforme Windows Mixed Reality optimise la stabilité de l’hologramme, elle s’appuie sur la mémoire tampon de profondeur pour être précise et correspondre à tous les hologrammes rendus à l’écran. Par conséquent, avec le partage de mémoire tampon de profondeur activé, il est important lors du rendu de la couleur de restituer également la profondeur. Dans Unity, la plupart des matériaux Opaque ou TransparentCutout affichent la profondeur par défaut, mais les objets transparents et texte ne rendent pas la profondeur, bien que cela dépend des nuanceurs et d’autres facteurs.

Si vous utilisez le nuanceur standard Mixed Reality Toolkit, pour afficher la profondeur des objets transparents :

  1. Sélectionnez le matériau transparent qui utilise le nuanceur MRTK Standard et ouvrez la fenêtre de l’éditeur Inspecteur
  2. Sélectionnez le bouton Corriger maintenant dans l’avertissement de partage de mémoire tampon de profondeur. Cela peut également être effectué manuellement en définissant le mode de rendu sur Personnalisé ; puis définissez Mode sur Transparent et enfin définissez l’écriture de profondeursur Activé

Important

Les développeurs doivent se méfier de la lutte contre les Z lors de la modification de ces valeurs ainsi que des paramètres de plan proche/lointain de la caméra. Z-Fighting se produit lorsque deux gameobjects essaient de s’afficher sur le même pixel et en raison de limitations de la fidélité de la mémoire tampon de profondeur (c’est-à-dire z depth), Unity ne peut pas discerner quel objet se trouve devant l’autre. Les développeurs notent un scintillement entre deux objets de jeu alors qu’ils se battent pour la même valeur z-depth. Cela peut être résolu en basculant vers le format de profondeur 24 bits, car il y aura une plus grande plage de valeurs pour chaque objet à calculer pour leur profondeur z à partir de l’appareil photo.

Toutefois, il est recommandé, en particulier pour le développement d’HoloLens, de modifier les plans proches et lointains de l’appareil photo à une plage plus petite et de conserver le format de profondeur 16 bits. La profondeur z est mappée de manière non linéaire à la plage de valeurs le long des plans de caméra proche et lointain. Vous pouvez le modifier en sélectionnant la caméra principale dans votre scène et, sous Inspecteur, modifiez les valeurs Near & Far Clipping Plane pour réduire leur plage (c’est-à-dire de 1000m à 100m ou d’une autre valeur x, etc.)

Important

Unity ne crée pas de mémoire tampon de gabarit lors de l’utilisation du format de profondeur 16 bits. Par conséquent, certains effets de l’interface utilisateur Unity et d’autres effets de gabarit requis ne fonctionnent que si le format de profondeur 24 bits est sélectionné, ce qui créera une mémoire tampon de gabarit 8 bits.

Génération pour IL2CPP

Unity a déconseillé la prise en charge du back-end de script .NET et recommande donc aux développeurs d’utiliser IL2CPP pour leurs builds visual Studio UWP. Bien que cela apporte différents avantages, la création de votre solution Visual Studio à partir de Unity pour IL2CPP peut être plus lente que l’ancienne méthode .NET. Par conséquent, il est fortement recommandé de suivre les meilleures pratiques pour créer IL2CPP afin d’économiser sur le temps d’itération du développement.

  1. Tirez parti de la génération incrémentielle en créant votre projet dans le même répertoire à chaque fois, en réutilisant les fichiers prédéfinis là
  2. Désactiver les analyses logicielles anti-programme malveillant pour votre projet & dossiers de build
    • Ouvrez la protection contre les virus & les menaces sous votre application paramètres de Windows 10
    • Sélectionnez Gérer les paramètres sous Paramètres de protection contre les virus & les menaces
    • Sélectionnez Ajouter ou supprimer des exclusions sous la section Exclusions
    • Sélectionnez Ajouter une exclusion , puis sélectionnez le dossier contenant le code de votre projet Unity et les sorties de build.
  3. Utiliser un disque SSD pour la génération

Pour plus d’informations, consultez Optimisation des temps de build pour IL2CPP .

Notes

En outre, il peut être avantageux de configurer un serveur de cache, en particulier pour les projets Unity qui comprennent une grande quantité de ressources (à l’exclusion des fichiers de script), et pour les scènes ou ressources qui changent constamment. Lorsque vous ouvrez un projet, Unity stocke les ressources éligibles dans un format de cache interne sur l’ordinateur de développement. Les éléments doivent être réimportés, et donc retraités, après modification. Ce processus peut être effectué une fois puis enregistré dans un serveur de cache. Pour gagner du temps, vous pouvez le partager avec les autres développeurs, plutôt que de demander à chaque développeur de réimporter localement les éléments modifiés.

Propriétés de publication

Écran de démarrage holographique

HoloLens dispose d’un processeur et d’un GPU de classe mobile, ce qui signifie que le chargement des applications peut prendre un peu plus de temps. Pendant le chargement de l’application, les utilisateurs voient simplement le noir et peuvent donc se demander ce qui se passe. Pour les rassurer lors du chargement, vous pouvez ajouter un écran de démarrage holographique.

Pour désactiver l’écran de démarrage holographique :

  1. Accédez à la page Modifier> lelecteurdes paramètres> du projet
  2. Sélectionnez l’onglet Windows Store et ouvrez la section Image de démarrage
  3. Appliquez votre image sous la propriété Windows Holographic > Holographic Splash Image .
    • Le fait de basculer l’option Afficher l’écran de démarrage Unity active ou désactive l’écran de démarrage de marque Unity. Si vous n’avez pas de licence Unity Pro, l’écran de démarrage de marque Unity s’affiche toujours.
    • Si une image de démarrage holographique est appliquée, elle s’affiche toujours si la case Afficher l’écran de démarrage Unity est activée ou désactivée. La spécification d’une image de démarrage holographique personnalisée est disponible uniquement pour les développeurs disposant d’une licence Unity Pro.
Afficher l’écran de démarrage Unity Image de démarrage holographique Comportement
Activé None Affichez l’écran de démarrage Unity par défaut pendant 5 secondes ou jusqu’à ce que l’application soit chargée, selon la durée la plus longue.
Activé Custom Afficher l’écran de démarrage personnalisé pendant 5 secondes ou jusqu’à ce que l’application soit chargée, selon la durée la plus longue.
Désactivé None Affichez un noir transparent (rien) jusqu’à ce que l’application soit chargée.
Désactivé Custom Afficher l’écran de démarrage personnalisé pendant 5 secondes ou jusqu’à ce que l’application soit chargée, selon la durée la plus longue.

Pour plus d’informations, consultez la documentation de l’écran de démarrage d’Unity .

Perte de suivi

Un casque de réalité mixte dépend de la vue de l’environnement qui l’entoure pour construire des systèmes de coordonnées verrouillés dans le monde, qui permettent aux hologrammes de rester en position. Lorsque le casque n’est pas en mesure de se localiser dans le monde, il est dit qu’il a perdu le suivi. Dans ce cas, les fonctionnalités dépendantes des systèmes de coordonnées verrouillés dans le monde, tels que les phases spatiales, les ancres spatiales et le mappage spatial, ne fonctionnent pas.

Si une perte de suivi se produit, le comportement par défaut d’Unity est d’arrêter le rendu des hologrammes, de suspendre la boucle de jeu et d’afficher une notification de suivi perdu qui suit confortablement le regard des utilisateurs. Des notifications personnalisées peuvent également être fournies sous la forme d’une image de perte de suivi. Pour les applications qui dépendent du suivi pour toute leur expérience, il suffit de laisser Unity gérer entièrement cela jusqu’à ce que le suivi soit récupéré. Les développeurs peuvent fournir une image personnalisée à afficher pendant le suivi de la perte.

Pour personnaliser l’image de suivi perdue :

  1. Accédez à la page Modifier> lelecteurdes paramètres> du projet
  2. Sélectionnez l’onglet Windows Store et ouvrez la section Image de démarrage
  3. Appliquez votre image sous la propriété Image de perte de suivi holographique > Windows .

Désactiver la pause automatique

Certaines applications peuvent ne pas nécessiter de suivi (par exemple, les applications d’orientation uniquement telles que les visionneuses vidéo à 360 degrés) ou doivent continuer à traiter sans interruption tant que le suivi est perdu. Vous pouvez refuser la perte par défaut du comportement de suivi, mais vous êtes responsable de masquer/désactiver tous les objets, ce qui ne serait pas rendu correctement dans un scénario de suivi-perte. Dans la plupart des cas, le seul contenu qu’il est recommandé d’afficher dans ce cas est le contenu verrouillé par le corps, centré sur l’main caméra.

Pour désactiver le comportement de pause automatique :

  1. Accédez à la page Modifier> lelecteurdes paramètres> du projet
  2. Sélectionnez l’onglet Windows Store et ouvrez la section Image de démarrage
  3. Modifiez la case à cocher Windows Holographic > On Tracking Loss Pause and Show Image .

Suivi des événements de perte

Pour définir un comportement personnalisé en cas de perte de suivi, gérez les événements de perte de suivi globaux.

Fonctionnalités

Pour qu’une application tire parti de certaines fonctionnalités, elle doit déclarer les fonctionnalités appropriées dans son manifeste. Les déclarations de manifeste peuvent être effectuées dans Unity afin qu’elles soient incluses dans chaque future exportation de projet.

Les fonctionnalités peuvent être activées pour une application Mixed Reality en :

  1. Accédez à la page Modifier> lelecteurdes paramètres> du projet
  2. Sélectionnez l’onglet Windows Store, ouvrez la section Paramètres de publication et recherchez la liste Fonctionnalités

Les fonctionnalités applicables pour activer les API couramment utilisées pour les applications holographiques sont les suivantes :

Fonctionnalité API nécessitant une fonctionnalité
SpatialPerception SurfaceObserver
Webcam PhotoCapture et VideoCapture
PicturesLibrary / VideosLibrary PhotoCapture ou VideoCapture, respectivement (lors du stockage du contenu capturé)
Microphone VideoCapture (lors de la capture audio), DictationRecognizer, GrammarRecognizer et KeywordRecognizer
InternetClient DictationRecognizer (et pour utiliser Unity Profiler)

Voir aussi