Cet article est le premier d'une série qui explique comment les développeurs et les artistes techniques peuvent configurer et utiliser le High Definition Render Pipeline (HDRP) dans Unity pour obtenir un réalisme graphique haut de gamme. Le HDRP représente un saut technologique dans le rendu en temps réel d'Unity, ce qui vous permet de travailler avec la lumière telle qu'elle se comporte dans le monde réel.
Ne manquez pas de lire les autres articles de notre série sur l'éclairage haut de gamme :
HDRP étend le système d'éclairage existant d'Unity avec une variété de fonctionnalités pour rendre le rendu de votre scène plus proche de l'éclairage du monde réel :
- Unités de lumière physique et exposition: Le HDRP utilise des intensités et des unités d'éclairage réelles. Faites correspondre les spécifications de sources lumineuses connues et réglez les expositions à l'aide d'appareils photo physiques.
- Éclairage avancé: Contrôlez l'emplacement de la lumière grâce à des options de forme supplémentaires pour les spots et les éclairages de zone. Utilisez les couches de lumière pour limiter l'influence des lumières sur des maillages spécifiques. Appliquez des effets en temps réel tels que l'illumination globale de l'espace écran (SSGI) et la réfraction de l'espace écran.
- Paysages aériens: Créez des ciels d'apparence naturelle grâce à des techniques variées. Utilisez le système de ciel physique pour simuler l'atmosphère planétaire de manière procédurale, et ajoutez des nuages volumétriques, des couches de nuages ou appliquez des HDRI pour simuler des ciels statiques.
- Brouillard: Ajoutez de la profondeur et de la dimension à vos scènes grâce au brouillard. Activez la volumétrie pour intégrer des effets de brouillard à vos objets de premier plan et créer des faisceaux de lumière dignes du cinéma. Vous pouvez contrôler la lumière et les ombres volumétriques par lumière et utiliser le composant Brouillard volumétrique local pour un contrôle précis de la densité du brouillard à l'aide d'une texture de masque 3D.
- Système de volume: Le HDRP est doté d'un système intuitif qui vous permet de bloquer différents effets et paramètres d'éclairage en fonction de l'emplacement de la caméra ou de la priorité. Superposez et mélangez les volumes pour permettre un contrôle de niveau expert sur chaque mètre carré de votre scène.
- Post-traitement Le post-traitement du HDRP est contrôlé par une série de dérogations de volume qui s'ajoutent au système de volume existant. Ajoutez l'anticrénelage, la cartographie des tons, l'étalonnage des couleurs, la floraison, la profondeur de champ et une multitude d'autres effets.
- Ombres avancées: Le HDRP offre un contrôle artistique et performant sur les ombres. Modifiez leur teinte, leur filtrage, leur résolution, leur budget mémoire et leur mode de mise à jour. Accentuez les petits détails et ajoutez de la profondeur avec les ombres de contact et les micro ombres.
- Réflexions avancées: Les surfaces réfléchissantes peuvent faire l'objet de plusieurs techniques de rendu. Les sondes de réflexion offrent une approche traditionnelle de la cartographie de la réflexion, les sondes de réflexion planaires offrant des options plus avancées pour les surfaces planes.Screen Space Reflection (SSR) ajoute une technique en temps réel utilisant le tampon de profondeur.
Unity 2021 LTS et plus inclut le paquet HDRP lors de l'installation pour s'assurer que vous utilisez toujours le dernier code graphique vérifié. Lorsque vous installez la version la plus récente d'Unity, la version correspondante du HDRP est également installée.
Version du paquet HDRP Version Unity compatible 13.x 2022.1 12.x 2021 LTS (utilisée dans ce guide)
Le fait de lier les paquets graphiques du HDRP à des versions spécifiques d'Unity permet de maintenir la compatibilité. Toutefois, vous pouvez également passer à une version personnalisée du PRDH en modifiant le fichier manifeste.
Configuration requise
HRDP est actuellement compatible avec les plateformes cibles suivantes :
- Windows et Windows Store, avec DirectX 11 ou DirectX 12 et Shader Model 5.0
- Consoles modernes (au minimum Sony PlayStation 4 ou Microsoft Xbox One)
- MacOS (version minimale 10.13) utilisant les graphiques Metal
- Plateformes Linux et Windows avec Vulkan
Le HDRP ne fonctionne que sur les plates-formes de console et de bureau qui prennent en charge les nuanceurs de calcul. Il ne prend pas en charge les dispositifs OpenGL ou OpenGL ES. Reportez-vous à la documentation pour plus de détails sur les exigences et la compatibilité.
Consultez la rubrique Réalité virtuelle dans le pipeline de rendu haute définition pour en savoir plus sur les plateformes et appareils VR pris en charge.
Pour mettre en place un projet HDRP, commencez par le Unity Hub:
Créez d'abord un nouveau projet et sélectionnez le modèle vide 3D (HDRP) ou la scène échantillon 3D (HDRP ) dans la liste des modèles disponibles (appelés High Definition RP dans les anciennes versions du Hub). Pour importer le paquet HDRP avec quelques exemples de préréglages, choisissez le dernier modèle.
Si vous créez votre projet avec le 3D Coretemplate, Unity utilise l'ancien Built-in Render Pipeline. Vous pouvez migrer le projet vers le HDRP manuellement à partir du gestionnaire de paquets(Fenêtre > Rendering > HDRP Wizard).
Trouvez le paquet High Definition RP dans le registre Unity ou utilisez le champ de recherche pour le localiser et l'installer.
En cas de conflit avec les paramètres actuels du projet, l'assistant HDRP Render Pipeline s'affiche pour vous aider à résoudre le problème (également disponible sous Fenêtre > Render Pipeline > Assistant HDRP). Notez que dans Unity 2021.2/HDRP 12, il se trouve sous Fenêtre > Rendu > Assistant HDRP.
Allez dans Vérification de la configuration et cliquez sur Réparer tout, ou cliquez sur Réparer pour chaque problème afin de les réparer individuellement. Cette liste de contrôle peut vous aider à migrer à partir d'un projet SRP (Render Pipeline non scriptable).
Lorsque l'assistant se termine, une invite vous demande de créer un nouveau pipeline. Il s'agit d'un fichier sur disque qui contiendra vos paramètres spécifiques de pipeline. Sélectionnez Créer un pour ajouter une nouvelle ressource de pipeline de rendu et y affecter le fichier.
Une fois que le HDRP fonctionne correctement, vérifiez que toutes les cases à cocher de la vérification de la configuration sont vertes. Vous remarquerez peut-être que l'environnement de fond change de couleur.
N'oubliez pas que l'installation manuelle à partir d'un projet vierge n'importe pas automatiquement la scène d'échantillonnage 3D (HDRP). Utilisez le modèle 3D Sample Scene si vous souhaitez accéder aux exemples de ressources présentés dans ce guide.
Le 3D Sample Scene du Unity Hub est un projet modèle qui vous aide à démarrer avec le HDRP et l'éclairage basé sur la physique. Ce projet léger de moins de 100 mégaoctets offre un bon exemple de travail de HDRP que vous pouvez charger rapidement à titre de référence.
Le petit environnement multi-pièces présente trois zones distinctes avec des configurations d'éclairage différentes. La lumière directionnelle représentant le soleil a une intensité réelle de 100 000 lux, et chaque site corrige l'exposition de l'appareil photo pour l'adapter à l'environnement lumineux.
Utilisez les touches WASD et la souris pour conduire le contrôleur FPS dans le niveau.
- La salle 1 est une plate-forme ronde éclairée par la lumière du soleil. Les décalcomanies ajoutent de la saleté et des flaques d'eau au sol en béton.
- La salle 2 ajoute des puits de lumière volumétriques provenant du puits de lumière, ainsi que des matériaux avancés pour l'arbre à l'intérieur de la vitrine.
- La salle 3 présente l'éclairage artificiel intérieur et les matériaux émissifs.
Pour en savoir plus, consultez ce billet de blog de l'artiste technique d'Unity Pierre Yves Donzallaz, qui décrit plus en détail la scène d'échantillonnage 3D du HDRP.
Plus d'exemples de contenu du PRDH
D'autres projets pourraient vous être utiles une fois que vous aurez exploré la scène d'échantillonnage 3D du HDRP.
Bien qu'il n'ait pas été conçu à l'origine pour les jeux, le projet projet Auto Showroom montre un véhicule très détaillé avec un éclairage réaliste. Modifiez les lumières de la scène, la peinture de la voiture, les textures et la toile de fond dans cette démo interactive disponible via le Unity Hub.
En attendant, la démo de Démonstration Spaceship présente le graphique des effets visuels, ainsi que d'autres fonctionnalités du HDRP, dans un environnement de science-fiction. Vous pouvez le télécharger depuis le dépôt GitHub d'Unity ou y accéder sur Steam.
Si vous utilisez le HDRP avec la RV, vous apprécierez le Laboratoire de l'alchimiste de la RV. Ce projet présente des effets interactifs dans un petit laboratoire médiéval.
Pour apprendre à créer des contenus cinématographiques ou des films d'animation, installez notre Cinematic Studiotemplate depuis le Unity Hub. Ce modèle illustre la mise en place et l'éclairage des plans d'un court métrage amusant intitulé Mich-L, mêlant le rendu stylisé et le rendu photoréel.
Quelques paramètres essentiels se trouvent sous Paramètres du projet(Édition > Paramètres du projet), notamment Graphiques, Paramètres globaux HDRP et Qualité.
Notez que HDRP Default Settings est maintenant appelé HDRP Global Settings dans Unity 2021.2/HDRP 12 et plus.
Paramètres graphiques
Le paramètre Scriptable Render Pipeline Settings en haut de l'image fait référence à un fichier sur disque qui stocke tous vos paramètres HDRP. Vous pouvez avoir plusieurs actifs de ce type par projet.
Considérez chacun d'entre eux comme un fichier de configuration distinct. Par exemple, vous pouvez les utiliser pour stocker des paramètres spécialisés pour différentes plates-formes cibles (Xbox, PlayStation, etc.), ou ils peuvent également représenter différents niveaux de qualité visuelle que le joueur peut changer au moment de l'exécution.
La scène d'exemple 3D commence avec plusieurs éléments de pipeline dans le dossier Settings : HDRPHighQuality, HDRPLowQuality et HDRPMediumQuality. Il existe également un dossier HDRPDefaultResources contenant un jeu de données DefaultHDRPA.
Les paramètres de qualité vous permettent d'associer l'un de vos éléments du pipeline à un niveau de qualité prédéfini.
Sélectionnez un niveau de qualité en haut de la page pour activer un élément spécifique du pipeline de rendu dans les options de rendu. Vous pouvez personnaliser les valeurs par défaut ou créer des niveaux de qualité supplémentaires, chacun associé à des actifs de pipeline supplémentaires.
Un niveau de qualité représente un ensemble spécifique de caractéristiques visuelles actives dans le pipeline. Par exemple, vous pouvez créer plusieurs niveaux pour les graphiques dans votre application. Au moment de l'exécution, vos joueurs peuvent alors choisir le niveau de qualité actif, en fonction de votre matériel.
Passez à la sous-section Qualité/HDRP pour modifier les paramètres actuels du pipeline. Sinon, passez à la vue Projet pour sélectionner le pipeline et modifier ses paramètres dans l'inspecteur.
Sachez que l'activation d'un plus grand nombre de fonctionnalités dans l'actif Pipeline consommera plus de ressources. D'une manière générale, optimisez votre projet en n'utilisant que ce dont vous avez réellement besoin pour obtenir l'effet escompté. Si vous n'avez pas besoin d'une fonction particulière, vous pouvez la désactiver pour économiser des ressources et améliorer les performances.
Voici quelques fonctions que vous pouvez désactiver si vous n'avez pas besoin de les utiliser :
- Dans l'actif du HDRP: Décalques, transparence basse résolution, arrière-plan transparent/passage en profondeur, SSAO, SSR, ombres de contact, volumétrie, diffusion sous la surface et distorsions.
- Dans les paramètres du cadre de la caméra (caméra principale) utilisée pour les effets intégrés tels que les reflets, ou les caméras supplémentaires utilisées pour les effets personnalisés : Réfraction, post-traitement, après post-traitement, transmission, sonde de réflexion, sonde de réflexion planaire et Big Tile Prepass
Lisez cet article de blog pour vous familiariser avec les fonctionnalités du PRDH pour une meilleure performance.
Paramètres globaux du HDRP
La section Paramètres globaux du HDRP, également connue sous le nom de Paramètres par défaut du HDRP (avant la version 12 du HDRP), détermine la configuration de base de votre projet. Vous pouvez remplacer ces paramètres dans la scène via les composants de volume local ou global, en fonction de la position de la caméra.
Les paramètres globaux sont enregistrés dans leur propre pipeline, défini dans le champ supérieur, où vous pouvez définir les options de rendu et de post-traitement par défaut.
Au fur et à mesure que vous développez votre projet, il se peut que vous ayez besoin de revenir aux paramètres globaux du HDRP pour activer ou désactiver des fonctions spécifiques. Certaines fonctionnalités ne s'afficheront pas si la case à cocher correspondante dans les paramètres globaux n'est pas activée.
Veillez à n'activer que les fonctionnalités dont vous avez besoin, car elles peuvent avoir un impact négatif sur les performances de rendu et l'utilisation de la mémoire. Notez que certains paramètres apparaissent dans les profils de volume, tandis que d'autres caractéristiques se trouvent dans les paramètres du cadre (en fonction de l'utilisation).
Tout en vous familiarisant avec les fonctionnalités du HDRP, utilisez le champ de recherche en haut à droite dans les paramètres du projet. Cela permet d'afficher uniquement les panneaux pertinents dont les termes de recherche sont mis en évidence.
L'activation d'une fonction dans les paramètres globaux du HDRP ne garantit pas qu'elle puisse être rendue par n'importe quelle caméra, à n'importe quel moment. Vous devez vérifier que l'élément Render Pipeline, avec ses niveaux de qualité spécifiés sous Paramètres des projets > Qualité, prend également en charge cette fonctionnalité. Par exemple, pour que les caméras puissent rendre les nuages volumétriques, vous devez les activer sous HDRP Global Settings > Frame Settings > Camera > Lighting et, dans le Render Pipeline Asset actif, sous Lighting > Volumetrics.
Si vous n'êtes pas limité par le processeur, la résolution peut avoir un impact considérable sur les performances. La résolution dynamique réduit la résolution du rendu et adapte le résultat à la résolution de l'écran de sortie. Les filtres qui effectuent cette mise à niveau ont été fortement améliorés dans 2021 LTS, ce qui vous permet d'effectuer un rendu à une résolution de 70 % ou moins avec une perte de qualité minimale.
Dans Unity 2021 LTS, le PRDH offre plusieurs solutions avec certaines des dernières technologies de super échantillonnage :
- NVIDIA DLSS (Deep Learning Super Sampling) pour les GPU qui le prennent en charge
- AMD FSR (FidelityX Super Resolution) sur toutes les plateformes
- TAA Upscale (Anti-crénelage temporel) sur toutes les plateformes
Vous pouvez soit forcer la mise à l'échelle dans l'actif du PRDH, soit coder votre propre logique pour ajuster l'échelle.
Pour mettre en place la résolution dynamique dans votre projet et obtenir des conseils sur le choix de l'algorithme le mieux adapté à vos besoins, consultez cette page de la documentation.
Lorsque vous configurez les paramètres du HDRP dans l'élément Pipeline, vous commencez généralement par le mode d'ombrage de la lumière sous Rendering, où vous pouvez choisir entre Deferred (différé), Forward (avancé) ou Both (les deux). Ils représentent des chemins de rendu que vous pouvez sélectionner, chacun avec une série spécifique d'opérations qui informent sur la façon dont le pipeline rendra et éclairera la géométrie. Voir ci-dessus comment personnaliser votre chemin de rendu.
Pour définir votre chemin de rendu par défaut, accédez à Lit Shader Mode et sélectionnez Forward ou Deferred. Le HDRP est flexible et vous permet de choisir les deux. Cette option vous permet d'utiliser un chemin de rendu pour la plupart des rendus, puis de le remplacer pour chaque caméra. Cependant, elle occupe plus de mémoire GPU, il est donc généralement préférable de choisir soit Forward, soit Deferred.
Pour affecter toutes les caméras par défaut, accédez à HDRP Default Settings (Paramètres par défaut du HDRP ) et recherchez Default Frame Settings (Paramètres de trame par défaut). Votre chemin de rendu peut être appliqué aux caméras, à la réflexion cuite ou personnalisée et à la réflexion en temps réel. Dans le groupe Rendu, définissez le chemin de rendu dans le mode de nuanceur de lumière.
Pour affecter un appareil photo spécifique, vérifiez ses paramètres de cadre personnalisés. Ensuite, dans le groupe Rendering, remplacez et modifiez le chemin de rendu du Lit Shader Mode.
Dans le rendu Forward, la carte graphique divise la géométrie de l'écran en sommets. Ces sommets sont ensuite décomposés en fragments, ou pixels, qui s'affichent à l'écran et créent l'image finale.
Chaque objet est transmis, un par un, à l'API graphique. Le rendu des perspectives s'accompagne d'un coût pour chaque lumière. Plus il y a de lumières dans votre scène, plus le rendu sera long.
Le rendu avant dessine les lumières dans des passes séparées. Si plusieurs lumières frappent le même objet de jeu, cela peut créer un surdébit important et ralentir les choses lorsque de nombreuses lumières et objets sont présents.
Contrairement au rendu Forward traditionnel, le HDRP ajoute de nouvelles capacités, telles que le culling et le rendu de plusieurs lumières ensemble en un seul passage par matériau d'objet. Mais il s'agit toujours d'un processus relativement coûteux. Si les performances sont un problème, il est préférable d'utiliser l'ombrage différé.
Le PRDH peut également tirer parti de l'ombrage différé, où l'éclairage n'est pas calculé pour chaque objet. Au lieu de cela, l'ombrage différé reporte le rendu lourd à un stade ultérieur et utilise deux passes.
Lors de la première passe, ou passe géométrique du tampon G, Unity effectue le rendu des GameObjects. Cette passe récupère plusieurs types de propriétés géométriques et les stocke dans un ensemble de textures (par exemple, les couleurs diffuses et spéculaires, la douceur de la surface, l'occlusion, les normales, etc.)
Dans la deuxième passe, ou passe d'éclairage, Unity rend l'éclairage de la scène une fois que le tampon G est complet, reportant ainsi l'ombrage. Le chemin d'ombrage différé itère sur chaque pixel et calcule les informations d'éclairage sur la base de la mémoire tampon et non des objets individuels.
Pour plus d'informations sur les différences techniques entre les chemins de rendu, voir Rendu avant et rendu différé dans la documentation du HDRP.