Environnement et post-traitement

Godot 3 fournit une ressource Environnement repensée, ainsi qu’un tout nouveau système de post-traitement avec de nombreux effets disponibles directement.

Environnement

La ressource Environnement stocke toutes les informations nécessaires au contrôle de l’environnement de rendu. Cela comprend le ciel, l’éclairage ambiant, la cartographie des tons, les effets et les réglages. Par elle-même, elle ne fait rien, mais elle devient active une fois utilisée dans l’un des endroits suivants par ordre de priorité :

Nœud Camera

Un environnement peut être réglé sur une caméra. Il aura la priorité sur tout autre réglage.

../../_images/environment_camera.png

C’est surtout utile lorsque vous voulez remplacer un environnement existant, mais en général c’est une meilleure idée d’utiliser l’option ci-dessous.

Nœud WorldEnvironnement

Le nœud WorldEnvironment peut être ajouté à n’importe quelle scène, mais un seul peut exister par arbre de scène actif. Si vous en ajoutez plus d’un, vous recevrez un avertissement.

../../_images/environment_world.png

Tout environnement ajouté a une priorité plus élevée que l’environnement par défaut (expliqué ci-dessous). Cela signifie qu’il peut être remplacé par scène, ce qui le rend très utile.

Environnement par défaut

Un environnement par défaut peut être défini, ce qui agit comme une solution de repli lorsque aucun environnement n’a été défini sur une caméra ou WorldEnvironment. Il vous suffit de vous rendre dans Paramètres du projet -> Rendu -> Environnement :

../../_images/environment_default.png

Les nouveaux projets créés à partir du Gestionnaire de projets sont livrés avec un environnement par défaut (default_env.tres). S’il est nécessaire d’en créer un, sauvegardez-le sur disque avant de le référencer ici.

Options d’environnement

Vous trouverez ci-dessous une description détaillée de toutes les options d’environnement et de la façon dont elles doivent être utilisées.

Arrière-plan

La section Arrière-plan contient les paramètres sur la façon de remplir l’arrière-plan (parties de l’écran où les objets n’ont pas été dessinés). Dans Godot 3.0, l’arrière-plan ne sert pas seulement à afficher une image ou une couleur, il peut aussi changer la façon dont les objets sont affectés par la lumière ambiante et réfléchie.

../../_images/environment_background1.png

Il y a plusieurs façons de régler l’arrière-plan :

  • Clear Color utilise la couleur claire par défaut définie par le projet. L’arrière-plan sera d’une couleur constante.
  • Couleur personnalisée comme Clear Color, mais avec une valeur de couleur personnalisée.
  • Sky vous permet de définir un ciel panoramique (une texture de sphère de 360 degrés) ou un ciel procédural (un ciel simple avec un dégradé et un soleil en option). Les objets le reflètent et absorbent la lumière ambiante.
  • Couleur+Ciel vous permet de définir un ciel (comme ci-dessus), mais utilise une valeur de couleur constante pour dessiner le fond. Le ciel ne sera utilisé que pour la réflexion et la lumière ambiante.

Lumière ambiante

L’ambiante (tel que défini ici) est un type de lumière qui affecte chaque pièce de la géométrie avec la même intensité. Elle est globale et indépendante des lumières qui pourraient être ajoutées à la scène.

Il existe deux types de lumière ambiante : la Couleur ambiante (qui est une couleur constante multipliée par l’albédo du matériau) et celle obtenue à partir du Sky (comme décrit précédemment, mais un ciel doit être défini comme fond pour que cela soit activé).

../../_images/environment_ambient.png

Lorsqu’un Sky est défini comme arrière-plan, il est possible de fusionner la couleur ambiante et le ciel à l’aide du paramètre Sky Contribution (cette valeur est 1.0 par défaut par commodité, donc seul le ciel affecte les objets).

Voici une comparaison montrant comment différentes lumières ambiantes affectent la scène :

../../_images/environment_ambient2.png

Enfin, il y a un paramètre Énergie, qui est un facteur multiplicatif, utile lorsque l’on travaille en HDR.

En général, la lumière ambiante ne devrait être utilisée que pour des scènes simples, espaces extérieurs, ou pour des raisons de performance (la lumière ambiante est peu cher), car cela ne donne pas le meilleur rendu. Le mieux est de générer la lumière ambiante à partir de ReflectionProbe ou de GIProbe, cela donnera un rendu plus fidèle de la propagation de la lumière. Ci-dessous voici une comparaison en terme de qualité entre la lumière ambiante plate (flat) et GIProbe :

../../_images/environment_ambient_comparison.png

En utilisant une des méthodes décrites ci-dessus, les objets reçoivent une lumière ambiante constante remplacé par la lumière ambiante des probes.

Brouillard

Le brouillard, comme dans la vie réelle, fait disparaître des objets éloignés dans une couleur uniforme. L’effet physique est en fait assez complexe, mais Godot fournit une bonne approximation. Il y a deux sortes de brouillard dans Godot :

  • Depth Fog: Celui-ci est appliqué en fonction de la distance de la caméra.
  • Height Fog: Celui-ci est appliqué à tout objet situé au-dessous (ou au-dessus) d’une certaine hauteur, quelle que soit la distance qui le sépare de la caméra.
../../_images/environment_fog_depth_height.png

Ces deux types de brouillard peuvent avoir leur courbe modifiée, ce qui rend leur transition plus ou moins nette.

Deux propriétés peuvent être modifiées pour rendre l’effet de brouillard plus intéressant :

La première est * * Sun amount * *, qui utilise la propriété Sun Color du brouillard. En regardant vers une lumière directionnelle (généralement un soleil), la couleur du brouillard sera changée, simulant la lumière du soleil passant à travers le brouillard.

La seconde est * * transmission Enabled * * qui simule une transmittance de la lumière plus réaliste. Dans la pratique, cela rend la lumière plus visible dans le brouillard.

../../_images/environment_fog_transmission.png

Tonemap

This feature is only available when using the GLES3 backend.

Sélectionne la courbe de tone-mapping qui sera appliquée à la scène, à partir d’une courte liste de courbes standard utilisées dans l’industrie du film et du jeu. Le tone-mapping peut rendre les zones claires et sombres plus homogènes, même si le résultat n’est pas très bon. Les options de tone-mapping sont :

  • Mode: Le mode de Tone mapping , peut être Linear, Reindhart, Filmic, or Aces.
  • Exposure: Tone mapping exposure qui simule la quantité de lumière reçue au fil du temps.
  • White: Tone Mapping blanc, qui simule où blanc est situé dans l’échelle (par défaut 1,0).

Exposition automatique (HDR)

This feature is only available when using the GLES3 backend.

Même si, dans la plupart des cas, l’éclairage et la texturation sont fortement contrôlés par les artistes, Godot permet une mise en œuvre simple du HDR (high dynamic range) avec le mécanisme d’exposition automatique. Ceci est généralement utilisé dans un souci de réalisme lors de la combinaison d’espace intérieures faiblement éclairé et d’extérieur. L’exposition automatique simule la caméra (ou l’œil) qui s’efforce de s’adapter entre les zones clairs et sombres et leurs différentes quantités de lumière.

../../_images/environment_hdr_autoexp.gif

La manière la plus simple d’utiliser l’exposition automatique et de s’assurer que les éclairages extérieurs ( ou les autres puissants éclairages ) aient une énergie au delà de 1.0. Ceci est obtenu en manipulant leur multiplicateur Energy ( sur la lumière elle-même ). Pour le rendre cohérent, Sky nécessite généralement aussi le multiplicateur d’énergie, afin de correspondre aux lumières directionnelles. Habituellement, des valeurs entre 3.0 et 6.0 sont suffisantes pour simuler un environnement intérieur-extérieur.

En combinant Auto Exposure et le post-traitement Glow (plus d’informations ci-dessous), les pixels qui passent au-dessus de la tonemap White saignent dans le glow buffer, créant ainsi l’effet de bloom typique en photographie.

../../_images/environment_hdr_bloom.png

Les valeurs contrôlables par l’utilisateur de la section Exposition automatique sont définies par défaut, mais vous pouvez toujours les modifier :

../../_images/environment_hdr.png
  • Echelle: Valeur pour mettre l’éclairage à l’échelle. Des valeurs plus lumineuses produisent des images plus lumineuses, des valeurs plus petites produisent des images plus sombres.
  • **Min Luma:**luminance minimale que l’exposition automatique visera pour ajuster. La luminance est la moyenne de la lumière dans tous les pixels de l’écran.
  • **Max Luma:**Luminance maximale que l’exposition automatique visera pour ajuster.
  • Vitesse: Vitesse à laquelle la luminance se corrige d’elle-même. Plus la valeur est élevée, plus la correction est rapide.

Effets de mi et post-traitement

Un grand nombre d’effets de milieu et de post-traitement largement utilisés, sont pris en charge dans l’Environment.

Screen-Space Reflections (SSR)

This feature is only available when using the GLES3 backend.

Bien que Godot supporte trois sources de données de réflexion (Sky, ReflectionProbe et GIProbe), elles peuvent ne pas fournir suffisamment de détails pour toutes les situations. Les scénarios où les Screen Space Reflections ont le plus de sens sont ceux où les objets sont en contact les uns avec les autres (objet au-dessus du sol, au-dessus d’une table, flottant sur l’eau, etc).

../../_images/environment_ssr.png

L’autre avantage (même si activée uniquement au minimum), est qu’il fonctionne en temps réel (alors que les autres types de réflexions sont pré-calculées). Cela peut être utilisé pour faire des personnages, des voitures, etc. réfléchir sur les surfaces environnantes lors du déplacement.

Quelques paramètres contrôlés par l’utilisateur sont disponibles pour mieux ajuster la technique :

  • Max Steps détermine la longueur de la réflexion. Plus ce nombre est élevé, plus c’est coûteux à calculer.
  • Fade In permet d’ajuster la courbe de fondu enchaîné, ce qui est utile pour rendre la surface de contact plus douce.
  • Fade Out permet d’ajuster la courbe de fondu enchaîné, de sorte que la limite de pas s’estompe en douceur.
  • Depth Tolerance peut être utilisée pour la tolérance d’impact des rayons dans l’espace de l’écran aux écarts. Plus la valeur est grande, plus il y aura d’écarts ignorés.
  • L’option Rugosité permet d’appliquer un flou de l’espace-écran pour obtenir une approximation de la rugosité des objets présentant cette caractéristique de matériau.

Gardez à l’esprit que les réflexions de l’espace-écran ne fonctionnent que pour une géométrie opaque réfléchissante. Les objets transparents ne peuvent pas être réfléchis.

Screen-Space Ambient Occlusion (SSAO)

This feature is only available when using the GLES3 backend.

Comme mentionné dans la section Ambiant, les zones que la lumière des nœuds lumineux n’atteint pas (soit parce qu’elle est à l’extérieur du rayon, soit parce qu’elle est dans l’ombre) sont éclairées par la lumière ambiante. Godot peut simuler cela en utilisant GIProbe, ReflectionProbe, le ciel ou une couleur ambiante constante. Le problème, cependant, c’est que toutes les méthodes proposées précédemment agissent davantage à plus grande échelle (grandes régions) plutôt qu’au niveau de la géométrie plus petite.

La couleur ambiante constante et le ciel sont les mêmes partout, tandis que les sondes GI et Reflection ont plus de détails locaux, mais pas assez pour simuler des situations où la lumière n’est pas capable de remplir d’éléments creux ou concaves.

Cela peut être simulé à l’aide de Screen Space Ambient Occlusion. Comme vous pouvez le voir dans l’image ci-dessous, son but est de faire en sorte que les zones concaves soient plus sombres, simulant un chemin d’entrer de la lumière étroit :

../../_images/environment_ssao.png

C’est une erreur courante d’activer cet effet, d’allumer une lumière et de ne pas être capable de l’apprécier. En effet, SSAO n’agit que sur la lumière ambiante et non sur la lumière directe.

C’est pourquoi, dans l’image ci-dessus, l’effet est moins visible sous la lumière directe (à gauche). Si vous voulez forcer SSAO à travailler aussi avec la lumière directe, utilisez le paramètre Light Affect (même si ce n’est pas correct, certains artistes aiment son aspect).

SSAO est plus esthétique lorsqu’il est combiné avec une véritable source de lumière indirecte, comme GIProbe :

../../_images/environment_ssao2.png

Le réglage de SSAO est possible avec plusieurs paramètres :

../../_images/environment_ssao_parameters.png
  • Radius/Intensity: Pour contrôler le rayon ou l’intensité de l’occlusion, ces deux paramètres sont disponibles. Le rayon est en unités mondiales (métriques).
  • Radius2/Intensity2: Un rayon/intensité secondaire peut être utilisé. La combinaison d’un AO à grand et à petit rayon fonctionne généralement bien.
  • Bias: Ceci peut être modifié pour résoudre l’auto-occlusion, bien que la valeur par défaut fonctionne généralement assez bien.
  • Light Affect: SSAO n’affecte que la lumière ambiante, mais l’augmentation de ce curseur peut également affecter la lumière directe. Certains artistes préfèrent cet effet.
  • Ao Channel Affect: If a value of zero is used, only the material’s AO texture will be used for ambient occlusion; SSAO will not be applied. Values greater than 0 multiply the AO texture by the SSAO effect to varying degrees. This does not affect materials without an AO texture.
  • Quality: Selon la qualité, SSAO prélèvera plus d’échantillons sur une sphère pour chaque pixel. La haute qualité ne fonctionne bien que sur les GPU modernes.
  • Blur: Type de noyau flou utilisé. Le noyau 1x1 est un simple flou qui préserve mieux les détails locaux, mais n’est pas aussi efficace (fonctionne généralement mieux avec le réglage de haute qualité ci-dessus), tandis que 3x3 adoucira mieux l’image (avec un peu d’effet dithering-like), mais ne conserve pas les détails locaux ainsi.
  • Edge Sharpness : Ceci peut être utilisé pour préserver la netteté des arêtes (évite les zones sans AO sur les plis).

Profondeur de champ / Flou lointain

This feature is only available when using the GLES3 backend.

Cet effet simule la distance focale sur les appareils photo haut de gamme. Il brouille les objets derrière une plage donnée. Il a une Distance initiale avec une région de Transition (en unités mondiales) :

../../_images/environment_dof_far.png

Le paramètre Amount contrôle la quantité de flou. Pour les flous plus importants, il peut être nécessaire d’ajuster la Quality afin d’éviter les artefacts.

Profondeur de champ / flou de proximité

This feature is only available when using the GLES3 backend.

Cet effet simule la distance focale sur les appareils photo haut de gamme. Il brouille les objets à proximité de l’appareil photo (agit dans la direction opposée jusqu’au flou). Il a une Distance initiale avec une région de Transition (en unités mondiales) :

../../_images/environment_dof_near.png

Le paramètre Amount contrôle la quantité de flou. Pour les flous plus importants, il peut être nécessaire d’ajuster la Quality afin d’éviter les artefacts.

Il est courant d’utiliser les deux flous ensemble pour concentrer l’attention du spectateur sur un objet donné :

../../_images/environment_mixed_blur.png

Lueur

This feature is only available when using the GLES3 backend.

En photographie et en film, lorsque la quantité de lumière dépasse le maximum supporté par le support (qu’il soit analogique ou numérique), elle se dirige généralement vers des zones plus sombres de l’image. Ceci est simulé dans Godot avec l’effet Glow.

../../_images/environment_glow1.png

Par défaut, même si l’effet est activé, il sera faible ou invisible. L’une ou l’autre de ces deux conditions doit se produire pour qu’il soit vraiment visible :

    1. La lumière dans un pixel dépasse le seuil HDR (où 0 est toute la lumière le dépasse, et 1.0 est la lumière au-dessus de la valeur de tonemapper White). Normalement, on s’attend à ce que cette valeur soit de 1,0, mais elle peut être abaissée pour permettre à plus de lumière de saigner. Il existe également un paramètre supplémentaire, HDR Scale, qui permet de mettre à l’échelle (éclaircir ou assombrir) la lumière qui dépasse le seuil.
../../_images/environment_glow_threshold.png
    1. L’effet Bloom a une valeur supérieure à 0 et, à mesure qu’il augmente, il envoie l’ensemble de l’écran au processeur de luminescence à des valeurs plus élevées.
../../_images/environment_glow_bloom.png

Dans les deux cas, la lumière commencera à saigner hors des zones les plus claires.

Une fois que la lueur est visible, elle peut être contrôlée avec quelques paramètres supplémentaires :

  • Intensity est une échelle globale de l’effet, elle peut être renforcée ou affaiblie (0,0 l’élimine).
  • Strength est la force avec laquelle le noyau du filtre gaussien est traité. Des valeurs plus élevées rendent le filtre saturé et le font se dilater vers l’extérieur. En général, il n’est pas nécessaire de changer cela, car la taille peut être ajustée plus efficacement avec les Niveaux.

Le Blend Mode de l’effet peut également être modifié :

  • Additive est le plus fort, car il ajoute simplement l’effet de lueur sur l’image sans qu’il n’y ait de mélange. En général, il est trop fort pour être utilisé, mais il peut être beau avec une faible intensité Bloom (produit un effet de rêve).
  • Screen est celui par défaut. Il assure que la lueur ne brille jamais plus que lui-même et fonctionne très bien comme un tout autour.
  • Softlight est la plus faible, ne produisant qu’une subtile perturbation des couleurs autour des objets. Ce mode fonctionne mieux sur les scènes sombres.
  • Replace peut être utilisé pour brouiller tout l’écran ou déboguer l’effet. Il montre simplement l’effet de lueur sans l’image ci-dessous.

Pour modifier la taille et la forme de l’effet lumineux, Godot propose Levels. Les petits niveaux sont des lueurs fortes qui apparaissent autour des objets, tandis que les grands niveaux sont des lueurs floues qui couvrent l’ensemble de l’écran :

../../_images/environment_glow_layers.png

La vraie force de ce système, cependant, est de combiner les niveaux pour créer des motifs lumineux plus intéressants :

../../_images/environment_glow_layers2.png

Enfin, comme les couches les plus hautes sont créées en étirant les petites images floues, il est possible que certains blocs soient visibles. L’activation de Bicubic Upscaling permet de s’en débarrasser, à un coût de performance minimal.

../../_images/environment_glow_bicubic.png

Ajustements

This feature is only available when using the GLES3 backend.

A la fin du traitement, Godot offre la possibilité d’effectuer quelques réglages standard d’image.

../../_images/environment_adjustments.png

La première est la possibilité de modifier la luminosité, le contraste et la saturation typiques :

../../_images/environment_adjustments_bcs.png

La seconde est de fournir un dégradé de correction de couleur. Un dégradé noir à blanc régulier comme celui qui suit ne produira aucun effet :

../../_images/environment_adjusments_default_gradient.png

Mais la création de canaux personnalisés permettra de mapper chaque canal à une couleur différente :

../../_images/environment_adjusments_custom_gradient.png