Normal maps Tangent space

Document sans nom


Obtenir des Normal maps Tangent space dans Blender

Niveau :


Introduction


Blender ne disposant pas encore, à sa version 2.45, d'une fonction permettant de "baker" directement des normal maps tangent space, nous allons donc voir dans ce tutoriel comment obtenir ces maps, à partir d'un mesh en multires, sans passer par un logiciel externe.

(NOTE : A ce jour Blender dispose d'une telle fonction de bake en tangent space dans sa version 2.48, rendant ce tutoriel obsolète pour les versions récentes de Blender).

Nous utiliserons un fichier .blend que j'ai nommé "Normal map Tangent space Factory", que vous pouvez télécharger ici :

[nmap_ts_factory.blend]


Faisons d'abord le point sur les normal maps. Nous verrons ensuite brièvement la théorie nécessaire pour calculer des normal maps tangent space puis l'utilisation de la solution proposée. Ceux qui sont pressés peuvent passer directement à l'étape "Utilisation".



Le point sur les normal maps

Le normal mapping, ou dot3 bump mapping, est une technique qui permet d'ajouter du détail à l'ombrage sans ajouter plus de polygones, en modifiant les normales de la surface.
Alors que le bump mapping se contente de perturber les normales à l'aide d'une texture en niveau de gris, le normal mapping définit complètement les normales à l'aide d'une texture en RVB.

Ainsi, les valeurs de chaque canal (rouge, vert et bleu) représentent les coordonnées X, Y et Z du vecteur normal au point correspondant à ce pixel (plus justement un texel : texture element).
Cependant, le codage de ces coordonnées diffère selon l'espace de référence choisi.

En effet, on trouve trois espaces de référence :
  • Le camera space :
    C'est l'orientation de la caméra qui sert de référence.
    Il n'est valable que pour un objet qui ne bougera pas par rapport à la caméra.
    Utile seulement sur une scène fixe.
    C'est dans cet espace que Blender peut "baker" les normales d'un objet.

  • L'object space :
    L'orientation de l'objet sert ici de référence.
    Il est valable tant que l'objet ne subit pas de déformation.
    Utile dans une scène animée.
    La map n'est guère différente de la première. Seule la manière de la gérer est différente (le logiciel doit recalculer les normales par rapport à l'inclinaison de l'objet).
    Blender ne gère pas ce type de map.

  • Le tangent space :
    Enfin, dans le tangent space, c'est l'orientation de chaque faces qui sert de référence.
    Cet espace est défini pour chaque face, par la normale de celle-ci, ainsi que l'axe U et V de sa map UV.
    La map a la particularité d'être de couleur bleutée.
    Toujours valable même lors de déformation du mesh.
    Blender permet d'utiliser ce type de map dans un rendu, mais pas encore de les "baker".

Toutefois, nous pouvons obtenir des maps tangent space à l'aide d'une série de bake et de plusieurs calculs. C'est ce que nous allons voir.



Théorie

Nous utiliserons un modèle multi-résolution (mutlires) afin de plaquer les détails du modèle haute résolution sur le modèle basse résolution.

Nous allons "baker" en premier lieu la normal map du modèle haute résolution (nmap_pix), qui correspondra aux normales de chaque pixel, dans l'espace de référence caméra space.

Nous déterminerons pour chaque face son espace de référence (composé de trois vecteur que je nommerais U,V et Z), en "bakant" deux normal maps :
- La map des Z (nmap_vert), en "bakant" les normales du modèle basse résolution, qui représente le vecteur normal de chaque vertex dans l'espace de référence caméra space.
- La map des V (nmap_V) qui représente le vecteur V de l'UV, pour chaque face, dans notre caméra space.
La map des U, elle, sera calculée automatiquement (produit vectoriel) par les nodes à partir des deux précédentes.

Nous avons donc maintenant les normales de nos pixels, ainsi que l'espace U,V,Z de référence pour chaque face.
Il ne nous reste plus qu'à multiplier le vecteur du pixel (nmap_pix) à cette matrice U,V,Z (produit scalaire) pour obtenir notre normal map tangent space.



Utilisation de la "Normal map Tangent space Factory"

Requis :
Vous devez disposer d'un modèle en multires.
Celui ci doit déja être "unwrappé" à son premier niveau de résolution.

À partir de maintenant, toutes les maps que vous allez devoir créer devront avoir strictement la même taille.

1. Importation de votre mesh dans la "Normal map Tangent space Factory"
File / Append or Link
Choisir le mesh, et non l'objet. Sélectionner l'objet "Cube".
Dans le panel Editing / Link and Materials, choisir votre mesh à la place du "ME:Cube".



Passer en mode UV Face Select.
Garder le multires level à 1 jusqu'à la fin.

2. Baking de la "nmap_pix" (haute résolution)
Placer le Multires render au maximum.



Dans la fenêtre UV, créer une nouvelle image nmap_pix.
"Baker" les normales (Ctrl + Alt + B).



3. Baking de la "nmap_vert" (basse résolution)
Placer le Multires render à 1.



Dans la fenêtre UV, créer une nouvelle image nmap_vert.
"Baker" les normales.



4. Si le mesh est en "Set Solid" (aller à l'étape 5 dans le cas contraire) :
Dans l'onglet Editing / Modifiers, activer le modifier Edge Split durant le rendu (première icône Enable modifier during rendering)



5. Baking de la "nmap_V"
Dans l'onglet Material / Texture, activer la texture "V".



Dans la fenêtre UV, créer une nouvelle image nmap_V.
"Baker" les normales.



6. Utilisation des nodes pour générer votre normal map Tangent space
Dans la fenêtre Node Editor, charger les maps dans cet ordre, de haut en bas :

- nmap_pix
- nmap_v
- nmap_vert

Paramétrer le chemin d'enregistrement de votre map Tangent Space dans le node File Output.



7. Récupérer votre image dans le dossier choisi =)


Pour compléter ce tutoriel, voyons comment appliquer sur votre objet la normal map tangent space fraîchement calculée.

8. Application de la texture
Créer une nouvelle texture image sur votre material (panel Shading (F5) / Texture buttons).
Charger votre texture

Dans le panel Map image, activer le bouton Normal map.



Dans le panel Shaders, activer le bouton NMap TS



Dans le panel Map To, activer le Nor en négatif, et régler le slider sur 1,00.





Conclusion

Vous savez maintenant utiliser la solution proposée pour obtenir vos normal maps tangent space tout en ayant assimilé les notions principales de ce type de map.

tutoriel rédigé pour le Blender Clan par Zelouille, relecture par Traven et Meltingman, le 28 octobre 2007

    


Les commentaires appartiennent à leurs auteurs. Nous ne sommes pas responsables de leur contenu.

Sujets récemment répondus
Forums Sujets Réponses Lus Dernières contributions
The Blender Clan 'tchat Buy (50 Pieces) New Samsung Galaxy Z Flip4 128GB Unlocked $17,450 0 26 Hier 07:44:35
emailychang01 
The Blender Clan 'tchat Buy (30 Pcs) New Mac mini M2 (2023) 256GB SSD $8,970: www.cutebitelectronics.com 0 16 25/01 11:02:28
emailychang01 
The Blender Clan 'tchat Buy (50 Pcs) New iMac M1 24-inch (2021) 512GB SSD $44,950 Website: www.cutebitelectronics.com 0 21 24/01 09:21:49
emailychang01 
The Blender Clan 'tchat Buy (50 Pcs) Macbook Air M2 13.6-inch 512GB SSD $54,950 Website: www.cutebitelectronics.com 0 29 23/01 09:20:38
emailychang01 
Questions & Réponses circuit avec dévers 3 65 22/01 18:42:26
moonboots 
The Blender Clan 'tchat Buy (50 Pcs) MacBook Pro M2 14-inch 512GB SSD $79,950 0 31 21/01 10:19:51
emailychang01 
The Blender Clan 'tchat Buy (50 Pieces) New Apple iPad Air 10.9-inch (2022) 256GB Wi-Fi + Cellular $24,950 0 67 20/01 08:43:41
emailychang01 
The Blender Clan 'tchat Buy (50 Pcs) New Mac mini M2 (2023) 256GB SSD $9,950 Website: www.cutebitelectronics.com 0 61 19/01 08:19:28
emailychang01 
The Blender Clan 'tchat Buy (50 Pieces ) New Apple iPad Mini 8.3-inch (2021) 256GB Wi-Fi + Cellular $22,450 0 54 18/01 08:46:54
emailychang01 
Hors Sujet !! Victime de piratage 0 97 18/01 00:01:38
Lylo 
The Blender Clan 'tchat Buy (50 Pieces) New Apple iPad Pro 12.9-Inches 2021 1TB Wifi + Cellular $69,950 0 67 17/01 09:54:03
emailychang01 
The Blender Clan 'tchat Buy (50 Pieces) New Apple iPad Pro 11-Inches 2021 2TB Wifi + Cellular $79,950 0 76 14/01 19:23:01
emailychang01 
Questions & Réponses [non résolu] Material preview et résolution 0 68 13/01 10:13:25
zeromeetsinfinity 
The Blender Clan 'tchat Buy (50 Pieces) New Original Unlocked Apple iPhone 13 Pro Max 5G 1TB $54,950 0 74 12/01 09:21:35
emailychang01 
Hors Sujet !! Verifpro.net - paypal, ebay, banks, crypto, docs and more! 0 56 11/01 18:57:13
julien_costa 
The Blender Clan 'tchat Buy (50 Pieces) New Original Unlocked Apple iPhone 12 Pro 5G 512GB $24,950 0 81 11/01 07:45:50
emailychang01 
Questions & Réponses [non résolu] Soucis de pivots et rotations à l'import dans un fichier fbx avec parents/enfants 0 3189 10/01 16:32:57
Brice_Willus 
The Blender Clan 'tchat Buy (30 Pieces) New Meta - Quest Pro Virtual Reality Headset - 256GB $29,970 0 74 10/01 10:34:12
emailychang01 
The Blender Clan 'tchat Buy (30 Pieces ) New Apple iPad 10.9-inch (2022) 64GB Wi-Fi + Cellular $13,470 0 135 09/01 09:47:14
emailychang01 
Hors Sujet !! les tutos de Moonboots    [1][2][3]...[33] 326 56593 08/01 21:04:14
moonboots 

Qui est en ligne
198 utilisateur(s) en ligne (dont 1 sur Tutoriels)

Membre(s): 0
Invité(s): 198


plus...
Nouveaux membres
MathiasFul 18/8/2022
VicenteZcl 18/8/2022
OlivaL1007 18/8/2022
Adrian8943 18/8/2022
NorbertoGe 18/8/2022
VeronaKais 18/8/2022
BettieSile 18/8/2022
DarylTier 18/8/2022
BretParkhi 18/8/2022
LeoTrotter 18/8/2022
Dernier Ajout
2020-09-24.jpg

Evènements à venir
Fev 15
Anniversaire de Dany
Fev 23
anniversaire de windspirit
Mar 14
Anniversaire de AMV12
plus 229 plus d'élément(s)
 Par Mickaël Guédon [ebrain] © 2003-2021 The Blender Clan - hébergé par TuxFamily - Site déclaré à la CNIL sous le numéro 1155445