|
Télécharger |
Comprendre
le
Bump Mapping
![]() |
En 1978, Jim Blinn publie un article présentant un algorithme mathématique permettant de simuler des effets de relief à une texture. Cette technique a été appelée le bump mapping. Historiquement, le procédé de Blinn ne servait pas à faire du bump mapping tel qu'on l'entend aujourd'hui. Blinn travaillait sur un algorithme qui avait pour but d'accentuer les détails des images qui avaient perdu de leur qualité, soit à cause d'une mauvaise prise de vue, soit à cause de traitements numériques répétés qui, au fur et à mesure faisaient perdre une partie de la précision à l'image (en 1970, ils ne disposaient pas de la précision des outils informatiques d'aujourd 'hui). La hauteur était générée par une fonction aléatoire. Mais rapidement, il est apparu que le procédé de Blinn pouvait servir à générer les reliefs des textures, et donc tel a été le destin de cette invention. Bon alors, comment fonctionne le bump mapping de Blinn ? C'est ce que nous allons voir dans les prochains chapitres. Toutefois, avant d'y arriver, il nous faudra voir comment est géré l'éclairage d'une surface et comment on l'applique à cette surface, ainsi que quelques notions de mathématique. Pour terminer, je souhaite répondre à une question que certains lecteurs pourraient se poser. Pourquoi ne pas précalculer les reliefs. En fait, cette technique existe et se nomme le bump mapping précalculé. Toutefois, elle a un gros défaut. Les reliefs sont statiques, alors que la technique de bump mapping de Blinn permet d'avoir des effets de relief qui varient en fonction de la situation. Imaginez-vous dans un couloir sombre avec une chandelle à la main. Seul le bump mapping permettra de faire varier les reliefs des textures au fur et à mesure que vous avancez. D'ailleurs, un sale monstre vous attend au tournant ... Trop tard, il vous a eu. |
Vecteur, normale et interpolation
Il n'est pas question ici de fournir des définitions mathématiques, des termes de vecteur, normale ou interpolation, mais les idées qu'ils représentent afin que la majorité des lecteurs puissent suivre les explications des chapitres suivants.
Vecteur :
Lorsqu'on veut connaître le poids d'une orange, le volume d'un tas de foin, ... on utilise des grandeurs comme 5 Kg, ou 220 litres. Mais si on veut
parler, par exemple, du vent qui souffle, les grandeurs numériques sont insuffisantes. Ainsi lorsqu'on parle du vent, est-il intéressant d'avoir sa
vitesse mais aussi sa direction. C'est pour décrire ce genre de choses qu'on a créé les vecteurs.
Les vecteurs sont des grandeurs définies par un nombre et une droite orientée. Une droite orientée, ça veut dire une droite qui définit la direction du vecteur ET son sens. Méfiez-vous, quand on parle de direction en mathématique on ne précise pas le sens, ce n'est pas comme dans le langage courant.
Graphiquement, on représente un vecteur par une flèche. A l'écrit on représente un vecteur par une lettre en caractère gras ou avec une petite flèche au-dessus. La longueur d'un vecteur est appelée sa norme. Il existe une formule mathématique pour la calculer.
Normale :
Normale désigne en mathématique, le vecteur perpendiculaire à une surface et partant d'un point de cette surface. Pour une surface plate (ou plane
comme on dit en math), toutes les normales sont parallèles. Par contre, sur un terrain cabossé, elles n'ont pas toutes la même direction.

Dans le cas du bump mapping, les normales jouent un grand rôle et c'est elles qui vont permettre de définir le relief du terrain. En fonction de l'angle qu'elles présentent comparé à la base du terrain,on saura comment le terrain est cabossé.
Interpolation :
En mathématique, les points d'un graphique sont déterminés par une fonction, mais si on n'a que les points, il peut être intéressant de trouver une
fonction qui y corresponde. C'est Lagrange (mathématicien français) qui a mis au point cet outil mathématique très utile.
L'interpolation linéaire consiste à trouver une fonction qui relie deux points. C'est l'équation d'une droite. Une fois cette équation trouvée, on va pouvoir déterminer la valeur des points situés entre les deux points de référence ayant servi à définir l'équation de la droite.
Autrement dit, admettons que vous connaissiez la hauteur de quelques points d'une route. L'interpolation va vous permettre de trouver une fonction qui passe par ces points et qui permettra de trouver la hauteur de tous les autres points. Par trouver, il faut comprendre estimer. L'interpolation est une méthode d'approximation, et en règle générale, c'est une bonne méthode.
Méthode d'éclairage
Les méthodes d'éclairage sont des modèles mathématiques simulant les effets de lumière sur une surface. On distingue deux grands groupes de modèle mathématique. Les modèles globaux qui prennent en compte l'ensemble des interactions des effets lumineux d'une scène 3D. Le Ray-Tracing et la radiosité sont des modèles d'éclairage global. Et les modèles locaux, qui ne prennent en compte que les effets directs de lumière. On trouve dans ce groupe des méthodes comme celle de Lambert, Phong, ... Ces modèles ont l'avantage d'être rapides à calculer et donc compatibles avec les exigences de calcul en temps réel d'animations 3D comme les jeux.
Le bump mapping utilise généralement un éclairage de Phong. Ce modèle a l'avantage de bien prendre en compte les pics d'intensité de lumière, ce qui n'est pas le cas de la méthode de Lambert.

Lumière ambiante et diffuse
La lumière ambiante est un éclairage qui s'applique uniformément à toutes les parties d'un objet et dont on ne peut pas préciser la direction de
la source de lumière. Imaginez une pièce ronde dont les murs produiraient une lumière, aucun objet au centre de cette pièce n'aurait d'ombre.
La lumière diffuse est similaire à la lumière ambiante à ceci près qu'on peut déterminer la direction de celle-ci. Ce qui implique qu'il y aura des ombres à gérer. La lumière du soleil est un cas de lumière diffuse.
Lumière spéculaire
Elle correspond à un pic d'intensité de lumière qui peut apparaître sur une petite partie d'un objet réfléchissant et qui dépend non de la
direction de la lumière mais de la direction du regard de l'observateur. Ca vous paraît bizarre ? Quand on suit une voiture qui est éclairée par le
soleil, son pare-brise arrière peut vous éblouir, mais il ne s'agit que d'un point particulier et celui-ci persiste quelque soit votre position.
Normalement, la lumière spéculaire doit être prise en compte par les modèles d'éclairage, mais si ce n'est pas le cas, on utilise un artifice mathématique (ou une texture précalculée) pour ajouter la lumière spéculaire.

Différence entre ombrage et ombre portée
L'ombrage est l'ombre qu'un objet produit sur lui-même, alors que l'ombre portée est l'ombre qu'un objet produit sur un autre. Par exemple, la
planète Terre est éclairée par le soleil, mais seulement sur une partie, l'autre partie est dans l'ombre (c'est la nuit) et cette ombre (ombrage) est
produite par la planète Terre elle-même. De même, quand vous marchez au soleil, votre ombre se projette sur le sol, c'est l'ombre portée ou projetée.
Ombrage ou shading
Ce sont des méthodes d'application des modèles d'éclairage sur les objets 3D. Avant de voir un descriptif des méthodes les plus connues, il est nécessaire d'expliquer les différences de dénomination de ces méthodes. En anglais, ces méthodes sont appelées des shading et la traduction française est ombrage. Toutefois, il n'est pas rare de lire les expressions de lissage de Gouraud ou de Phong au lieu d'ombrage. En fait, les méthodes de Gouraud et de Phong permettent d'effectuer non seulement un ombrage des objets 3D mais aussi un lissage de la surface composée de polygones. On peut d'ailleurs le voir en regardant le graphique ci-dessous. Avec l'ombrage plat, on continue de percevoir nettement les différents polygones, tandis qu'avec les autres méthodes, l'objet apparaît beaucoup plus naturel et réaliste.

| Ecrit par GutsBlack le Jeudi 16 Juin 2005 |