IFT3730: Infographie 3D Illumination locale Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal
Illumination (1) Jusqu’à présent, nous nous sommes principalement intéressés aux aspects « géométriques » de la formation d’images Mais une fois que les points 3D visibles sont connus, on doit répondre à la question suivante: « De quelle couleur doit-on afficher ces points si la scène contient des sources de lumière? »
Illumination (2) Cette couleur est le résultat de l’interaction de la lumière avec la scène Pour un point 3D donné, cette couleur dépend de plusieurs facteurs : position du point dans l’espace orientation du point (élément de surface) caractéristiques de réflexion et réfraction de la surface configuration des sources de lumière
Définitions Illumination définit le transport de la lumière dans la scène. C’est l’illumination qui détermine la quantité d’énergie lumineuse en un point donné ainsi que sa provenance Shading spécifie comment l’illumination est calculée sur un polygon (e.g. à chaque point, à chaque sommet, à un seul point)
Définitions Illumination locale ne considère que la contribution directe des sources de lumière Illumination globale considère la contribution directe des sources de lumière et la lumière interréfléchie entre les surfaces de la scène (sources de lumière secondaires)
Exemple Illumination Illumination locale Illumination globale
Lumière La lumière est émise par les sources de lumière et interagit avec les objets de la scène Nature duale : ondulatoire particulaire
Photon (1) Un photon transporte une certaine énergie à une longueur d’onde donnée (couleur) A chaque interaction (réflexion, réfraction, absorption), un photon peut changer sa direction et/ou sa couleur (changements spatial et spectral)
Photon (2) Si la longueur d’onde entre d’un photon est entre , il est alors visible par l’oeil humain Si un photon passe par la position de l’oeil tout en traversant la fenêtre graphique, sa couleur contribue au pixel qu’il traverse
Simuler l’illumination Observateur (caméra) Grille image Simuler le réel demanderait de générer une "infinité" de photons. Le problème doit donc être simplifié.
Modèles de réflexion locale
Modèles de réflexion locale Le modèle de réflexion locale ne traite que de l’illumination directe les ombres sont traitées séparément (sauf ray tracing) aucune interréflexion Les trois types de réflexion les plus communes sont Diffuse Spéculaire Ambiante
Modèle de réflexion locale On combine ces trois types pour obtenir un modèle de réflexion plus complet Ambiante Diffuse Spéculaire Combinée + + =
Lumière ambiante (1) Sans interréflexion de la lumière, tout ce qui est dans l’ombre est noir (e.g. lune) La contribution de l’interréflexion entre les surfaces est un phénomène extrêmement complexe On simplifie l’illumination globale en parlant d’une lumière ambiante qui est partout la même, pour n’importe quelle direction Toute surface éclairée seulement par une lumière ambiante a un éclairage uniforme. Cette surface apparaît donc sans profondeur.
Lumière ambiante (2) Credit: Foley Van Dam
Lumière ambiante (3) Intensité de la lumière ambiante en un point donné (propriété de scène) Proportion de la lumière ambiante réfléchie par ce point (propriété de surface)
Réflexion diffuse Normalement, l’intensité de chaque point sur une surface varie en fonction de sa distance et de son orientation relative à la lumière Réflexion diffuse est égale en intensité dans toutes les directions Correspond intuitivement à ce que l’on perçoit comme la forme 3D Ex: peinture matte, papier, bois sablé
Réflexion diffuse Deux modèles pour expliquer ce type de réflexion ex.: de la craie ex.: du papier
La réflexion diffuse La réflexion diffuse ou lambertienne est associée à la perception de la forme des objets de type mat Plus la surface fait face à la lumière, plus elle en reçoit q
La réflexion diffuse La réflexion diffuse redistribue les photons également (en intensité) au-dessus de la surface
Réflexion lambertienne où et sont des vecteurs normalisés. On devrait utiliser pour toute orientation de surface « » mais on allège habituellement la formulation avec q Surface Proportion de la lumière diffuse réémise à ce point Intensité de la lumière en un point donné
Réflexion spéculaire La réflexion spéculaire apparaît sur des surfaces brillantes sous la forme d’une région de haute intensité que l’on appelle highlight Pour une surface parfaitement lisse (miroir), la direction de réflexion spéculaire est unique et correspond à N L q q R Observateur
Réflexion spéculaire : Phong (1) Si une surface est un peu rugueuse, un peu de lumière sera réfléchie spéculairement autour de Le modèle spéculaire de Phong fait décroître l’intensité de cette réflexion selon entre les directions et La réflexion spéculaire dépend de l’orientation de la surface ainsi que de la position de l’observateur et de la lumière q q a Observateur Surface
Réflexion spéculaire : Phong (2) n contrôle la rugosité de la surface telle que pour un miroir et une surface très rugueuse
Phong : rugosité n n=1 n=2 n=4 n=8 n=16 n=32 n=64 n=128 n=256 n=512
Réflexion spéculaire : Blinn Le modèle spéculaire de Blinn fait aussi décroître l’intensité selon Cependant, représente ici l’angle entre les vecteurs et est le vecteur bisecteur entre et a q q
Réflexion diffuse + spéculaire Lumière diffuse Lumière spéculaire “Combo”
BRDF (1) Bidirectional Reflectance Distribution Function Modèle simple diffus-spéculaire isotrope BRDF d’un modèle plus complexe anisotrope
BRDF (2) shading isotrope shading anisotrope
BRDF (3) Capture de la BRDF d’une surface complexe anisotrope Surface anisotrope Credit: McMillan
BRDF (4)
BRDF (5)
Lumières
Source de lumière Directionnelle contrôle: direction et intensité lumière située à l’infini (direction) rayons de lumière sont parallèles entre eux Ponctuelle contrôle: position et intensité rayons sont émis également dans toutes les directions émanant de ce point intensité décroît comme le carré de la distance
Lumière ponctuelle L’intensité varie "physiquement" comme où r est la distance d’un point à la lumière En pratique, ceci décroît souvent trop vite OpenGL permet : où sont des constantes (Angel, section 6.7)
Autres sources de lumière Spotlights: lumière ponctuelle qui émet dans une direction principale Sources de lumière surfaciques: lumières qui occupent une surface 2D (e.g. lumière encastrée) Sources de lumière étendue: lumière 3D (e.g. tube fluorescent)
Autres sources de lumière Contrairement aux sources de lumière directionnelles et ponctuelles, les sources de lumière surfaciques et étendues génèrent des ombres floues lumière ponctuelle: ombre nette lumière sphérique: ombre floue
Sources de lumière multiples Chaque lumière contribue à l’intensité finale Si la scène possède plusieurs sources de lumière, il faudra faire la sommation de la contribution de chacune La contribution ambiante n’est considérée qu’une seule fois Le modèle final correspond donc à
Modèle simple de couleur Chaque coefficient peut être considéré comme valide pour une longueur d’onde donnée Rouge Vert Bleu
Shadings
Shadings On peut calculer l’illumination en chaque point d’une scène, mais cette opération peut s’avérer être très coûteuse en temps de calcul Il est possible d’en réduire le coût en approximant l’illumination sur chaque polygone de la scène Ces approximations interpolent l’illumination lors de la projection sur la fenêtre Quelques types de shadings: flat Gouraud Phong
Shading Flat (constant) calcule l’illumination pour un point du polygone (centre ou un sommet) assume que cette illumination est la même sur tout le polygone couleur uniforme mais rapidement calculée valide si est constant : lumière directionnelle est constant : projection parallèle face polygonale
Calcul de normales des polygones Calcul analytique si on connaît la surface que le polygone approxime (ex: sphère) Moyenne des normales des polygones dont le sommet fait partie (ou moyenne pondérée par l’angle formé par ce polygone au sommet) Si une arête existe vraiment, un sommet a i normales dont une seule est choisie dépendant du polygone à rendre
Shading de Gouraud calcule l’illumination à chaque sommet du polygone (normale + illumination = couleur) interpolation bilinéaire des couleurs (tout comme on le faisait pour la profondeur) rapide mais peut rater des highlights, il faut alors un maillage plus fin de polygones élimine les discontinuités d’intensité, mais pas celles de pente d’intensité Crédit : E.Angel
Interpolation bilinéaire Obtenir la couleur à partir de , et Y X Interpole aussi: profondeur, texture, normale, etc.
Shading de Phong interpolation bilinéaire des normales pour tout point dans le polygone calcule l’illumination pour chaque normale interpolée Plus coûteux à calculer mais approxime beaucoup mieux les highlights
Flat vs. Gouraud vs. Phong
Normales aux sommets Flat shading Gouraud shading Phong shading Crédit : Foley Van Dam
Flat vs. Gouraud vs. Phong Flat Gouraud Gouraud Phong Virginia University
Problèmes de l’interpolation (1) Silhouette polygonale Distorsion due à la projection en perspective
Problèmes de l’interpolation (2) Dépendance d’orientation 1 1 1
Problèmes de l’interpolation (2) Sommet en T Normales comme une mauvaise représentation 1 1 1 1 1
En résumé Illumination locale vs globale Modèles de réflexion Ambiant Lambertien (diffus) Spéculaire (Phong, Blinn) BRDF Modèles de lumière Pontuelle Directionnelle Surfacique Shadings Flat Gouraud Phong Problèmes