Connexion
Pour récupérer votre compte, veuillez saisir votre adresse email. Vous allez recevoir un email contenant une adresse pour récupérer votre compte.
Inscription
En vous inscrivant, vous acceptez les conditions d'utilisation du site et de nous vendre votre âme pour un euro symbolique. Amusez vous, mais pliez vous à la charte.
 
ARTICLE

The Physical Based Rendering Dossier - Partie II

Ze_PilOt par Ze_PilOt,  email  @Ze_PilOt
 
Une grosse différence entre le PBR et l'ancienne façon de faire se situe au niveau de la gestion de la lumière sur le matériau. Précédemment, la lumière était gérée au niveau du matériau, et un shader avait ce genre de paramètres :

Un Blinn et un Phong, reliques des temps anciens mais malheureusment pas encore tout à fait oubliés.

Ils définissent deux choses : Le flou de la réflexion et son étalement. L'étalement est en réalité causé par la taille de lampe et n'est pas une propriété du matériau.

Non seulement ce genre de shaders était plus complexe à régler, mais en intégrant des propriétés de lampes dans les propriétés des matériaux, il se crée des incohérences d'une scène à l'autre:

Variations des paramètres d'un shader Phong. Le point lumineux représente la source lumineuse, mais ignore complétement sa forme ou sa taille.

Un plastique aura le même look qu'il soit éclairé à la lampe de poche ou par de gros diffuseurs photographiques : on retrouve invariablement le même cercle blanc de la même taille. Pire, il sera dur d'éviter ce genre de problème au sein de la même scène. Un matériau semblera éclairé par une petite source lumineuse alors que son homologue à coté aura l'air d'être eclairé par une source immense, car il sera difficile de garder des réglages homogènes. Et faire cotoyer une petite reflexion à coté d'une grande était techniquement complexe.

Oh, il y a bien des petits malins qui ont réussi à lier un paramètre dans une lampe à la taille de ces points lumineux, mais en plus d'être complexe, la forme n'est toujours pas prise en compte.

La forme

Dans la page 1, je disais qu'une source lumineuse est toujours omni-directionnelle. Cependant, par praticité, on ignorera volontiers une grand partie de la sphère d'émission dans un moteur de rendu pour simuler certains types d'éclairages emblématiques :
  • Une lumière directionnelle simulera une omni-directionnelle très lointaine (par exemple le soleil).
  • Un "spot" n'est rien d'autre qu'une lumière omni-directionnelle à l'intérieur d'une boite.
  • Une "area light" simulera une lumière omni-directionnelle à travers un diffuseur de lumière.
  • ....
Dans un moteur PBR, l'éclairage est complétement dissocié du matériau. De ce fait, la forme et la taille relative d'une lampe seront gérés correctement.

Trois area lights de tailles différentes. Le flou est un paramètre du matériau, tandis que les lampes sont placée visuellement au bon endroit, avec la taille voulue, tel des plans.

Les ombres

Une ombre n'est rien d'autre qu'une absence de lumière provoquée par un objet faisant obstacle à une lumière. Dans un rendu non PBR, il arrive qu'on colore les maps d'ombre. Ca n'a bien sûr physiquement aucun sens sauf si une partie de la lumière passe à travers l'objet (un vitrail par exemple). Mais le plus interessant est le flou de l'ombre. Il est directement lié à la taille (relative) de la source lumineuse :

Si l'on trace le trajet de chaque point constituant une source lumineuse, on comprend vite ce qui crée les zones de flou : Ce sont des zones partiellement éclairées.

Et c'est là l'un des gros avantage du PBR : En découplant l'éclairage des paramètres des matériaux, une lampe créera des ombres et des réflexions en relation avec sa taille. L'artiste chargé d'éclairer une scène peut le faire sur n'importe quel matériau. L'artiste chargé du matériau d'un objet peut le faire sous n'importe quel éclairage. Les deux réunis seront toujours corrects l'un par rapport à l'autre. De ce fait, un personnage ou objet d'un jeu peut se balader sous n'importe quelle condition d'éclairage sans avoir besoin de retouche. De même, on pourra créer des niveaux sans se soucier des objets définitifs qui seront dedans. Et grâce à la conservation de l'énergie, le résultat final restera toujours naturel.

Une petite lampe crée une ombre nette et un petit point de réflexion, une grosse lampe crée une ombre floue et une plus grande réflexion.

Où en est le temps-réel ?

J'ai parlé jusqu'ici du PBR de manière générale. Le rendu pré-calculé emploie ces techniques depuis de nombreuses années, et le temps de calcul permet d'utiliser les effets les plus coûteux. Le temps réel commence seulement à adopter ces techniques, et la puissance des cartes graphiques ne permet pas encore d'aller très loin.
Au niveau des restrictions, les ombres sont un gros soucis. Calculer des ombre floues en temps réel
n'est pas trivial, et on a toujours affaire à des techniques (shadow maps, ....) encore très loin d'être physiquement correctes.

Je n'ai pas parlé dans mes articles du rebond de la lumière. En quittant un objet, la lumière peut en toucher un autre, et un autre, ... avant d'atteindre la caméra de rendu. Ce calcul est très lourd à effectuer, et il est, jusqu'ici, toujours pré-calculé. Certains moteurs (Unreal Engine 4, CryEngine,...) commencent à avoir des techniques viables mais lourdes pour les calculer en temps réel.

Les jeux récents ont ce qu'on ce qu'on appelle "l'occlusion". La encore, un concept qui n'a aucun sens en PBR. Il est accompagné du concept de lumière ambiante, qui est une manière simpliste de simuler de la lumière indirecte. Le plus souvent, la lumière du ciel, qui n'est rien d'autre que la lumière du soleil diffusée dans l'atmosphère. L'ombre de cette lumière "globale" ou ambiante venant de toutes les directions, elle crée donc une ombre très diffuse, simulée par de l'occlusion. En temps réel, il n'y a malheureusement pas encore d'alternative viable à cette approximation.

Eve Online est possiblement l'un des jeux qui peut outrepasser ces limitations de par son environnement. Et avouez que ces matériaux réagissant correctement à la lumière en jettent.

Vers une uniformisation?

Techniquement, très certainement, et tant mieux. Mais la question que l'on peut se poser est : "Si tous les moteurs essayent de faire le rendu en utilisant les même techniques, ne risque-t-on pas d'avoir que des jeux qui se ressemblent?"
La réponse est non. Le PBR essaie de reproduire ce qui se passe dans la nature. Deux plastiques ou deux bois seront rarement identiques. Certains lieux sur terre sont à peine croyable visuellement. Ne parlons même pas d'autres astres. Et si le PBR se borne à utiliser des formules physiques crédibles, ca ne veut pas dire qu'il est impossible d'y rentrer des paramètres sur-réalistes afin d'obtenir un look particulier. Ou même de casser certaines règles volontairement. Le dernier Pixar, Gravity et Pacific Rim utilisent tous les 3 un moteur et des techniques PBR. Se ressemblent-ils?
Mais le jeu vidéo n'a pas attendu le PBR pour que certains jeux se ressemblent. Le directeur artistique est à blâmer ici.
Rechercher sur Factornews