Accueil Articles Tutoriels Forums
Normal Mapping sous Gimp
Créé par killpatate le 04 Sep 2008 à 18:07, dernière modification le 09 Sep 2008 à 00:09
Image

Introduction

Dans la création d'un jeu vidéo, les programmeurs rusent toujours pour trouver la meilleur façon d'obtenir un rendu graphique toujours plus beau, mais aussi le plus fluide. Il existe ainsi beaucoup de façons de faire, comme le Level of Detail ou bien le Normal Mapping. Sous ces termes barbares se cachent en réalité quelques manipulations pour obtenir des graphismes plus poussés avec avec une texture plus travaillée !
Nous allons voir ici comment partir d'une photo pour obtenir cet effet qu'est le Normal Mapping. Cette technique est valable pour n'importe qu'elle jeu, ici le rendu sous Doom 3 peut très bien être transposé pour Half-life 2, ou d'autres jeux utilisant cette technologie.

Si vous désirez plus d'information sur cette technologie, quelques recherche sur Google donnent des liens intéressants, vous pouvez aussi lire l'article du Bump Mapping sur Wikipédia France il s'agit du même procédé, avec quelques petites nuances tout de même. Pour un article complet, toujours sur Wikipédia, mais en anglais, l'article sur le Normal Mapping expliquer clairement la chose !


Les outils

Aujourd'hui, pas besoin de grand chose ; en réalité je vais vous fournir l'image de base que j'ai créé pour l'occasion ; il vous restera à télécharger et installer un plug-in (greffon en français) qui s'appelle tout simplement GIMP Normalmap plugin.

Voici donc l'image de base que j'ai fait sous Photoshop à partir d'une photo du site : CGTexture.
Image



Le plug-in Normal Map

Tout d'abord, commençons par installer le plug-in. Pour ce faire, rien de plus simple ! Mais prenons le cas pour chaque plateforme.


Windows

Par défaut, Gimp créé un dossier intitulé .gimp-2.4 que l'on trouve dans le dossier d'utilisateur ; à l'intérieur se trouve le dossier Plug-in, il suffit alors de coller les fichiers de l'archive dans ce dossier.


Linux

N'étant pas un utilisateur de Linux je ne peux vous donnez la marche à suivre, cependant les Linuxiens sont généralement suffisamment bidouilleurs pour parvenir à un résultat. Toutefois, ne voulant pas laisser mes élèves dans le doute le plus profond et un désarroi total ( :love: ), je vous donne le lien de la documentation officiel et française de Gimp !


Mac

Tout comme pour le système Linux, je ne suis pas utilisateur de Mac ; et je n'ai donc aucune idée de la marche à suivre ! Allez sur la documentation pour de l'aide, sinon n'hésitez pas à venir sur les forums, on trouvera bien comment faire :lol:


A l'assaut du plug-in :twisted:

Une fois installé, lancez le logiciel Gimp ainsi que l'image. Rendez-vous dans Filtres > Carte > Normal Map
Image


Image
S'ouvre maintenant une fenêtre avec énormément d'options. Pas d'inquiétude, c'est plus simple qu'on ne le croit.
Voyons tout ça dans l'ordre, cependant je vous mets les points les plus importants avec la balise attention.

Filter : Il s'agit d'une échelle ; en fait selon le filtre choisi, notre NM sera plus ou moins fin. Vous pouvez les tester pour voir rapidement le résultat avec la preview.

Minimume Z : Option inconnue au bataillon ; il s'agit d'une option pour régler la hauteur mais je risque de dire des idioties...

Scale : L'échelle de votre NM ; dans le cas ici présent j'ai choisi un nombre très élevé, peut être trop, afin d'obtenir un niveau assez poussé, n'utilisant que le NM. Pour cet exemple, en théorie, il faut lier la texture avec d'autres types : Specular Map et Diffuse Map.

Height Source : Source de couleur qui détermine la hauteur, vous en aurez rarement besoin si vous travaillez à partir d'une photo non retouchée.
Alpha Channel : Votre canal alpha, l'image finale doit être en format Targa, vous toucherez rarement cette option puisque l'on utilise le canal pour la transparence.
Conversion : Quelques filtres spécifiques au NM, rien à dire.
DU/DV Map : Sans trop pouvoir m'avancer, il doit s'agir de l'échantillonnage de votre image.
Contrast : Les contrastes ? Jamais utilisé...

Option :
Wrap : J'ai toujours laissé cocher mais je ne sais pas à quoi sert vraiment cette option...
Invert X : Inverser l'image en X.
Invert Y : Inverser l'image en Y.
Swap RGB : Sauf erreur de ma part, pour ne pas utiliser les canaux de couleur RGB.

Les options de la fenêtre preview sont utiles uniquement pour le rendu actuelle ; n'hésitez pas à bidouiller un peu tous les boutons !


Cas pratique

La texture est maintenant prête, on peut ainsi voir un rendu en 3D temps réel. Je vous ai fait une capture d'écran sous Doom 3 pour que vous voyez à quoi cela ressemble in game !

Image Image
Filter : 3x3 / Scale : 20 | Filter : 9x9 \ Scale : 20



Format d'image

Attention, l'utilisation de cette technologie demande certaines spécificités techniques précises. Tout d'abord cela inclut à votre image l'utilisation d'une couche alpha. Si vous avez lu le dossier sur les textures, vous verrez que le choix de formats est vite limité ! Et pour cause, on utilise généralement le format TGA. Ce dernier étant portable, on s'assure d'une portabilité vers différentes plateformes, notamment sur certaines consoles. L'autre format possible est le DDS, créé par Microsoft. Le choix importe selon vos travaux.


Pendant que je suis là, je signale aussi que lorsque vous enregistrez en format Targa, n'activez pas la compression RLE !



Conclusion

Vous voilà maintenant capable d'utiliser la technologie du Normal Mapping. Cependant, attention, il est fortement conseillé d'utiliser cette technologie avec le Diffuse et le Specular Mapping en complément pour obtenir un résultat vraiment probant !

The Gimp sur Wikipedia.
Greffon GIMP normalmap plugin.
Actualité Française sur Gimp.
Communauté française sur Gimp.