Se familiariser avec les paramètres du HDRP pour améliorer les performances

Apprenez à exploiter les paramètres du pipeline de rendu haute définition (HDRP) pour optimiser les performances et obtenir des graphismes puissants en une seule fois.
Avec la sortie de la version 10 du HD RP pour Unity 2020 LTS et au-delà, l'ensemble du HDRP a continué à donner la priorité à son interface conviviale, à ses fonctionnalités flexibles, à sa stabilité et à ses performances globales. Mais pour configurer le HDRP de manière optimale, il est essentiel de comprendre tous les paramètres principaux, leur fonctionnement et leur utilité. C'est pourquoi nous examinons le fonctionnement du HDRP du point de vue des captures du CPU/GPU Profiler, de la vue Render Pipeline Debug et du cadre de shaders du HDRP.
Du débogage graphique au profilage et à l'optimisation, ce blog propose des conseils pour vous aider à personnaliser le HDRP pour votre projet à l'aide de l'API Custom Pass ou d'une autre partie locale de l'ensemble.
Avant de commencer à analyser les cadres, il est important de connaître les caractéristiques du HDRP. Nous vous recommandons de regarder notre présentation Unite Now, Achieving high-fidelity graphics for games with HDRP, le webinaire Ray tracing with Unity's High Definition Render Pipeline, et la présentation Volumetric Clouds, Lens Flare, and Light Anchor, qui sont tous d'excellents guides sur le HDRP.
Les utilisateurs qui passent du Built-in Render Pipeline au HDRP constatent souvent que la migration nécessite un certain temps d'adaptation. En effet :
- Le HDRP dispose d'un cadre de rendu unifié et basé sur la physique, ce qui signifie que ses attributs utilisent des unités du monde réel : La valeur d'exposition est utilisée pour la sensibilité à la lumière de l'appareil photo, tandis que la candela est utilisée pour l'intensité de la lumière. Notre conférence Unite Nowtalk révèle comment penser de manière physique pour obtenir des résultats cohérents lors de l'éclairage d'une scène.
- Il existe de nombreux paramètres que vous pouvez contrôler dans un projet HDRP, et ces paramètres existent à de nombreux endroits. Cela s'explique en partie par le fait que le PRDH offre davantage de fonctionnalités intégrées, ainsi que des capacités de personnalisation plus poussées permettant aux artistes et aux ingénieurs d'affiner et d'optimiser leur travail.
Pour nous familiariser avec les capacités du HDRP, nous commencerons par examiner ses paramètres globaux.
Paramètres globaux
Pour le pipeline de rendu intégré, les paramètres graphiques couvrent la plupart des paramètres graphiques par projet. Il existe également des paramètres de lecteur, qui contiennent des paramètres graphiques généraux dans le contexte d'une plate-forme cible particulière, telle que Windows, Linux, Mac ou Xbox.

Les projets HDRP utilisent de la même manière les paramètres Graphiques et Lecteur, avec l'ajout de trois autres ensembles de paramètres qui permettent d'accéder aux configurations avancées par défaut du pipeline de rendu.
- Dans les paramètres graphiques, par exemple, les paramètres SRP (Scriptable Render Pipeline) font référence à une ressource HD Render Pipeline par défaut. Cette ressource HD Render Pipeline Asset contient des paramètres qui peuvent être remplacés à chaque niveau de qualité.
- L'onglet HDRP Default Settings (Paramètres par défaut du HDRP) permet de configurer :
- Paramètres par défaut du cadre, avec des propriétés par défaut qui peuvent être modifiées pour chaque caméra (y compris les caméras utilisées pour les réflexions planaires ou les sondes de réflexion). Vous pouvez ici décider si les caméras rendent les objets transparents par défaut.
- Composants de volume par défaut, qui contiennent des propriétés pouvant être remplacées pour chaque "position de la caméra dans la scène". Par exemple, vous pouvez définir des intensités d'effet de post-traitement par défaut, qui peuvent être modifiées et devenir "fortes à l'extérieur et faibles à l'intérieur" en utilisant des volumes spécifiques pour vos scènes.
- La propriété Actifs du profil de diffusion par défaut, qui peut être remplacée par un composant de remplacement du profil de diffusion dans la section Composants de volume de l'onglet Paramètres par défaut du HDRP. Cette fonction peut être remplacée par la fonction "position de la caméra dans la scène". Actuellement, il existe également une "couche de remplacement redondante" pour le système de profil de diffusion, mais comme nous cherchons constamment à améliorer l'interface utilisateur dans le PRDH, une solution à ce problème est déjà en cours.
- D'autres propriétés, qui sont des "paramètres globaux purs", ne peuvent pas être remplacées.
- Enfin, certains paramètres de bas niveau, moins susceptibles de nécessiter une configuration, sont spécifiés dans le paquet HDRP Config. Ces paramètres sont également des "paramètres globaux purs". Leur modification nécessite une recompilation de l'assemblage C# et du cadre de shaders HDRP. C'est pourquoi ils sont placés à un endroit différent.
Niveaux de qualité
Avec le pipeline de rendu intégré, vous pouvez définir un certain nombre de niveaux de qualité dans l'onglet Paramètres de qualité. Pour chaque niveau de qualité, certains paramètres graphiques, tels que l'utilisation de textures anisotropes, peuvent être spécifiés afin de réduire l'utilisation des ressources matérielles sur les plates-formes bas de gamme.
Pour les projets HDRP en particulier, il est possible de sélectionner pour chaque niveau de qualité une option de remplacement HD Render Pipeline Asset. Il offre davantage de possibilités de configuration que le pipeline de rendu intégré, puisque l'actif du pipeline de rendu HD stocke plusieurs paramètres, tels que le nombre maximum de lumières directionnelles, ponctuelles et de zone à l'écran, la taille de la LUT d'étalonnage des couleurs et la taille de l'atlas des témoins de lumière, entre autres.
Certaines propriétés de l'onglet Paramètres de qualité d'un projet Built-in Render Pipeline ne s'appliquent qu'à ce dernier. Dans un projet HDRP, ces paramètres peuvent disparaître de leur emplacement d'origine et réapparaître ailleurs en tant que "paramètres de remplacement".
Dans un projet de pipeline de rendu intégré, par exemple, l'onglet Paramètres de qualité contrôle la propriété Résolution des ombres. Dans un projet HDRP, cependant, la section Éclairage > Ombres d'une ressource HD Render Pipeline contrôle la résolution des cartes d'ombres.


Paramètres de la caméra et du cadre
Pour effectuer le rendu de votre scène dans le HDRP, vous devez ajouter des caméras comme dans le pipeline de rendu intégré. Le HDRP utilise également un composant HD Additional Camera Data (attaché au même objet de jeu) pour stocker des paramètres supplémentaires par caméra.
En effet, le PRDH offre beaucoup plus de paramètres de personnalisation par caméra. Il existe plusieurs paramètres physiques de la caméra, et si vous cochez la propriété Paramètres de cadre personnalisés d'une caméra, vous pouvez décider de la manière dont la caméra dessine le cadre par le biais du système Paramètres de cadre .
Le système de réglage des images est une pile de propriétés de l'appareil photo qui sont remplacées par d'autres. Vous pouvez spécifier des valeurs par défaut pour les paramètres du cadre dans l'onglet HDRP Default Settings. De plus, chaque caméra peut remplacer les paramètres par défaut du cadre.
Les panneaux Caméra de lafenêtre Débogage du pipeline de rendu permettent de visualiser la pile de remplacement des paramètres du cadre.
Utilisation du panneau de l'appareil photo
L'exemple suivant montre comment fonctionne le panneau Caméra de la fenêtre Débogage du pipeline de rendu :
Il existe une caméra appelée Main Camerain (caméra principale) sur la scène. La caméra principale ne dessine que des objets statiques. L'onglet HDRP Default Settings permet de dessiner des vecteurs de mouvement, tandis que l'option Frame Settings override de Main Camera désactive cette fonction afin d'améliorer les performances globales.
La pile de remplacement des vecteurs de mouvement affiche l'état des paramètres OverriddenFrame à gauche des paramètres DefaultFrame. Voir figure 4, surlignage A :

En outre, la fenêtre de débogage du pipeline de rendu affiche l'état des paramètres SanitizedFrame à gauche des paramètres OverriddenFrame. L'assainissement permet de garantir la cohérence des paramètres du cadre prioritaire. Dans le même exemple, les options Opaque Object Motion et Transparent Object Motion n'ont pas été explicitement désactivées dans l'option Frame Settings de la caméra principale. Mais comme le vecteur de mouvement est désactivé, ces fonctions dépendantes sont également désactivées par le système d'assainissement, comme le montre la figure 4, surbrillance B.
Système de volume
Comme nous l'avons expliqué dans notre conférence Unite Nowtalk, le HDRP soutient un système de volume. À l'instar de la pile de post-traitement du pipeline de rendu intégré, le système HDRP Volume contrôle le post-traitement. Plus encore, il détermine la manière dont le ciel est rendu, la force de la lumière indirecte et certains paramètres d'ombre, entre autres.
En termes simples, le système de volume du PRDH est un cadre abstrait qui peut être utilisé pour modifier les paramètres de rendu lorsque la caméra se déplace sur la scène. Il existe une valeur par défaut codée en dur pour chaque propriété de volume. Pour voir ces valeurs, utilisez le panneau Volume dans la fenêtre Render Pipeline Debug. Voir la colonne la plus à droite de la figure 5, où l'intensité par défaut de la distorsion de l'objectif est de 0.

Ces propriétés par défaut codées en dur peuvent être remplacées par des substitutions de propriétés dans la section Composants de volume de l'onglet Paramètres par défaut du HDRP. Notez que ces propriétés peuvent également être remplacées par les volumes de la scène.
À l'inverse, la caméra capte un mélange de valeurs de propriété provenant des volumes de la scène. S'il n'y en a pas, il reprend les valeurs des propriétés de l'onglet Paramètres par défaut du HDRP. Dans le cas contraire, il reprend les valeurs par défaut codées en dur.
Comme le montre la figure 5, le panneau Volume de la fenêtre de débogage du pipeline de rendu permet de visualiser la pile de remplacement de la propriété Volume en cours. Cette fonction est particulièrement efficace lors du débogage, car elle affiche les propriétés du volume en cours d'utilisation.
Maillages et surfaces
Tout comme dans le pipeline de rendu intégré, les géométries à rendre sont généralement spécifiées par des rendus de maillages ou des rendus de maillages enrobés dans la scène. Les données spécifiques au HDRP sont principalement stockées dans les matériaux afinqu 'ils puissent utiliser les rendus ou les graphes de shaders appropriés.
Illumination
Comme dans le pipeline de rendu intégré, les projets HDRP ont des lumières avec un stockage de données spécifique au HDRP pour chaque lumière. Les composants HD Additional Light Data sont attachés aux composants normaux de la lumière.
Considérez qu'il existe de nombreux paramètres d'éclairage qui proviennent d'autres endroits que les objets de jeu avec des composants de lumière. Voici quelques exemples :
- L'éclairage indirect est déterminé par les groupes de sondes lumineuses, les sondes de réflexion (avec les données de réflexion supplémentaires HD jointes), les sondes de réflexion planaires et les paramètres d'éclairage. Il peut également être réglé par le composant Volume du contrôleur d'éclairage indirect .
- Le système de volume détermine l'éclairage du ciel.
- Le système de volume contrôle également les effets liés à l'espace de l'écran. Ces effets agissent comme une source d'éclairage ou d'ombrage : Réflexion dans l'espace-écran, Réfraction dans l'espace-écran, Illumination globale dans l'espace-écran, Occlusion ambiante dans l'espace-écran et Ombre de contact.
- La diffusion sous la surface simule également un "éclairage de surface à surface". La plupart des propriétés de diffusion sous la surface sont spécifiées par les profils de diffusion, qui sont à leur tour déterminés par les matériaux. Entre-temps, vous pouvez utiliser le système de volume pour sélectionner l'annulation du profil de diffusion.

Maintenant que nous avons fait le tour de l'UX du PRDH, intéressons-nous à des propriétés graphiques moins familières pour votre prochain projet de PRDH. La figure 7 illustre une approche possible, en commençant par les paramètres généraux en haut et les paramètres prioritaires en bas. Comme vous pouvez le constater, le champ d'application s'élargit au fur et à mesure que l'on va de haut en bas.

Les paramètres graphiques du HDRP doivent s'adapter aux éléments suivants :
- Le niveau de qualité du programme, tel que la plateforme sur laquelle le programme est exécuté
- La caméra active actuelle
- Emplacement de la caméra dans la scène
- Les matériaux des géométries rendues
- Les lumières affectant les géométries rendues
Il convient de noter que les paramètres du HDRP sont particulièrement adaptés aux dimensions des paramètres.
Conflits entre les dimensions du cadre
Il existe souvent des conflits entre les dimensions des paramètres suivants :
- Le niveau de qualité et la caméra active actuelle peuvent essayer de contrôler le même paramètre graphique. Par exemple, si vous souhaitez réduire le nombre d'échantillonnages de la diffusion sous la surface sur les appareils bas de gamme, vous pouvez également réduire le nombre d'échantillonnages de la diffusion sous la surface pour les caméras qui effectuent le rendu vers les textures de rendu pour les effets d'incrustation dans l'image.
- Le niveau de qualité et l'emplacement de la caméra dans la scène peuvent essayer de contrôler le même paramètre graphique. Ainsi, si vous souhaitez réduire la qualité des effets de post-traitement sur des plates-formes dotées d'une puissance GPU limitée, vous devez être conscient du fait que certains sites Scene utilisent déjà beaucoup de temps GPU pour des éclairages complexes. Vous devez donc vous efforcer d'abaisser la qualité des effets de post-traitement à ces endroits afin de récupérer un peu de budget de performance.
- Le niveau de qualité et les lumières de la scène peuvent essayer de contrôler le même paramètre graphique. Par conséquent, si vous souhaitez réduire la résolution de la carte des ombres sur des plates-formes disposant d'une mémoire vive limitée, vous devez garder à l'esprit qu'il y a probablement de nombreux petits projecteurs d'ombre dans la scène qui nécessitent des cartes des ombres avec une résolution inférieure.
Pour résoudre ces conflits, le HD Render Pipeline Asset prend en charge les réglages par niveaux. Au lieu d'indiquer une seule valeur pour un bien, plusieurs valeurs peuvent être attribuées à un certain nombre de niveaux - faible, moyen, élevé et, dans certains cas, un niveau ultra.



Pour les caméras qui produisent l'effet d'image dans l'image, vous pouvez spécifier un niveau pour les volumes qui contrôlent les effets de post-traitement et pour les projecteurs qui demandent les cartes d'ombres :



Le HDRP peut alors rechercher le bien à partir du niveau approprié dans l'actif HD Render Pipeline actif. C'est ce bien qui sera utilisé.
Bien entendu, il est également possible que les caméras, les volumes et les lumières ignorent le système de paramétrage à plusieurs niveaux et déterminent directement les comportements souhaités.
Les dimensions des trois cadres se chevauchent
Prenons un autre exemple où les dimensions des paramètres se chevauchent.
Imaginons qu'il y ait dans la scène des rendus de maillage utilisant un graphique de shaders avec des animations de vertex complexes. Il pourrait être trop coûteux d'effectuer des animations de sommets sur des appareils bas de gamme. Il n'y a pas non plus de rendu de caméra supplémentaire à prendre en compte pour la texture de rendu lorsqu'il s'agit d'effets d'image dans l'image, de sorte que vous n'avez pas besoin de cette caméra supplémentaire pour effectuer le rendu avec une animation de vertex.
Dans ce cas, les dimensions de trois paramètres se chevauchent :
- Matériaux des géométries de la scène
- Niveau de qualité du programme
- Caméras sur la scène
Pour répondre à ce type de situation, un mot-clé spécial " Qualité des matériaux" est disponible dans Shader Graph :

Contrairement aux mots-clés ordinaires du Shader Graph qui sont contrôlés par les utilisateurs pour chaque matériau, il s'agit d'un mot-clé global, défini en interne par le HDRP. Dans l'actif HD Render Pipeline, vous pouvez contrôler les niveaux de qualité des matériaux disponibles, ainsi que le niveau de qualité des matériaux par défaut.

Pour chaque caméra, vous pouvez remplacer les paramètres de cadre par défaut et spécifier un niveau de qualité matérielle, en remplaçant l'actif de pipeline de rendu HD actif.

Le HDRP dispose d'une approche systématique pour traiter les demandes des artistes. Après tout, le maintien d'une excellente interface utilisateur pour les artistes est la clé de l'inspiration d'un contenu de haute qualité.
Lorsque l'on démarre un projet HDRP avec une configuration simple, le projet peut coûter une quantité surprenante de performances. En effet, le PRDH détermine par défaut un grand nombre des fonctionnalités utilisées. La meilleure pratique consiste à contrôler les paramètres du HDRP afin de ne payer que pour ce que vous avez l'intention d'utiliser.
Pour représenter une charge de travail de rendu minimaliste, créons une scène de 225 cubes utilisant le matériau par défaut, éclairés par un spot, une lumière ponctuelle, une lumière directionnelle et un éclairage ambiant.

Quelles sont les performances de ce dispositif simple ? Construisons un lecteur autonome avec une résolution de 2880x1620, sur le backend de script IL2CPP, avec VSync désactivé. En exécutant le lecteur sur une machine Windows équipée d'un GPU Intel i9-10980HK et d'un GPU NVIDIA RTX2080, le Profiler montre que le temps d'image moyen est de 4,6 ms.
Si l'on examine la vue de la ligne de temps du Profiler, on constate que le marqueur DXGI.WaitOnSwapChainer passe beaucoup de temps à fonctionner, ce qui indique qu'il est lié au GPU.

La capture d'un GPU à l'aide de Nsight Graphics montre que ce phénomène est dû au fait que plusieurs fonctions du HDRP sont activées par défaut :
- De nombreux effets visuels supplémentaires sont actifs, tels que SSAO, Subsurface Scattering, Dynamic Exposure, Motion Blur et Bloom.
- Plusieurs passes de pyramide des couleurs et une passe d'Upsample Low-res Transparent sont en action, toutes permettant un rendu transparent complexe.

Comme vous pouvez le voir ici, vous pouvez contrôler la ressource HDRP, remplacer les paramètres du cadre de la caméra et ajouter des dérogations au volume, de sorte que seules les fonctions minimales soient activées. En d'autres termes :
- Les décalcomanies, la transparence basse résolution, la transparence de la face arrière, le prépassement de la profondeur, le postpassement de la profondeur, le SSAO, le SSR, les ombres de contact, la volumétrie, la diffusion sous la surface et les distorsions sont tous désactivés dans l'actif du PRDH.
- Les options Réfraction, Post-traitement, Après post-traitement, Transmission, Sonde de réflexion, Sonde de réflexion planaire et Passe-partout de la grande tuile sont toutes désactivées dans les paramètres d'image de la caméra.
- Le volume remplace le mode d'exposition par l'exposition fixe.
Après la modification, le résultat a une durée moyenne d'image de seulement 2,45 ms, ce qui est significatif par rapport au rendu de la même scène dans un pipeline de rendu intégré.
En pratique, il n'est pas nécessaire de désactiver autant de fonctions dans un jeu réel pour la caméra principale, bien que certaines caméras supplémentaires nécessitent ce traitement.
Si vous êtes intéressé par des caméras encore moins chères, le pack HDRP UI Camera Stacking de la version 2021.2 vous permet d'empiler plusieurs caméras de rendu UI pour une fraction seulement du coût d'une caméra standard.
Cet exemple met en évidence non seulement l'étendue du contrôle que vous avez sur les caractéristiques de performance du HDRP, mais aussi l'importance d'ajuster la configuration de votre projet HDRP.

Cela commence par la lumière : Le guide définitif du pipeline de rendu haute définition
Le HDRP dans Unity 2020 LTS vous apporte des outils améliorés pour créer des éclairages évocateurs et haut de gamme dans vos jeux. Ce nouveau guide approfondi vous apprendra à exploiter la puissance de l'éclairage physique dans le HDRP.
