Cet article est le deuxième 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 :
Le chemin de rendu en mode shader Lit influe sur la manière dont vous pouvez utiliser l'anticrénelage pour supprimer les bords irréguliers de vos rendus. HDRP propose plusieurs techniques d'anticrénelage, en fonction de vos besoins de production.
Anti-crénelage multi-échantillon
L'anticrénelage multiéchantillon (MSAA) est une méthode d'anticrénelage très répandue parmi les joueurs sur PC. Il s'agit d'une méthode matérielle de haute qualité qui lisse les bords des polygones individuels et qui ne fonctionne qu'avec le rendu Forward dans Unity. La plupart des GPU modernes prennent en charge les échantillons MSAA 2x, 4x et 8x.
Dans votre élément de pipeline actif, réglez le mode de l'ombrage de la lumière sur Forward Only. Sélectionnez ensuite MSAA 2x, MSAA 4x ou MSAA 8x pour la qualité de l'anticrénelage multisample. Des valeurs plus élevées permettent d'obtenir un meilleur anticrénelage, mais elles sont plus lentes. Nous pouvons voir cela plus clairement en zoomant sur la vue de la caméra.
Il y a quelques limitations avec le MSAA qui méritent d'être soulignées :
- MSAA est incompatible avec les tampons G d'ombrage différé, qui stockent la géométrie de la scène dans une texture. L'ombrage différé nécessite donc l'une des techniques d'anticrénelage de post-traitement.
- Comme le MSAA ne traite que l'aliasing des bords des polygones, il ne peut pas empêcher l'aliasing que l'on trouve sur certaines textures et certains matériaux soumis à un éclairage spéculaire intense. Vous devrez peut-être combiner le MSAA avec une autre technique d'anticrénelage de post-traitement si cela pose problème.
Pour appliquer l'anticrénelage en tant que technique de post-traitement, utilisez les paramètres d'anticrénelage post-traitement:
- L'anticrénelage temporel (TAA) combine les informations des images passées et actuelles pour supprimer les irrégularités de l'image actuelle. Vous devez activer les vecteurs de mouvement pour que cela fonctionne. La TAA produit généralement d'excellents résultats, mais elle peut créer des artefacts fantômes dans certaines situations (par exemple, un objet de jeu se déplaçant rapidement devant une surface contrastée). HDRP10 a apporté des améliorations pour réduire les artefacts TAA typiques. L'implémentation d'Unity réduit les images fantômes, améliore la netteté et empêche le scintillement que l'on trouve dans d'autres solutions.
- L'anticrénelage approximatif rapide (FXAA) est un algorithme d'anticrénelage de l'espace de l'écran qui mélange les pixels entre les régions à fort contraste. Il s'agit d'une technique relativement rapide qui ne nécessite pas une grande puissance de calcul, mais qui peut réduire la netteté globale de l'image.
- L'anticrénelage morphologique sous-pixel (SMAA) détecte les bords de l'image, puis recherche des motifs spécifiques à mélanger. Cette option permet d'obtenir des résultats plus nets que FXAA et fonctionne bien avec les styles artistiques plats, de type bande dessinée ou épurés.
remarque Lorsque vous combinez le post-traitement et l'anticrénelage multiéchantillon, faites attention au coût du rendu. Comme toujours, optimisez votre projet afin d'équilibrer la qualité visuelle et les performances.
Le HDRP utilise un cadre de volume. Ce système vous permet de diviser votre scène et d'activer certains paramètres ou fonctions en fonction de la position de la caméra. Par exemple, le niveau du modèle HDRP contient trois parties distinctes, chacune avec sa propre configuration d'éclairage. Ainsi, chaque pièce est composée de différents volumes.
Un volume n'est qu'un objet de remplacement doté d'une composante de volume. Vous pouvez en créer un dans le menu GameObject > Volume en sélectionnant un préréglage. Sinon, il suffit de créer manuellement un objet de jeu avec les composants appropriés.
Comme les composants de volume peuvent être ajoutés à n'importe quel objet de jeu, il peut être difficile de les trouver dans la hiérarchie. L'explorateur de lumière(Fenêtre > Rendu > Explorateur de lumière > Volumes) peut vous aider à localiser les volumes dans les scènes chargées. Cette interface permet d'effectuer des ajustements rapides.
Définissez le mode du composant Volume sur Global ou Local, en fonction du contexte.
Le volume global fonctionne comme un "fourre-tout" sans limites et affecte donc toutes les caméras de la scène. Dans la scène type du HDRP, le VolumeGlobal définit une base de référence générale des paramètres du HDRP pour l'ensemble du niveau.
Le volume local définit un espace limité dans lequel ses paramètres prennent effet. Il utilise un composant Collider pour déterminer ses limites. Activez Is Trigger si vous ne voulez pas que le collisionneur entrave le mouvement d'un corps physique comme le contrôleur de votre joueur de FPS.
Dans la scène d'exemple (voir l'image dans la section Volumes), chaque pièce possède un volume local avec un BoxCollider qui remplace les paramètres globaux.
La salle 2 dispose d'un petit volume sphérique pour le centre lumineux, à côté de la vitrine, et la salle 3 dispose de volumes plus petits dans le couloir d'entrée et dans la zone assise, sous les lampes suspendues.
Dans le modèle, les volumes locaux remplacent la balance des blancs, l'exposition et/ou le brouillard. Tout ce qui n'est pas explicitement remplacé est renvoyé aux paramètres globaux.
Lorsque votre caméra se déplace dans la scène, les paramètres globaux prennent effet jusqu'à ce que votre contrôleur de joueur rencontre un volume local où ces paramètres prennent le dessus.
Conseil de performance : n'utilisez pas un grand nombre de volumes. L'évaluation de chaque volume (mélange, spatialisation, calcul d'annulation, etc.) entraîne un certain coût pour l'unité centrale.
Un composant de volume ne contient pas de données réelles. Au lieu de cela, il fait référence à un profil de volume - un ScriptableObject Asset sur le disque qui contient les paramètres de rendu de la scène.
Utilisez le champ Profil pour créer un nouveau profil de volume à l'aide des boutons Nouveau ou Cloner . Vous pouvez également passer à un autre profil que vous avez déjà enregistré.
L'utilisation du profil de volume en tant que fichier facilite la réutilisation des paramètres précédents et le partage des profils entre vos volumes.
Notez que les modifications apportées aux profils de volume en mode lecture ne seront pas perdues lorsque vous quitterez ce mode.
Chaque profil de volume commence par un ensemble de propriétés par défaut. Pour modifier leurs valeurs, allez à Volume Overrides et personnalisez les paramètres individuels. Par exemple, utilisez les options de remplacement du volume pour modifier le brouillard, le post-traitement ou l'exposition du volume.
Une fois le profil de volume défini, cliquez sur Ajouter une dérogation pour personnaliser les paramètres du profil. L'image ci-contre montre un exemple de ce à quoi peut ressembler une dérogation au brouillard.
Chacune des propriétés du Volume Override possède une case à cocher sur la gauche, que vous pouvez utiliser pour modifier cette propriété. Si la case n'est pas cochée, le HDRP utilise la valeur par défaut du volume. Les objets de volume peuvent avoir plusieurs dérogations. Modifiez autant de propriétés que nécessaire pour chacune d'entre elles. Vous pouvez rapidement les cocher ou les décocher à l'aide du raccourci Tout ou Rien situé en haut à gauche.
L'ajout de dérogations est un processus clé du HDRP. Si vous comprenez le concept d'héritage en programmation, les surcharges de volume vous sembleront familières.
Les paramètres de volume de haut niveau sont les paramètres par défaut des volumes de bas niveau. Ici, les paramètres par défaut du HDRP sont transmis au volume global qui, à son tour, sert de "base" aux volumes locaux.
Le volume global remplace les paramètres par défaut du HDRP et le volume local remplace le volume global. Utilisez la priorité, le poids et la distance de mélange (décrits dans la section suivante) pour résoudre les conflits causés par le chevauchement des volumes.
Pour déboguer les valeurs actuelles d'un composant de volume donné, accédez à l'onglet Volume dans le débogueur de rendu.
Vous trouverez une liste complète des dérogations de volume dans la documentation du PRDH.
Comme vous avez souvent besoin de plus d'un volume par niveau, le PRDH vous permet de mélanger les volumes. Les transitions entre les deux sont ainsi moins abruptes.
Au moment de l'exécution, le HDRP utilise la position de la caméra pour déterminer quels volumes affectent les paramètres du HDRP.
La distance de fusion détermine l'endroit, ou la distance à l'extérieur du collimateur du volume, à partir duquel le fondu doit être activé ou désactivé. Une valeur de 0 pour la distance de mélange signifie une transition instantanée, tandis qu'une valeur positive signifie que les priorités de volume ne se mélangent qu'une fois que la caméra entre dans la plage spécifiée.
Le cadre des volumes est flexible et vous permet de combiner les volumes et les dérogations comme bon vous semble. Si plusieurs volumes chevauchent le même espace, le HDRP s'appuie sur la priorité pour décider quel volume est prioritaire. Des valeurs plus élevées signifient une plus grande priorité.
En général, définissez vos valeurs de priorité de manière explicite afin d'éviter toute approximation. Dans le cas contraire, le système utilisera l'ordre de création comme critère de départage des priorités, ce qui peut conduire à des résultats inattendus.
Le PRDH utilise des modèles d'éclairage réels pour rendre chaque scène. Ainsi, de nombreuses propriétés sont analogues à celles de la photographie traditionnelle.
Comprendre la valeur d'exposition
La valeur d'exposition (EV) est une valeur numérique qui représente une combinaison de la vitesse d'obturation de l'appareil photo et du nombre f (qui détermine la taille de l'ouverture de l'objectif). Vous devez régler correctement l'exposition pour obtenir une luminosité idéale et capturer des niveaux de détail élevés dans les ombres et les hautes lumières. Sinon, la surexposition ou la sous-exposition de l'image donne des résultats peu souhaitables.
La fourchette d'exposition au PRDH se situe généralement dans le spectre ci-dessus.
Les valeurs d'exposition plus élevées laissent entrer moins de lumière dans l'appareil photo, ce qui est approprié pour les situations plus lumineuses. Dans ce cas, une valeur EV comprise entre 13 et 16 convient pour un extérieur ensoleillé. En revanche, pour un ciel nocturne sombre et sans lune, l'EV se situe entre -3 et 0.
Vous pouvez faire varier un certain nombre de facteurs dans les réglages de l'appareil photo pour modifier la valeur d'exposition :
- La vitesse d'obturation: Durée pendant laquelle le capteur d'image est exposé à la lumière.
- Le nombre f : La taille de l'ouverture de l'objectif
- L'ISO: La sensibilité du film/capteur à la lumière
Les photographes appellent cela le triangle d'exposition. Dans Unity, comme avec un véritable appareil photo, vous pouvez obtenir la même valeur d'exposition en utilisant différentes combinaisons de ces nombres. Le PRDH exprime la valeur d'exposition en EV100, qui fixe la sensibilité à celle de 100 films de l'Organisation internationale de normalisation (ISO).
La formule ci-dessus calcule la valeur d'exposition.
Notez qu'il s'agit d'une échelle logarithmique de base 2. Lorsque la valeur d'exposition augmente d'une unité, la quantité de lumière entrant dans l'objectif diminue de moitié.
Le HDRP vous permet de reproduire l'exposition d'une image réelle. Il suffit de prendre une photo numérique avec un appareil photo ou un smartphone. Saisissez les métadonnées de l'image pour identifier le nombre f, la vitesse d'obturation et la sensibilité ISO.
Utilisez la formule pour calculer la valeur d'exposition. Si vous utilisez la même valeur dans l'option de remplacement de l'exposition (voir la section suivante), l'image rendue devrait correspondre à l'exposition réelle.
Vous pouvez utiliser des photos numériques comme références pour l'éclairage de votre niveau. Même si l'objectif n'est pas nécessairement de recréer une image à la perfection, la comparaison avec une photographie réelle peut vous permettre de ne pas vous tromper dans vos réglages d'éclairage.
Dans le PRDH, l'exposition est une dérogation au volume. Ajoutez-le à un volume local ou global pour voir les propriétés disponibles.
Dans le menu déroulant Mode, sélectionnez l'une des options suivantes : Fixe, automatique, histogramme automatique, cartographie des courbes et caméra physique.
La compensation permet de décaler ou d'ajuster l'exposition. Vous pouvez l'utiliser pour appliquer des ajustements mineurs et "arrêter" légèrement l'image rendue vers le haut ou vers le bas.
Mode fixe
Le mode fixe permet de régler manuellement la valeur d'exposition. Suivez les marques de graduation sur le curseur d'exposition fixe pour obtenir des indications. Bien que l'icône de droite présente une liste déroulante de préréglages (par exemple, de 13 pour une scène ensoleillée à -2,5 pour une scène sans lune), vous pouvez régler le champ directement sur n'importe quelle valeur.
Gardez à l'esprit que le mode fixe est assez simple, mais qu'il n'est pas très flexible. Cette méthode ne fonctionne que si vous avez un volume ou une scène avec un éclairage relativement uniforme, où une valeur d'exposition peut fonctionner partout.
Le mode automatique définit dynamiquement l'exposition en fonction de la plage de niveaux de luminosité de l'écran. Cela fonctionne de la même manière que l'œil humain s'adapte aux différents niveaux d'obscurité, redéfinissant ce qui est perçu comme noir.
Bien que le mode automatique fonctionne dans de nombreuses conditions d'éclairage, il peut également surexposer ou sous-exposer involontairement l'image lorsque l'appareil photo est orienté vers une partie très sombre ou très lumineuse de la scène. Utilisez les limites Min et Max pour maintenir le niveau d'exposition dans une fourchette souhaitable. Testez le jeu pour vérifier que les limites restent dans les limites de l'exposition prévue tout au long du niveau. Utilisez ensuite le mode de mesure, combiné aux options de masque , pour indiquer les parties du cadre auxquelles appliquer l'exposition automatique.
L'exposition automatique change lorsque l'appareil photo passe de l'obscurité à la lumière, avec des options permettant de régler la vitesse. Comme pour l'œil, le fait de déplacer l'appareil photo d'une zone très sombre à une zone très claire, ou vice versa, peut être brièvement désorientant.
Les modes Automatique, Histogramme automatique et Mappage de courbe utilisent le mode de mesure pour déterminer la partie de l'image à utiliser lors du calcul de l'exposition. Vous pouvez régler le mode de mesure sur :
- Moyenne: L'appareil photo utilise l'ensemble du cadre pour mesurer l'exposition.
- Spot: L'appareil photo n'utilise que le centre de l'écran pour mesurer l'exposition.
- Poids central: L'appareil photo privilégie les pixels au centre de l'image et s'efface vers les bords du cadre.
- Masque pondéré: Une image fournie (masque de texture de poids) indique quels pixels sont les plus importants pour le contrôle de l'exposition.
Masque de procédure: L'appareil photo évalue l'exposition sur la base d'une texture générée de manière procédurale. Vous pouvez modifier les options relatives au centre, au rayon et à la douceur.
Le mode Histogramme automatique va encore plus loin. En fin de compte, il calcule un histogramme pour l'image et ignore les pixels les plus sombres et les plus clairs lors du réglage de l'exposition.
En rejetant les pixels très sombres ou très lumineux du calcul de l'exposition, vous obtiendrez une exposition plus stable lorsque des pixels extrêmement lumineux ou sombres apparaissent sur l'image. Ainsi, les surfaces émissives intenses ou les matériaux noirs ne sous-exposeront ou ne surexposeront pas autant le rendu.
Utilisez les paramètres de pourcentage de l'histogramme dans le mode d'histogramme automatique pour éliminer tout ce qui se trouve dans l'histogramme en dehors de la plage de pourcentages donnée (imaginez l'écrêtage des pixels les plus clairs et les plus sombres des parties les plus à gauche et les plus à droite de l'histogramme). Utilisez ensuite la fonction Curve Remapping pour remapper la courbe d'exposition (voir la section suivante).
La cartographie des courbes est une autre variante du mode automatique.
En mode de cartographie des courbes, l'axe des x de la courbe représente l'exposition actuelle et l'axe des y représente l'exposition cible. Le remappage de la courbe d'exposition permet d'affiner la précision.
Les personnes familiarisées avec la photographie trouveront peut-être le modephysique de l'appareil photo utile pour régler les paramètres de l'appareil.
Basculez le mode de neutralisation de l'exposition sur la caméra physique, puis localisez la caméra principale. De là, vous pouvez activer la caméra physique. Voir l'image pour les propriétés affichées dans l'inspecteur.
Les paramètres importants pour l'exposition sont l'ISO (sensibilité), l'ouverture (ou nombre f) et la vitesse d'obturation, situés dans la rubrique Appareil photo physique. Si vous comparez des photos de référence, copiez les paramètres corrects à partir des données Exif de l'image. Sinon, ce tableau peut vous aider à estimer la valeur d'exposition en fonction du nombre f et de la vitesse d'obturation.
Bien qu'elles ne soient pas liées à l'exposition, d'autres propriétés physiques de l 'appareil photo peuvent vous aider à faire correspondre les attributs des appareils photo du monde réel.
Par exemple, nous utilisons normalement le champ de vision dans Unity (et dans de nombreuses autres applications 3D) pour déterminer la partie du monde qu'une caméra peut voir en même temps. Dans les appareils photo réels, cependant, le champ de vision dépend de la taille du capteur et de la longueur focale de l'objectif.
Plutôt que de définir directement le champ de vision, les paramètres physiques de la caméra vous permettent de renseigner le type de capteur, la taille du capteur et la distance focale à partir des données réelles de la caméra. Unity calculera alors automatiquement la valeur du champ de vision correspondant.
Se fier aux métadonnées de l'appareil photo incluses dans les fichiers d'image lorsqu'il s'agit de faire correspondre une photo à une référence réelle. Windows et macOS peuvent lire les données Exif des images numériques. Vous pouvez ensuite copier les champs correspondants dans votre caméra virtuelle.
Notez qu'il peut être nécessaire de rechercher les dimensions exactes du capteur sur le site web du fabricant une fois que vous avez obtenu la marque et le modèle de l'appareil photo à partir des métadonnées. Cet article comprend une estimation des formats de capteurs d'images les plus courants. Plusieurs des paramètres de fond influencent le volume de profondeur de champ.
Dans Unity 2021 LTS, vous pouvez contrôler la distance de mise au point à partir de l'inspecteur de la caméra. Dans le composant Volume de profondeur de champ, réglez le Mode de mise au point et le Mode de distance de mise au point sur Caméra physique.
Utilisez le nombre de lames, la courbure et l'écrêtage du baril pour modifier la forme de l'ouverture de la caméra. Cela influence l'aspect du bokeh qui résulte de la composante Volume deprofondeur de champ.