Le pipeline de rendu haute définition : Guide de démarrage pour les artistes

Note de la rédaction : Les informations contenues dans ce billet sont obsolètes. Pour les versions plus récentes d'Unity, nous recommandons Le guide définitif de l'éclairage dans le livre électroniqueHigh Definition Render Pipeline (HDRP), dont la dernière mise à jour date de 2022.
Dans ce billet, nous allons explorer la création d'une scène à rendre à l'aide du High Definition Render Pipeline d'Unity, également connu sous le nom de HDRP. Nous allons démarrer un nouveau projet HDRP, mettre à jour les matériaux de tous les actifs importés et apprendre à utiliser les nouveaux paramètres de l'inspecteur de matériaux pour créer un matériau de verre réaliste. Nous soulignerons également les différences entre la filière intégrée et le HDRP.
En 2018.1, Unity a introduit un nouveau système appelé Scriptable Render Pipeline (SRP), qui vous permet de créer votre propre pipeline de rendu, en fonction des besoins de votre projet. SRP comprend deux pipelines prêts à l'emploi, appelés Lightweight (LWRP) et High Definition (HDRP). HDRP vise une grande fidélité visuelle et convient aux plateformes PC ou console.
Si ce n'est pas déjà fait, nous vous recommandons d'installer Unity Hub. Il vous permet de suivre vos projets ainsi que les versions installées de Unity. Lors de la création d'un nouveau projet dans Unity Hub, sous Template, vous verrez une option pour sélectionner High-Definition RP (Preview).

Étant donné que le HDRP est encore en phase de prévisualisation, ce n'est pas une bonne idée de passer au HDRP au milieu de la production. Cependant, vous pouvez essayer de mettre à jour votre projet vers HDRP en allant dans le nouveau gestionnaire de paquets et en l'installant. Attention, une fois que vous avez mis votre projet à niveau vers le HDRP, vous ne pourrez plus revenir en arrière. Veillez à créer une sauvegarde du projet avant de procéder à la mise à niveau.
Comme indiqué ci-dessus, le HDRP est encore en cours d'élaboration, il est donc susceptible d'être modifié à l'avenir. Pour mettre à niveau un projet du pipeline de rendu intégré vers le HDRP, naviguez vers Fenêtre > Gestionnaire de paquets. Dans le gestionnaire de paquets, vous pouvez voir tous les paquets actuellement installés dans votre projet Unity. Sous Tous, localisez "HD Render Pipeline" (Render-pipelines.high) et installez la dernière version. L'installation du pipeline intègre également le noyau Render-pipeline, le Shader Graph et les paquets de post-traitement.


Après avoir installé le package HDRP, vous devez naviguer dans Edit > Project Settings > Graphics pour affecter la ressource Scriptable Render Pipeline au HDRP.

L'inspecteur affiche l'actif Render Pipeline actuellement installé dans le champ "Scriptable Render Pipeline Settings". L'actif HDRP Render Pipeline sera attribué si vous installez le pipeline à partir de Unity Hub. Si vous mettez à jour votre projet à partir du pipeline intégré, ce champ sera défini sur "None". Nous pouvons attribuer un actif de pipeline en cliquant sur le bouton situé à côté de la boîte de sélection de l'actif ou en faisant glisser l'actif depuis le dossier Settings.
Le HDRP utilise l'API C# Scriptable Render Pipeline. Cela s'accompagne d'une multitude de préférences différentes que vous pouvez définir pour personnaliser le rendu de votre projet. Le fait que vos paramètres de rendu soient stockés dans un élément du pipeline de rendu signifie que vous pouvez modifier vos paramètres de rendu en attribuant un nouvel élément du pipeline de rendu à ce champ.
Pour créer une nouvelle ressource de pipeline de rendu, cliquez avec le bouton droit de la souris dans votre dossier de paramètres et choisissez Créer > Rendu > Ressource de pipeline de rendu haute définition.

Lors de l'utilisation d'un projet HDRP, tout matériau Unity intégré, standard ou non éclairé ne sera pas rendu et apparaîtra donc en utilisant le shader rose non éclairé par défaut qu'Unity affiche lorsqu'un shader est cassé. Cela peut se produire lors de la mise à niveau d'un projet existant ou lors de l'intégration d'un contenu hérité tel que les actifs de l'Asset Store qui n'utilisent pas de shaders compatibles avec le HDRP. Pour être pris en charge par le HDRP, le matériel doit être mis à niveau.
Unity 2018.1 est équipé d'un outil de conversion de matériaux intégré. Il prend les propriétés des matériaux du shader standard d'Unity et les convertit en nouveaux matériaux HDRP. Il convient de noter que cela ne fonctionne pas pour les shaders personnalisés, qui doivent être réécrits pour le HDRP.
Pour accéder à l'outil de conversion des matériaux, naviguez vers Édition > Pipeline de rendu.

Unity propose plusieurs options de mise à niveau dans ce menu. Nous nous concentrerons ici sur les deux premiers. L'option "Mise à niveau des matériaux du projet vers des matériaux de haute définition" permet de mettre à niveau tous les matériaux du projet qui peuvent être mis à niveau. L'option "Mettre à niveau les matériaux sélectionnés vers les matériaux haute définition" vous permet de sélectionner les matériaux que vous souhaitez mettre à niveau à partir de la fenêtre du projet.
C'est à ce stade que nous vous recommandons de créer une sauvegarde séparée de votre projet.
Une fois les matériaux convertis, le shader du matériau s'appelle désormais "HDRenderPipeline/Lit". Vous avez désormais un accès complet aux toutes nouvelles fonctionnalités du shader HDRP dans l'inspecteur de matériaux.
En outre, dans les options de shader des matériaux, sous "HDRenderPipeline", vous pouvez sélectionner et appliquer une variété de types de shader tels que LitTesseleation ou Unlit, pour n'en citer que quelques-uns.

Les sections suivantes présentent certaines des nouvelles fonctionnalités ajoutées dans le cadre du HDRP. Nous avons utilisé certaines de ces nouvelles fonctionnalités pour améliorer l'aspect de notre scène de cuisine.
L'éclairage dans le HDRP utilise un système appelé " Physical Light Units" (PLU). PLU signifie que ces unités sont basées sur des valeurs mesurables réelles, comme celles que l'on trouve en magasin pour acheter des ampoules ou pour mesurer la lumière à l'aide d'un posemètre.
Nous utilisons le LUX pour les lumières directionnelles car dans le monde réel, ce sont les valeurs utilisées pour mesurer l'intensité de la lumière du soleil, ce qui peut être facilement fait avec un compteur LUX. D'autres sources lumineuses du monde réel utilisent les lumens pour mesurer l'intensité, ce qui peut servir de référence pour les petits émetteurs de lumière de notre scène.
La lampe Realtime Line Light maintient un flux lumineux continu et constant émanant d'une ligne dont la longueur peut être définie par l'utilisateur. Ces types de lumières sont couramment utilisés dans les films d'animation pour obtenir un éclairage réaliste. Ils ajoutent une qualité cinématographique à l'éclairage de vos scènes. Les lumières de ligne peuvent être créées en sélectionnant le type de forme dans l'inspecteur après qu'une lumière a été placée dans une scène.
De nombreuses cuisines modernes utilisent un type de Line Light pour éclairer l'espace de travail de la cuisine, de sorte que le Line Light ici produit non seulement un éclairage réaliste, mais est également fidèle à ce que l'on trouve dans une vraie cuisine.
En outre, l'inspecteur de la lumière peut déterminer la couleur d'une lumière émise en fonction de la température. Sur une échelle de 1000 à 20000 kelvins, plus la valeur est basse, moins il y a de chaleur émise, la lumière apparaît plus rouge. En revanche, plus on augmente la valeur de la température, plus elle apparaît bleue.
De même, le type de forme Rectangle émet une lumière en fonction des valeurs personnalisées des axes X et Y.
Remarque : Les ombres ne sont actuellement pas prises en charge pour les types de lumière Ligne ou Rectangle.

En outre, l'utilisation de l'explorateur de lumière vous permet de gérer facilement tout type de lumière dans votre projet. Vous pouvez modifier les valeurs, changer le type de lumière et même manipuler les types d'ombre sans avoir à les localiser dans la scène. Les sondes de réflexion, les sondes lumineuses et les émissives statiques peuvent également être gérées à partir de cette fenêtre.
Pour accéder à l'explorateur de lumière, naviguez vers Fenêtre > Général > Explorateur de lumière:

Les paramètres de volume vous permettent de modifier visuellement vos préférences en matière d'environnement, en ajustant des éléments tels que l'environnement visuel, le ciel procédural et les paramètres d'ombre HD. Cela vous permet également de créer des profils de volume personnalisés et de passer de l'un à l'autre.
Les paramètres de volume sont gérés en créant un objet de jeu et en ajoutant le composant Volume. Ce processus est similaire à celui de la création d'un volume pour la pile de post-traitement v2. Dans le HDRP, il y en a un par défaut dans la hiérarchie.
Paramètres de l'ombre HD
Les paramètres de l'ombre HD vous permettent de déterminer la qualité globale des ombres dans un volume. Le champ Distance maximale calcule la qualité des ombres en fonction de la distance entre la caméra et l'ombre.

Environnement visuel
Vous disposez de deux menus déroulants dans Visual Environment.
Le type de ciel offre trois options : Ciel procédural, ciel en dégradé et ciel HDRI.

Le ciel procédural produit un environnement basé sur les valeurs que vous choisissez dans le composant ciel procédural.
HDRI Sky construit une carte de l'environnement basée sur un ensemble d'images dans le composant. Par défaut, le composant HDRISky n'est pas affecté aux paramètres du volume. En cliquant sur "Add component overrides..." en bas de l'onglet Inspecteur et en sélectionnant "HDRI Sky", le composant devient disponible.
Vous pouvez désormais attribuer une HDRI Sky Cubemap et modifier les valeurs pour obtenir un éclairage précis et réaliste.
Unity HDRI Pack est disponible gratuitement sur l'Asset Store de Unity Technologies et fournit 7 Cubemaps HDR pré-converties (résolution 1024x2014) prêtes à être utilisées dans votre projet.

Pour cette scène, "TreasureIslandWhiteBalancedNoSun" du Unity HDRI Pack a donné les meilleurs résultats, car il a fourni suffisamment de lumière pour éclairer la cuisine, sans l'assombrir. Bien entendu, les modificateurs fournis dans le composant, tels que l'exposition et le multiplicateur, permettent de modifier et d'ajuster la luminosité. Il est important de choisir une carte HDRI qui complète votre scène.
Enfin, le type de brouillard offre trois options : linéaire, exponentiel et volumétrique. Afin de déterminer les valeurs, répétez l'étape précédente ("Add Component Override", appliquez le composant pertinent à l'inspecteur).
Avant l'introduction du PRDH, la création d'un matériau en verre n'était pas chose aisée. Il n'y avait pas de moyen simple de construire un matériau en verre réaliste sans faire des recherches approfondies et programmer des shaders ou recourir à l'Asset Store pour utiliser un shader personnalisé.
Désormais, grâce aux nouvelles fonctionnalités du HDRP Lit Shader disponible dans l'inspecteur de matériaux, vous pouvez créer des vitres qui non seulement ont une belle apparence, mais qui réfractent la lumière en fonction de paramètres définissables.
Pour commencer, nous voulons créer un nouveau HDRenderPipeline/Lit Material. Il s'agit du nuanceur de matériau par défaut appliqué à tout nouveau matériau créé dans le HDRP.
Pour créer un nouveau matériau, cliquez avec le bouton droit de la souris dans le dossier préféré et choisissez Créer -> Matériau. L'inspecteur de matériaux affiche alors le tout nouvel inspecteur de matériaux du PRDH. Il y a quelques changements notables. Passons-les en revue.
C'est ici que vous pouvez commencer à déterminer la surface du matériau.
Type de surface
Il existe deux options pour le type de surface, Opaque ou Transparent. Opaque simule un matériau complètement solide, sans pénétration de la lumière.
En revanche, Transparent est un mélange alpha et simule une surface translucide. Bien qu'utile, ce type de surface est plus coûteux à rendre.
Une caractéristique importante du HDRP est l'éclairage unifié des objets transparents et opaques.
Sélectionnez Transparent pour cet exemple. Cela permet d'accéder aux paramètres discutés plus loin.
Double face
Cette préférence permet de rendre le matériau sur les deux faces. Par défaut, le mode normal est réglé sur Miroir, mais dans le menu déroulant, nous pouvons sélectionner Retourner ou Aucun.
Si l'option Double face n'est pas activée, Unity ne rendra que les faces du matériau faisant face à la direction de la caméra.
Les options de type de matériau créent de nouveaux comportements qui permettent d'obtenir des matériaux encore plus réalistes. Chacune de ces options fournit des paramètres supplémentaires dans l'inspecteur une fois qu'elle est activée.
Standard
Utilise les paramètres de base et constitue le type de matériau par défaut.
Diffusion sous la surface (SSS)
La diffusion sous la surface fonctionne en simulant la façon dont la lumière interagit et pénètre dans des objets translucides tels que les plantes. Il est également utilisé pour l'équarrissage de la peau. Si vous avez déjà éclairé le bout de votre doigt, vous avez pu constater que la lumière change de couleur lorsqu'elle est dispersée sous la surface. Ceci peut être reproduit en utilisant ce type de surface.
Une fois activé, un paramètre de transmission apparaît. Vous pouvez ainsi déterminer la translucidité d'un objet à l'aide d'une carte d'épaisseur.
Ces deux caractéristiques peuvent être manipulées à l'aide des profils de diffusion. Deux profils par défaut, Skin et Foliage, sont fournis et peuvent être utilisés comme base pour ce type de matériaux SSS. Treize profils supplémentaires peuvent être personnalisés à l'aide des paramètres de profil indiqués ci-dessous.

Pour une brève démonstration vidéo, consultez mon conseil Unity sur le SSS :
J'ai toujours été réticent à l'égard de la diffusion sous la surface (SSS), car cela semblait toujours compliqué ! ?
Avec HD RP, SSS dispose de 2 profils prédéfinis, ainsi que de 13 autres profils qui peuvent être personnalisés et ajouter de la profondeur à n'importe quel matériau.
Voir ci-dessous pour une démonstration vidéo simple#unitytips pic.twitter.com/NM4Z03l1U1
- Kieran Colenutt Unity (@kierancolenutt) 28 août 2018
Anisotropy
L'anisotropie simule un matériau de surface dont les propriétés changent en fonction de son orientation, par exemple pour imiter l'aspect de l'aluminium brossé. Au lieu de créer une surface métallique aux reflets propres et nets, en utilisant les cartes de tangente et d'anisotropie, vous pouvez modifier l'intensité des reflets, ainsi que leur orientation.
Iridescence
Fournit les paramètres permettant de créer un effet irisé sur la surface du matériau, semblable à l'effet de la lumière sur une marée noire. La sortie est déterminée par une carte d'irisation et une carte d'épaisseur de la couche d'irisation.
Couleur spéculaire
Une couleur spéculaire est utilisée pour contrôler la couleur et l'intensité des réflexions spéculaires dans le matériau. Cela permet d'avoir une réflexion spéculaire d'une couleur différente de la réflexion diffuse.
Translucide
L'option translucide peut être extrêmement efficace pour simuler l'interaction de la lumière avec la végétation. Ce type de matériau utilise des profils, comme le SSS, mais dans ce cas, la carte d'épaisseur est utilisée pour déterminer la façon dont la lumière est transmise.
Ce paramètre utile permet au matériau de répondre facilement à un matériau de décalque, ce qui fonctionne pour les deux flux de travail, soit par le biais du projecteur de décalque, soit en tant que composant d'objet.

Couleur de base + Opacité
À ce stade, le matériau en verre apparaît encore opaque, car vous devez modifier la valeur de l'opacité dans les entrées pour permettre à la lumière de pénétrer.
Pour ce faire, ouvrez la fenêtre d'échantillonnage des couleurs à côté de "Couleur de base + Opacité".
Les canaux rouge, vert et bleu sont utilisés comme couleur de base et un canal alpha détermine l'opacité. L'opacité du matériau actuel est déterminée par une valeur comprise entre 0 et 255, 255 correspondant à une opacité totale, 0 à une transparence totale. Pour cet exemple, nous voulons que la couleur du matériau soit un vert clair.
Nous voulons régler l'opacité sur 30, ce qui modifiera le matériau de manière à ce qu'il soit principalement transparent.
Vous trouverez ci-dessous les valeurs de couleur que j'ai utilisées :
Valeurs RVB :
R - 201
G - 255
B - 211
Valeur hexadécimale - C9FFD3
Ce qu'il faut retenir, c'est que même si vous réglez l'alpha du matériau sur une valeur numérique faible, mais que le type de surface est réglé sur Opaque, le matériau ne sera pas transparent et conservera son opacité.

Métallique et douceur
Ces options peuvent être modifiées à l'aide d'un curseur dont les valeurs sont comprises entre 0 et 1. Les deux valeurs et sorties sont générées à partir des cartes de masque Alpha et du canal rouge ci-dessous dans l'inspecteur. Lorsqu'une carte de masque est attribuée, les curseurs sont ensuite utilisés pour réaffecter les valeurs minimales et maximales.
Carte normale
Lorsqu'une carte de normalité est appliquée, la force peut être modifiée en ajustant le curseur du paramètre dans une plage de 0 à 2.
Vous pouvez ajouter des détails et de la profondeur à votre matériau en verre en appliquant une norme, telle qu'une indentation ou des rayures.
Carte du masque
Dans le cadre du HDRP, une carte de masque est une combinaison de :
Canal rouge - Métallique allant de 0 à 1
Canal vert - Occlusion ambiante
Canal bleu - Masque de carte détaillée
Canal Alpha - Lissage
Par défaut, les textures importées dans Unity utilisent sRGB. Dans l'inspecteur de texture, le fait de décocher "sRGB (Texture couleur)" convertit la texture en format linéaire. Comme la carte de masque utilise les mathématiques pour générer une sortie, cette texture doit être linéaire.

Manteau Masque
Le masque de couche simule un effet de couche transparente sur le matériau, augmentant ainsi sa douceur. Par défaut, la valeur du masque de couche est fixée à 0, mais le curseur permet d'ajuster le paramètre dans une fourchette de 0 à 1. Le masque pour couche transparente peut être utilisé pour imiter des matériaux tels que la peinture automobile ou les plastiques.
Détail des entrées
La carte détaillée est une nouvelle carte introduite dans le HDRP et un amalgame de cartes supplémentaires qui ajoutent des détails minutieux au matériau. La carte détaillée utilise les canaux suivants :
Rouge : Niveaux de gris à l'aide du mélange par superposition
Vert : Carte normale Canal Y
Bleu : Douceur
Alpha : Carte normale Canal X
En modifiant les propriétés de l'entrée de transparence du nuanceur, vous pouvez commencer à déterminer l'effet de transparence global. Les entrées de transparence ne sont disponibles que lorsque le type de surface est réglé sur transparent.
Pour cet exemple, la section suivante vous permettra de créer la réfraction pour le matériau verre.
Modèle de réfraction
Le modèle de réfraction définit la manière dont la courbure de la lumière à travers le matériau sera simulée. Il existe deux options, Plan et Sphère.
Le choix du modèle de réfraction dépend de la forme et de la taille de l'objet auquel le matériau est appliqué :
Sphère : Pour les objets remplis, utilisez un modèle de sphère avec une épaisseur de réfraction comparable à la taille de l'objet sur lequel le matériau est placé.
Avion : Pour un objet vide, utilisez un mode Plan avec une faible épaisseur de réfraction.
Les options Indice de réfraction et Épaisseur de réfraction vous permettent de contrôler le comportement du modèle de réfraction.
Indice de réfraction
Sur une échelle de 1 à 2,5, le réglage du paramètre permet d'obtenir une intensité de réfraction différente. Par défaut, la valeur est fixée à 1, ce qui ne génère aucune réfraction.
Entre 1.1 et 1.2, la réfraction s'inverse et l'environnement vu à travers le matériau apparaît à l'envers.

Maintenant que la base du matériau de verre a été réalisée, des ajustements personnalisés peuvent être ajoutés pour assembler un matériau qui fonctionnera le mieux pour vous et pour l'objet auquel le matériau est appliqué.
J'espère que cette vue d'ensemble vous a aidé à mieux comprendre comment appliquer concrètement le HDRP dans vos projets ! Bien qu'il s'agisse encore d'un aperçu expérimental, nous avons publié une documentation préliminaire sur GitHub que vous pouvez également lire pour commencer.
Le HDRP est un nouvel outil de création de projets qui ne cesse de se développer et qui est passionnant, et j'ai hâte de voir ce que vous allez en faire. N'hésitez pas à me contacter sur Twitter @kierancolenutt pour toute question. J'aimerais connaître vos expériences, faites-moi savoir comment cela se passe !
Pour suivre et discuter du développement du HDRP et du SRP en général, rejoignez notre forum sur les graphiques expérimentaux.