Ombrage Phong

Image manquante
Phong_shading.png
Une sphère interpolée et rendue selon Phong

Aujourd'hui, le terme ombrage de Phong est utilisé à la fois pour le modèle d'illumination de Phong, et l'interpolation de Phong, deux algorithmes de traitement 3D en infographie. Tous les deux furent développés par Bui Tuong Phong.

Sommaire

Modelle d'illumination de Phong

L'illumination de Phong est un modèle local, c'est à dire qui calcule l'intensité en chaque point, et qui combine trois éléments - la lumière diffuse (modèle Lambertien), la lumière spéculaire et la lumière ambiente.

Il y a plusieurs présupposés à ce modèle : toutes les lumières sont assimilables à un point, il ne peut y avoir que des surfaces (pas de rendu en volume), et la lumière ambiente est supposée constante.

La composante diffuse, Id est donnée par :

Id = Iikdsinθ 0 \le \theta \le 2\pi

Avec Ii l'intensité de la lumière, θ l'angle entre la surface et la source de lumière et kd le coefficient de reflexion diffuse. On peut noter que, plus souvent, on utilise le cosinus de l'angle entre la normale de la surface et la lumière - cette technique est plus simple à mettre en oeuvre, mais revient, mathématiquement, au même.

Pour plusieurs sources lumineuses, on a :

I_d = k_d \sum_{n} I_{i,n} (L_n \cdot N)

Avec L et N des vecteurs unitaires, Ln le vecteur direction de la source de lumière n.

La composante spéculaire Is est donnée par :

I_s = I_i k_s \cos^n \Omega = I_i k_s (R \cdot V)^n

Avec n la reflectivité de la surface - un mirroir parfait possèderait un n infini, Ω l'angle entre la surface et l'observateur, R la direction de la lumière spéculaire et V le vecteur vue de l'observateur.

C'est une première faille du modèle de Phong : on ne peut appliquer ici la radiosité.

En combinant la lumière diffuse et spéculaire, on obtient un modèle globalement suffisant, mais, pour simuler la lumière résiduelle, Phong ajouta une troisième composante, la lumière "ambiante", indépendante du point de vue ou de l'objet.

La composante ambiente Ig est une constante, donnée par :

Ig = Iaka

Ce qui donne le modèle général d'illumination de Phong :

I = I_a k_a + I_i (k_d (L \cdot N) + k_s (R \cdot V)^n)

Les failles du modèle de Phong

L'interpolation de Phong

Cette méthode, à mettre en parallèle avec l'l'interpolation de Gouraud, produit de bons résultats de rendus, souvent plus réalistes que son prédécesseur.

Le principal problème de l'ombrage de Gouraud, c'est qu'il ne calcule que les points (vertex) des surfaces : une source lumineuse spéculaire placée au centre d'un triangle n'apparaitra pas. Ce problème est réglé avec l'interpolation de Phong.

Soit trois vertex en deux dimensions : v1, v2 et v3, ayant pour vecteurs unitaires normaux n1, n2 et n3. Comme pour l'interpolation de Gouraud, nous interpolons de façon linéaire une normale N sur toute la surface du triangle v1v2v3, seulement nous le faisons depuis les trois vecteurs normaux des vertex. C'est à dire que nous interpolons en fait les vecteurs normaux au lieu des couleurs.

A la différence de l'interpolation de Gouraud cependant, le calcul ne se fait pas sur 3 points par surface, mais pour tous les points d'une surface - ou plus raisonablement, sur plusieurs subdivisions de points. Cette méthode, bien plus lente, est parfois traitée par le matériel directement, ce sont les pixel shaders.

Voir aussi

See also: Ombrage Phong, Bui Tuong Phong, Ombrage Gouraud, Radiosité