Rendu basé sur la physique
Vous êtes sur la bonne voie lorsque vous dites "il essaie d'imiter la façon dont la lumière se reflète dans la vie réelle, c'est-à-dire qu'elle est généralement divisée en deux composants, spéculaire et diffus en fonction du type de matériau".
Mais nous modélisons des matériaux spéculaires et diffus dans les jeux et l'infographie depuis longtemps. L'astuce est que nous avions l'habitude de gérer ces choses comme complètement indépendantes - changer la spécularité n'a pas changé le diffus:
Ceci est un exemple d' ombrage Phong du wiki Blender . Vous pouvez voir qu'il offre deux paramètres d'intensité spéculaire et de dureté spéculaire, et ces paramètres ne modifient que la partie blanchâtre de la réflexion. La réflexion diffuse bleue ne change pas du tout.
La façon dont les jeux utiliseraient cela est qu'un artiste serait chargé de régler manuellement ces valeurs pour chaque matériau jusqu'à ce qu'il "paraisse bien". Parce que la «dureté spéculaire» n'est pas une véritable propriété physique des matériaux que nous pouvons mesurer avec précision, elle devait être faite à l'œil nu.
Cette méthode est un peu fragile. Lorsque vous modifiez l'éclairage (par exemple, un objet dynamique se déplaçant dans différentes zones, ou dans un environnement avec l'heure du jour et la météo), il peut sembler subtilement faux - trop lumineux ou trop sombre - car les conditions de visionnement ne sont pas les mêmes que ceux pour lesquels ses paramètres spéculaires ont été réglés.
Entrez le rendu basé sur la physique, qui est une tentative de fonder nos descriptions de matériaux dans des propriétés plus objectives et mesurables de surfaces réelles. L'une des propriétés les plus apparentes est la conservation de l'énergie - une surface plus rugueuse diffusera la lumière de manière diffuse et une surface plus lisse / plus métallique réfléchira la lumière plus directement, mais c'est le même pool de lumière dont ils tirent tous les deux. Donc, toutes choses étant égales par ailleurs, lorsque nous rendons un matériau plus brillant, le composant diffus devrait devenir plus sombre:
Cet exemple provient d'un article de Marmoset expliquant le PBR initialement partagé par Syntac_
Le rendu basé sur la physique ne se limite pas à la conservation de l'énergie, mais c'est probablement le signe le plus révélateur que vous travaillez avec un système basé sur la physique.
En gardant les modèles de réflexion similaires à la façon dont les matériaux fonctionnent dans la vie réelle, nous réduisons le besoin de facteurs de fudge et de subjectivité de l'artiste pour donner à un matériau du monde réel comme le bois ou le béton ou le cuir un aspect réel dans une grande variété de conditions d'éclairage.
Notez qu'une autre réponse décrit cela en termes d'éclairage indirect par la lumière qui rebondit sur d'autres objets de la scène. Bien que de nombreux systèmes d'éclairage qui utilisent des modèles physiques incluent également des outils pour modéliser cela, il est généralement connu sous un nom distinct de Global Illumination . C'est l'effet qui fait apparaître un côté de la tête diffuse dans cette image en vert, éclairé par la lumière qui rebondit sur le mur vert:
Image de cet article sur l'illumination globale
Réflexion de l'espace d'écran
Alors que PBR essaie de modéliser la façon dont le matériau réfléchit la lumière, Screenspace Reflection essaie de capturer ce qui est réfléchi - en particulier, pour une surface brillante semblable à un miroir, que dois-je voir dans la réflexion?
Encore une fois, il s'agit d'une technique de rendu relativement récente qui est probablement la plus claire à comprendre, contrairement à la façon dont les jeux le faisaient auparavant:
Rendu inversé - courant pour les plans d'eau ou les miroirs plats, nous rendons littéralement la géométrie réfléchie une deuxième fois en miroir sur le plan de la surface réfléchissante. Cela donne des réflexions de haute qualité (tous les détails, les objets en contact avec la surface s'alignent avec leurs réflexions) mais ne fonctionne correctement que pour les surfaces planes. Plus une surface est ondulée ou bosselée, moins elle se comporte comme de vrais reflets, qui devraient se déformer ou se brouiller de manière complexe.
Cartes de cube - stockons la couleur qui serait vue par n'importe quel rayon de vue rayonnant à partir de leur point central. En effectuant un rendu dynamique des cartes de cube à partir de points sélectionnés dans la scène, nous pouvons estimer la couleur à refléter sur toute surface incurvée arbitrairement. Le problème ici est que la carte du cube n'est complètement correcte qu'à son point central - comme le point où nous simulons la réflexion se déplace autour de la scène, il devrait voir une certaine parallaxe, qui n'est pas présente dans la carte du cube. Cela signifie que les objets n'ont pas tendance à s'aligner sur leurs reflets.
La réflexion Space Screen essaie de remédier à ces limitations en utilisant la scène rendue elle-même comme source d'informations de réflexion. Il trace un rayon de vue réfléchi en utilisant la profondeur de la scène jusqu'à ce qu'il intersecte quelque chose dans la scène rendue.
Voici une diapositive d'une présentation EA DICE sur leur approche des réflexions dans le moteur Frostbite .
Cela signifie (avec un travail algorithmique intelligent) que nous pouvons obtenir des réflexions avec une précision raisonnablement semblable au lancer de rayons sur des surfaces arbitraires dans les jeux, en ayant un alignement correct des surfaces en contact, une distorsion et un flou, tant que la partie réfléchie de la surface est visible sur -écran (c'est-à-dire non hors écran ou occlus par autre chose). Lorsque la réflexion ne peut pas être déterminée avec précision par le raymarching, elle est généralement approximée à l'aide d'échantillons à proximité ou d'un cubemap de secours représentant la scène à côté / derrière la vue de la caméra.
Vous pouvez voir dans cet exemple de réflexion d'espace d'écran , l'impression peut être très convaincante, bien que de petites erreurs soient perceptibles (voir la réflexion du dessous des cubes, qui ne sont pas visibles dans le cadre rendu et donc simplement étaler et répéter les pixels adjacents, ou les trous dans la réflexion du rideau vert droit à côté du pot de fleur et au bas de l'écran, où le raymarching n'a pas réussi à trouver les pixels réfléchis à droite). Il est courant d'utiliser cette technique pour les surfaces modérément brillantes / légèrement rugueuses pour aider à rendre l'erreur occasionnelle moins visible.