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 offre des comportements spécifiques à la réalité mixte qui peuvent être activés via les paramètres du projet.
Configuration de l’environnement performante
Paramètres de faible qualité
Il est important de modifier les paramètres de qualité Unity en très bas afin que votre application s’exécute et fonctionne correctement au niveau de 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 de l’expérience de bureau qui alimente l’expérience VR, il est possible d’obtenir une 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>le projet Paramètres> Quality et en définissant la valeur par défaut en cliquant sur la flèche vers le bas sur le niveau **Très faible qualité.
Paramètres d’éclairage
Comme pour les paramètres de scène de qualité, il est important de définir des paramètres d’éclairage optimaux pour votre application De réalité mixte. Dans Unity, le paramètre d’éclairage qui aura généralement le plus d’impact sur les performances sur votre scène est Realtime Global Illumination. Vous pouvez désactiver l’éclairage global en accédant à Window>Rendering>Lighting Paramètres> Realtime Global Illumination.
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 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 est défini par scène et les développeurs doivent donc enregistrer cette propriété pour chaque scène Unity dans leur projet.
Chemin d’accès de rendu d’instanciation unique
Dans les applications de réalité mixte, la scène est rendue deux fois : une fois pour chaque œil. Par rapport au développement 3D traditionnel, cela double efficacement 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 avec instance 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
- Ouvrez OpenXR Settings (accédez à Edit>Project Settings>XR Plugin Management>OpenXR).
- Sélectionnez Single Pass Instanced dans le menu déroulant Render Mode.
Pour plus d’informations sur cette approche de rendu, consultez 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.
Activer le partage de mémoire tampon de profondeur
Pour améliorer la stabilité de l’hologramme à partir de la perception de l’utilisateur, il est recommandé d’activer la propriété de partage de mémoire tampon de profondeur dans Unity. En activant cette option, Unity partagera 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
- Ouvrez OpenXR Settings (accédez à Edit>Project Settings>XR Plugin Management>OpenXR).
- 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 est fournie avec certains coûts. 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 affichés à l’écran. Ainsi, avec le partage de mémoire tampon de profondeur activé, il est important lors du rendu de la couleur pour afficher également la profondeur. Dans Unity, la plupart des matériaux Opaque ou TransparentCutout affichent la profondeur par défaut, mais les objets transparents et de texte ne restituent pas la profondeur, bien que cela dépend des nuanceurs et d’autres facteurs.
Si vous utilisez le nuanceur Mixed Reality Shared Computer Toolkit Standard, pour afficher la profondeur des objets transparents :
- Sélectionnez le matériau transparent qui utilise le nuanceur MRTK Standard et ouvrez la fenêtre de l’éditeur Inspector
- 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 rendu sur Personnalisé, puis en définissant le mode sur Transparent et enfin en définissant l’écriturede profondeur sur Activé
Important
Les développeurs doivent se méfier de Z-combat 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 essaient de s’afficher sur le même pixel et en raison de limitations de fidélité de la mémoire tampon de profondeur (c’est-à-dire de profondeur z), Unity ne peut pas discerner quel objet se trouve devant l’autre. Les développeurs notent un scintillement entre deux objets de jeu, car ils luttent pour la même valeur de profondeur z. Cela peut être résolu en passant au 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 la caméra.
Toutefois, il est recommandé, en particulier pour le développement HoloLens, de modifier les plans proches et éloignés de l’appareil photo à une plage plus petite et de conserver le format de profondeur 16 bits. La profondeur z est non linéairement mappée à la plage de valeurs le long des plans de caméra proche et lointain. Cela peut être modifié en sélectionnant la caméra principale dans votre scène et sous Inspecteur, modifiez les valeurs du plan de découpage proche et lointain pour réduire leur plage (par exemple, de 1000 à 100m ou d’autres valeurs 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 requis par le gabarit ne fonctionnent 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 prend en charge le back-end de script .NET et recommande donc aux développeurs d’utiliser IL2CPP pour leurs builds Visual Studio UWP. Bien que cela offre 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 vivement recommandé de suivre les meilleures pratiques pour créer il2CPP afin de gagner du temps d’itération de développement.
- Tirez parti de la génération incrémentielle en créant votre projet dans le même répertoire à chaque fois, réutilisant les fichiers prédéfini là-bas
- Désactiver les analyses logicielles anti-programme malveillant pour vos dossiers de projet et de build
- Ouvrir la protection contre les virus et les menaces sous votre application paramètres Windows 10
- Sélectionnez Gérer Paramètres sous paramètres de protection contre les menaces et virus
- Sélectionnez Ajouter ou supprimer des exclusions dans la section Exclusions
- Sélectionnez Ajouter une exclusion et sélectionnez le dossier contenant votre code de projet Unity et générez des sorties
- Utiliser un disque SSD pour la génération
Pour plus d’informations, lisez l’optimisation des temps de génération pour IL2CPP .
Remarque
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 les applications peuvent prendre un peu plus de temps pour charger. Pendant le chargement de l’application, les utilisateurs verront simplement noir, et ils 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 :
- Accéder à la page Modifier>project Paramètres Player>
- Sélectionnez l’onglet Windows Store et ouvrez la section Image de démarrage
- Appliquez votre image sous la propriété Windows Holographic Holographic > Splash Image .
- La désactivation de 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 l’écran de démarrage Show Unity case activée box est activé ou désactivé. 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. |
Activé | Personnalisée | Affichez l’écran de démarrage personnalisé pendant 5 secondes ou jusqu’à ce que l’application soit chargée, selon ce qui est plus long. |
Désactivé | Aucun | Afficher le noir transparent (rien) tant que l’application n’est pas chargée. |
Désactivé | Personnalisée | Affichez l’écran de démarrage personnalisé pendant 5 secondes ou jusqu’à ce que l’application soit chargée, selon ce qui est plus long. |
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 autour de lui pour construire des systèmes de coordonnées verrouillés dans le monde, ce qui permet aux hologrammes de rester en position. Lorsque le casque n’est pas en mesure de se localiser dans le monde, le casque est dit avoir perdu le suivi. Dans ce cas, les fonctionnalités dépendantes des systèmes de coordonnées verrouillés au 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 consiste à arrêter le rendu des hologrammes, à suspendre la boucle de jeu et à afficher une notification perdue de suivi qui suit confortablement le regard des utilisateurs. Les 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 est suffisant 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 pendant la perte de suivi.
Pour personnaliser l’image perdue de suivi :
- Accéder à la page Modifier>project Paramètres Player>
- Sélectionnez l’onglet Windows Store et ouvrez la section Image de démarrage
- Appliquez votre image sous la propriété Image de perte de suivi holographique > Windows.
Désactivation de la pause automatique
Certaines applications peuvent ne pas nécessiter de suivi (par exemple, des applications d’orientation uniquement telles que des visionneuses vidéo de 360 degrés) ou doivent continuer à traiter sans interruption pendant que le suivi est perdu. Vous pouvez désactiver la perte par défaut du comportement de suivi, mais vous êtes responsable du masquage/désactivation d’objets, ce qui ne s’affiche pas correctement dans un scénario de perte de suivi. Dans la plupart des cas, le seul contenu recommandé à afficher dans ce cas est le contenu verrouillé par le corps, centré autour de la caméra principale.
Pour désactiver le comportement de pause automatique :
- Accédez à la page Modifier>le projet Paramètres Player>
- Sélectionnez l’onglet Windows Store et ouvrez la section Image de démarrage
- Modifiez la pause de perte de suivi holographique Windows holographique > et affichez l’image case activée box.
Suivi des événements de perte
Pour définir un comportement personnalisé lorsque le suivi est perdu, 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 exportation de projet future.
Les fonctionnalités peuvent être activées pour une application de réalité mixte en :
- Accéder à la page Modifier>project Paramètres Player>
- Sélectionnez l’onglet Windows Store, ouvrez la section Publication Paramètres, puis recherchez la liste des 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) |