Calculer des Normal maps Tangent space directement dans Blender.

Posté par Zelouille le 18/10/2007 20:03:40
Après pas mal de prise de tête, je pense avoir réussi à calculer des normal maps en Tangent Space grâce aux nodes.

Normal Map Tangent Space Factory
Version : 2007.10.24

Pour calculer vos maps Tangent Space, rien de plus simple :
utilisez ce .blend comme une "usine". Importez-y votre mesh, suivez les directives, et vous devriez obtenir votre map.

Le .blend en question :


Théorie :
La normal map hi-res (nmap_pix) est multipliée par une matrice (U,V,Z) (donc 3 normal maps : nmap_U, nmap_V, nmap_vert). U et V sont les vecteur 3d de l'UV pour chaque face. Z est la normale de chaque face, cette map correspond à la normal map low-res (nmap_vert).

La nmap_U est désormais générée à partir de nmap_V et nmap_vert. Ce qui nous fait un bake de moins à faire.

Voir le post de Traven en bas de page pour des explications plus rigoureuse.

Utilisation :
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 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écuperer votre image dans le dossier choisi =)

L'utilisation de la "Normal map Tangent Space Factory" s'arrête ici. Voyons comment appliquer une telle map sur votre objet.

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.



Post sur BlenderArtists.org

Cette contribution était de : http://blenderclan.tuxfamily.org/html/newbb/viewtopic.php?forum=7&topic_id=10937&post_id=130261