Partager via


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, selon les 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 sur le **Niveau de qualité très faible.

Paramètres d’éclairage

À l’instar des 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 Lighting 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’éclairage derendu> de fenêtre >en temps réel éclairage global.

Il existe un autre paramètre d’éclairage, Baked Global Illumination. Ce paramètre peut fournir des résultats performants et visuellement frappants sur les casques immersifs, mais n’est pas applicable au développement HoloLens. Baked Global Illumination est calculé uniquement pour les GameObjects statiques, qui ne sont pas trouvés 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 .

Remarque

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 à passe 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 du temps processeur et GPU. Le rendu d’instance à passe 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 Les paramètres OpenXR (accédez à Modifier>les paramètres> du projetGestion du> plug-in XROpenXR).
  2. Sélectionnez Single Pass Instanced dans le menu déroulant Mode de rendu .

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

Remarque

Un problème courant avec le rendu d’instance à passe unique se produit si les développeurs ont déjà des nuanceurs personnalisés existants qui n’ont pas été écrits pour l’instanciation. Après avoir activé cette fonctionnalité, les développeurs peuvent remarquer que certains GameObjects ne s’affichent 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.

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 mieux optimiser la stabilité des hologrammes spécifiquement pour votre scène pour toute image donnée rendue par votre application.

Pour activer cette fonctionnalité dans votre projet Unity

  1. Ouvrez Les paramètres OpenXR (accédez à Modifier>les paramètres> du projetGestion du> plug-in XROpenXR).
  2. Sélectionnez Profondeur 16 bits dans le menu déroulant Mode d’envoi 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 est accompagnée 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é des hologrammes, 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 la 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 restituent pas la profondeur, bien que cela dépende des nuanceurs et d’autres facteurs.

Si vous utilisez le nuanceur Mixed Reality Toolkit Standard, 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 éditeur Inspector
  2. Sélectionnez le bouton Corriger maintenant dans l’avertissement de partage de mémoire tampon de profondeur. Cette opération peut également être effectuée manuellement en définissant le mode de rendu sur Personnalisé ; puis définissez Mode sur Transparent , puis définissez l’écriture de profondeursur Activé

Importante

Les développeurs doivent se méfier des Z-fighting lors de la modification de ces valeurs, ainsi que des paramètres de plan proche/lointain de l’appareil photo. Z-Fighting se produit lorsque deux gameobjects tentent d’effectuer un rendu sur le même pixel et en raison des limitations de fidélité de la mémoire tampon de profondeur (c’est-à-dire la profondeur z), Unity ne peut pas discerner quel objet se trouve devant l’autre. Les développeurs remarqueront un scintillement entre deux objets de jeu quand ils se battent pour la même valeur de profondeur z. 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 sa 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 vers 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. Cela peut être modifié en sélectionnant l’appareil photo principal dans votre scène et sous Inspecteur, modifiez les valeurs Near & Far Clipping Plane pour réduire leur plage (par exemple, de 1000m à 100m ou une autre valeur x, etc.)

Importante

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 d’interface utilisateur Unity et d’autres effets nécessaires au gabarit ne fonctionneront pas, sauf si le format de profondeur 24 bits est sélectionné, ce qui crée 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 d’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 de réduire le temps d’itération du développement.

  1. Tirez parti de la génération incrémentielle en générant votre projet dans le même répertoire à chaque fois, en réutilisant les fichiers prédéfinis là-bas
  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 de paramètres de Windows 10
    • Sélectionnez Gérer les paramètres sous Paramètres de protection contre les virus & 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 génération pour IL2CPP .

Remarque

En outre, il peut être utile de configurer un serveur de cache, en particulier pour les projets Unity avec une grande quantité de ressources (à l’exception des fichiers de script) ou des scènes/ressources qui changent constamment. Lors de l’ouverture d’un projet, Unity stocke les ressources éligibles dans un format de cache interne sur l’ordinateur du développeur. Les éléments doivent être réimporté et donc traités à nouveau lorsqu’ils sont modifiés. Ce processus peut être effectué une seule fois et enregistré dans un serveur de cache et, par conséquent, partagé avec d’autres développeurs pour gagner du temps, au lieu que chaque développeur traite la réimportation des nouvelles modifications localement.

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 activer/désactiver l’écran de démarrage holographique :

  1. Accédez à la page Modifier>les paramètres> duprojet lecteur
  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 basculement de l’option Afficher l’écran de démarrage Unity active ou désactive l’écran de démarrage unity. Si vous n’avez pas de licence Unity Pro, l’écran de démarrage unity s’affiche toujours.
    • Si une image holographique de démarrage 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 uniquement disponible pour les développeurs disposant d’une licence Unity Pro.
Afficher l’écran de démarrage Unity Image de démarrage holographique Comportement
Activé Aucun 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é Personnalisé 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é Aucun Afficher le noir transparent (rien) jusqu’à ce que l’application soit chargée.
Désactivé Personnalisé 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 sur l’écran de démarrage d’Unity .

Suivi de la perte

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, on dit qu’il a perdu le suivi. Dans ces cas, les fonctionnalités dépendantes des systèmes de coordonnées verrouillés dans le monde entier, comme 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 consiste à arrêter le rendu des hologrammes, à suspendre la boucle de jeu et à 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 suivi de la perte. Pour les applications qui dépendent du suivi pour toute leur expérience, il suffit de laisser Unity gérer cela entièrement jusqu’à ce que le suivi soit récupéré. Les développeurs peuvent fournir une image personnalisée à afficher lors du suivi de la perte.

Pour personnaliser le suivi de l’image perdue :

  1. Accédez à la page Modifier>les paramètres> duprojet lecteur
  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 suspension 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 peuvent avoir besoin de continuer à traiter sans interruption pendant la perte du suivi. Vous pouvez refuser la perte de comportement de suivi par défaut, mais vous êtes responsable du masquage/désactivation des objets, qui ne s’affichent pas 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 à verrouillage corporel, centré autour de la caméra main.

Pour désactiver le comportement de pause automatique :

  1. Accédez à la page Modifier>les paramètres> duprojet Lecteur
  2. Sélectionnez l’onglet Windows Store et ouvrez la section Image de démarrage .
  3. Modifiez les cases à cocher Windows Holographic > On Tracking Loss Pause et 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 d’être 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>les paramètres> duprojet lecteur
  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