(Titre bientôt disponible)

Par 01010110 Blog créé le 05/08/12 Mis à jour le 11/11/16 à 18h15

Voici la ligne éditoriale du blog :
____________________________________

Ajouter aux favoris

Édito

Travail en progression

Archives

Favoris

(Titre bientôt disponible)
Signaler

Le bump mapping est un terme que vous avez forcément déjà entendu il y a de cela un petit bout de temps. Très à la mode au milieu des années 2000, on en a surtout pas mal bouffé entre 2004 et 2007. Mais au fond si pas mal de monde voit à quoi cela ressemble, on ne cherche pas toujours à savoir comment cela marche. Effet tape-à-l'oeil pour certain, rendu "plastoc" pour d'autres, il n'empêche que sans cette technologie, nos jeux ne ressembleraient pas à grand-chose.

 

Le bump mapping, c'est bien.

Pour commencer, même si cette technique n'a eu des applications que relativement tardivement dans le jeu vidéo, il faut savoir qu'elle a été inventé à la fin des années 70 par un certain James Blinn. Bien entendu à l'époque, le procédé demandait beaucoup de ressource et n'était qu'une ébauche de ce que nous avons aujourd'hui. En gros, vous prenez une texture classique et le but est de donner à cette texture une illusion de relief. Le mot illusion est important puisque c'est justement parce que c'est une illusion que le truc est très intéressant.

Quake 4 (2005) nous montre que rien ne vaut une porte avec du bump mapping dessus

Pourquoi modéliser un mur de pierre bout par bout, polygones par polygones alors qu'une simple couche peut donner la même impression ? Car je rappelle tout de même que modéliser un objet 3D complexe (comme un mur) demande pas mal de ressource machine et le PC de 2005 ou la XBOX sont loin de pouvoir se permettre de claquer des polygones/seconde pour un pauvre mur. Et c'est là que le bump mapping trouve son utilité...


The Chronicles of Riddick : Escape from Butcher Bay (2004) : j'en connais un qui va se faire bump mapper...

Le terme définit en fait le procédé dans sa forme la plus simple, auquel vient ensuite se greffer des améliorations (si on veut) que sont le normal mapping, le reflexion mapping, le parallaxe mapping ou encore le displacement mapping. Mais ne vous barrez pas, en fait c'est cool. Surtout qu'à la fin, vous pourrez vous-même mettre les doigts dedans pour faire votre propre bump mapping en deux coup de cuillère à pot. Vous verrez, c'est rigolo.

Rage (2011) aussi envoie la purée.

 

Normal mapping/Bump mapping, c'est tout con en fait ?

En effet, en soi, c'est simple puisqu'au départ il vous suffit d'une image pour indiquer au logiciel l'effet que vous voulez donner à votre texture. La seule différence entre le bump et le normal mapping, c'est que le bump mapping est basé sur une image en niveau de gris (256 valeurs possibles donc). Bref, plus c'est foncé, plus le logiciel l'interprète comme un relief important (un trou ou une bosse).

Si vous voulez tester une texture lunaire, faites-vous plaisir.

Pour le normal mapping, c'est un peu différent puisque l'image n'est plus en noir et blanc, mais en couleur. Il y a le rouge, le vert et le bleu (rvb) et chaque couleur représente une dimension. Nous verrons plus bas que niveau profondeur c'est pas encore ça. Mais vous aurez compris que le normal mapping permet d'afficher davantage de détails et donne un plus grand réalisme à votre mur préféré.

Si vous voulez faire une texture de... si vous voulez faire une texture quoi.

En gros, le principe n'est pas de rendre l'information, mais de la capturer pour en livrer une copie presque conforme. On prend une texture compliquée, on l'aplatie et roulez jeunesse ! D'ailleurs, lorsqu'il vous prendra l'envie de bump mapper un truc par la suite, vous pourrez bien-entendu prendre n'importe quelle image et pas seulement les "maps classiques". Le logiciel fera le reste...

 

Faut que ça brille !

Bah oui, là vous vous dites certainement que ça manque de pimpant tout ça. Car c'est bien beau de mettre des effets, mais le bump mapping n'est rien sans un mother fucking algorithme d'ombrage. Bon alors je vous passe toutes ces joyeusetés et on va se contenter de mater le modèle de Phong (de l'informaticien vietnamien Bui Tuong Phong). L'image ci-dessous étant très claire, je vous laisse vous en délecter. Si vous faites du dessin, c'est un peu comme donner l'impression qu'un cercle est en fait une boule juste en appliquant des ombres au bon endroit. Inutile d'aller se faire du mal en creusant plus le bousin, il est 00:57 (en tout cas pour moi) et j'ai pas envie. Je suis sûr que vous non plus. Nan, ta gueule.


 

Les autres trucs compliqués qu'on comprend pas comment ça marche, mais c'est jolie donc on s'en fout

 

Reflexion mapping

Dans la famille mapping, je voudrais reflexion. Reflexion ! Oui, bonjour. Donc vous c'est marqué dessus, vous permettez de réfléchir l'environnement sur une texture c'est ça ? Nan. Ok, donc comme vos frangins, vous trichez un peu pour économiser des ressources c'est ça ? Belle mentalité de merde. Ah en fait vous stockez une image simulant un reflet sur un cube ou une boule pour ensuite le foutre sur une texture. Mmmm... d'accord.

 

Comme je n'ai pas trouvé d'illustration perminente, voici une photo de Michel Drucker.

 

Parallax mapping

M.Parallax ? Enchanté. Par contre, vous vous m'avez déjà saoulé. Nan, j'ai rien bitté à votre métier. Ok, donc si j'ai bien compris vous vous servez de monsieur normal mapping en exploitant l'axe des profondeurs de telle sorte que l'effet s'adapte aux mouvements du joueur. Vous créez un décalage en vous basant sur une sphère de déplacement... Ouais, nan, si, c'est super simple. C'est bon tout le monde a compris... Nan, ta gueule.

Splinter Cell : Chaos Theory (2005) nous prouve que les trous c'est classe

 

Displacement mapping

Et enfin le petit dernier, qui parait-il pompe un max donc il va faire vite hein ? Ouais bon c'est vrai que le résultat est pas mal, mais d'un autre côté quand les autres trichent, toi tu te base sur les nuances de gris pour carrément modifier la texture. Oui, mais tu comprends bien que là il s'agit de modifier géométriquement un objet donc c'est bourrin quoi...

 

 

 

 

 

 

Les avantages et les inconvénients

On pourra toujours dire que le rendu est discutable, avec des textures de bois ressemblants à du béton et l'impression que tout a prit la flotte, mais ça c'était avant. Aujourd'hui, tous les jeux utilisent le mapping, d'une façon ou d'une autre et cela reste le moyen le plus économique de proposer des graphismes qui trouent le cul. Certains moteurs de jeu s'en sont même fait une spécialité, comme Id (avec l'Id Tech) ou Epic avec l'Unreal Ungine. Sauf que maintenant, ce procédé passe quasiment inaperçu. Enfin presque...

Vous êtes forcément tombé sur ce phénomène de textures dégueulasses en attendant les "vraies" (coucou Unreal Ungine). Eh bien oui, il arrive que le mapping mette du temps à charger... Mais hormis ces deux-trois couilles dans le pâté, que ferait-on sans ? Que ferait-on sans le bump mapping ? Vous avez trois heures.

 Singularity (2010) : tiens, je viens de déterrer ce jeu... Problème streaming ?

 

Mais avant cela : récréation !

Allez, demerdez-vous et n'en foutez pas partout...

Ajouter à mes favoris Commenter (22)

Commentaires

diccy
Signaler
diccy
Pour la tesselation tu peux regarder ici aussi:
http://www.nvidia.fr...llation_fr.html
Ya juste à regarder les images et à y lire les sous-titrés pour comprendre ;).
jahkusa
Signaler
jahkusa
Merci beaucoup pour toutes ces explications, c'est clair pour quelque chose qui au final ne l'est pas forcément :)
SouriSotte
Signaler
SouriSotte
Très intéressant. Je viens d'apprendre des trucs qui ne me serviront jamais à rien, mais au moins maitenant je les sais !
J'aime tout particulièrement le ton employé. :)
01010110
Signaler
01010110
@Multani. Et bien de ce que j'ai compris, le but est le même (avoir un rendu plus réaliste), mais la méthode est différente et le résultat aussi. En gros, il s'agit de faire comme si on divisait les polygones (sans en demander les ressources) pour gagner en finesse. J'ai chopé une image qui est, me semble-t-il, assez parlante : http://www.guru3d.co...php?image=10143
Multani
Signaler
Multani
Ca a un rapport quelconque avec la tessellation? Ou pas du tout?
01010110
Signaler
01010110
Et bah je suis pas dans la merde ! Avec tous ces mots d'amour, j'ai forcément envie de continuer tout ça, mais j'ai un diplôme à obtenir cette année moi ! Vous faite tous chier... :)
Joystik-man
Signaler
Joystik-man
Merci pour cet article très intéressant . Maintenant t'as plus qu'a en faire d'autre :P
shingore
Signaler
shingore
Merci pour cet article enrichissant et intéressant. Cheers !
Kanakou92
Signaler
Kanakou92
Ah ah j'adore !
Des explications, de l'humour, des explications avec de l'humour. Que demander de plus ?
joss_beaumont
Signaler
joss_beaumont
Merci pour michel drucker, j'ai enfin compris à quoi il sert !
diccy
Signaler
diccy
Lol ptet pas très clair pour les néophytes Azrael :D!

Pour ceux qui ont déjà fait de l'optique (au lycée par exemple), dans l'optique géométrique (donc l'analyse de la propagation de la lumière avec des traits des des angles :P), un milieu plan possède un outil que l'on appelle une "norme" qui n'est autre que la perpendiculaire au plan du milieu. Un polygone est un plan, il a donc implicitement une norme, appelée "normal" en anglais, qui est donc la perpendiculaire à ce plan.
Chaque pixel d'une "normal map" (qui est une image rappelons-le) présente, via sa couleur, des informations d'orientation d'une norme. Les effets de la lumière dynamique seront ainsi calculées en fonction des informations de norme contenues dans un pixel de normal map, et non plus en fonction de l'unique norme du polygone :).
(si ça se trouve, ce n'est pas plus clair XD)

"la spéculaire est ultra importante, car sans elle on ne verrait pas l'effet du normal/bump mapping."
- (la map spéculaire permet de rendre l'illusion de lisse sur un matériau (ou de pas lisse, tout l'intérêt étant de jongler entre les deux pour parvenir à l'effet visuel désiré), genre bille de billard quand c'est poussé à l’extrême (un peu comme dans l'exemple de Phong). -
Je me permets de dire que ce n'est pas entièrement vrai. La spec permet d'avoir des points de lumières bien visibles, c'est surement ce que tu sous-entendais. Cela dit, la normal map permet de créer les ombres (et les lumières, mais de manière beaucoup moins marquée que la spec), et ça reste une part importante dans l'illusion d'un volume. Il suffit de voir son image "bump mapping" (à côté de la displacement mapping), qui ne contient pas d'information de spéculaire (ou de la spéculaire matte), on a quand même largement l'illusion du volume :).

Après, tout est question de réglages et de volonté de rendu. Il n'y a pas de règle, c'est ce qui permet la diversité étonnante que tous ces outils proposent :).
Azrael974
Signaler
Azrael974
Salut, Article très intéressant qui permet un tant soit peu d'expliquer comment cela fonctionne dans le monde du jeu vidéo actuellement.

J'aimerais juste rajouter quelques éléments : Le bump mapping et le normal mapping en général n'influent absolument pas sur la géométrie de l'objet. Il influe sur la lumière qui est refletée par l'objet. C'est la ou la speculaire est ultra importante, car sans elle on ne verrais pas l'effet du normal/ump mapping.

Pour un peu plus de complexité, si cela interèsse : un objet 3d est composé de face. Ces face possède des normals. Dans un cas général de base, lorsque vous allez illuminer un objet, ses normals renvoiront la lumière de façon très basique. (Faites un polygon avec une seule face, il ne renverra l'information de la lumère qu'a partir d'une seule normal, et vous aurez un truc moche).

La ou ces procédés rentrent en compte, c'est qu'ils remplacent le fait que la lumière refleté soit calculée par le nombre de normale en faisant en sorte que celle-ci soit calculée en fonction du nombre de pixel sur votre normal map. et c'est pour ca que la lumière est ultra importante, et que la gestion de la lumière est certainement ce qui constituera le gros progres des prochaines génération :o
Sora
Signaler
Sora
J'aime trop ton article depuis le temps je revais qu'ont m'explique des truc comme ca ! tu as d'autre article de ce genre ?
inFy
Signaler
inFy
Intéressant et bien fait.
ProfesseurOz
Signaler
ProfesseurOz
et un blog de plus en favoris, un !
Celimbrimbor
Signaler
Celimbrimbor
Merci, très clair et instructif.

Celim.
Memoire
Signaler
Memoire
Super article, merci
Gloumouf
Signaler
Gloumouf
Interessant =)
Linsk
Signaler
Linsk
je kiffe l'article. ;)

merci !
Bbali
Signaler
Bbali
Excellent article clair et concis sur un sujet passionnant ! Et en plus j'ai appris un truc (le modèle de Phong) ! Youpi !
Slaanesh
Signaler
Slaanesh
Ce bon vieux Bump Mapping. Je l'avais presque oublié. A l'époque les développeurs, et même les testeurs dans les magazines, ne juraient que par ça. Si t'avais pas mis du Bump Mapping, t'avais raté ton jeu !
Ink
Signaler
Ink
Très intéressant ! Cimer ! :)