|
|||||||
![]() |
|
|
Thread Tools |
|
||||
|
Hi, i'm Zelouille, member of the french community Blender Clan.
Please excuse my bad english writing. But be sure i will try to do my best .French people may want to read the french post. After some headaches, i think i've succeed to generate Normal maps Tangent Space in Blender. This method needs some bakes and much nodes. Due to the complexity of nodes, I've decided to do a .blend file dedicated to this task. You just have to append your mesh, follow the directives and you shoud get your Nmap Tangent space. So, there is the .blend file : v.2007.10.24 It contains the directives in both English and French. Just select your language in the Text files. Theory Due to a bad level at mathematics it's hard to me to explain how it works, but it's quite clear in my head. The hi-res map (nmap_pix) is multiplied by a matrix (U,V,Z) wich correspond to the rotation of each face. This matrix is composed by 3 maps, but one is calculated by the others. nmap_v correspond to the V axis, nmap_vert to the Z axis. Z axis (nmap_vert) represent the normals per face. V axis (nmap_v) represent the Y axis of the texture uvmapped. To get this map, i just used a flat coloured map (RBG = 0.5 ; 1.0 ; 0.5) applied in nmap_TS mode, and bake the normals. It return the Y axis for each face in the global space (camera space). A screen of the nodes tree in an older version (which needed one bake more) : How to use it All the three maps you'll have to create must be the same size. 1. Importation of your own mesh in this .blend file. File > Append or Link. Careful, choose the mesh, not the object. Select the "Cube" object. In panel Editing > Link and Materials, select your mesh in place of "ME:Cube". ![]() Go to the UV Face Select mode. Multires/Level at 1 until the end. 2. Baking of High-Res map "nmap_pix" : Set the multires_render at maximum. ![]() In UV window, create a new image "nmap_pix". Bake the normals. 3. Baking of Low-Res map "nmap_vert" : Set the multires_render at level 1. ![]() In UV window, create a new image "nmap_vert". Bake the normals. 4. If your mesh is "Set Solid" (goto step 5 if it's smooth) : In panel Editing > Modifiers, enable the Edge Split modifier during rendering (first button next to the modifier's name). ![]() 5_ Baking of the "nmap_V" : In panel Material > Texture, enable the "V" texture. ![]() In UV window, create a new image "nmap_V". Bake the normals. 6. Settings of the Nodes : In Node Editor window, load the maps in this order, up to down : nmap_pix nmap_V nmap_vert Set the file path in the File Output node. 7. Check your folder ![]() ------ The job of my .blend file ends here. ------ 8. Set up the texture onto your object Create a new texture, load your normal map tangent space. In the Shading > Texture buttons > Map Image panel, enable the "Normal Map" button. ![]() In the Material buttons > Shaders panel, enable the Nmap TS button. ![]() In the Map To panel enable the Nor button, and set the nor slider to 1.00 ![]() ------ I will edit this posts if you need more explanations. ------ As you see it's a bit long, but, when you know good the "how to" it becomes quite fast. You don't have to rename the baked maps or save them (even it is a bit hazardous... Blender seems to forget unsaved maps after a while) if you want to go faster. Last edited by Zelouille; 28-Oct-07 at 03:38. |
||||
|
#1
|
||||
|
|
|
||||
|
Hmmmm seems very clever!
I don't know much about them so this is the place to learn ! Well done. |
||||
|
#2
|
|
||||
|
I had tested it out, and i will further testing
It works width smooth faces too?Btw what is the difference the pixel and the vertex baking result? I changed the multires levels but the result will be the same. Last edited by squareline; 23-Oct-07 at 09:09. |
||||
|
#3
|
|
||||
|
Quote:
- It seems you confuse the "level" variable and the "render" variable. Mutlires "Level" needs to stay at 1 until the end (in order to not have the "no image to bake" message). It is the Multires "Render" you have to modify in order to bake the low resolution, or the high resolution mesh. Pixel baking > high res. Vertex baking > low res. I will add some images to the first post. |
||||
|
#4
|
|
||||
|
#5
|
|
||||
|
Hi Zelouille!! Is it possible to make Displacement maps out of this technique??
|
||||
|
#6
|
|
||||
|
I LOVE YOU!
![]() yes! finally! *whooh*
............................................
FunLinks: . . . . . . WikiUser: FkttsuperRandom = An Engineer's Guide To Cat's Last edited by Felix_Kütt; 23-Oct-07 at 13:20. |
||||
|
#7
|
|
|||
|
you could convert the normal to a displacement in crazybump. thanks for the tut. ive been using the camera space normal maps baked from high poly which is aparently not as good
|
|||
|
#8
|
|
||||
|
thats some seriusly amazing node setup! thanks
|
||||
|
#9
|
|
||||
|
Crazybump is not GNU, and I think the beta version is restricted to 800x600 output.
|
||||
|
#10
|
|
||||
|
Quote:
Feel free to post the result on your low poly character.![]() I think you save each map after baking them. You can get a more neutral background (RGB : 0.5 ; 0.5 ; 1) in place of your clear blue if you save the hi_res map in an Alpha friendly type file (.tga for exemple). You can get it too if you don't save the maps in a file, just use them "on the fly". Quote:
But i'll think it over... Me too
Last edited by Zelouille; 23-Oct-07 at 14:33. |
||||
|
#11
|
|
||||
|
Hey... is it possible for someone to make a NODE of that whole node setup? I didn't try it yet, but thanks for the innovation =)!
............................................
I'm friends with the King of the Universe website @ www.falgor.net | try this custom theme for the forum! my live music @ youtube |
||||
|
#12
|
|
||||
|
hmm.. i think it could be grouped, but indeed, having savable node group presets would be awesome!
............................................
FunLinks: . . . . . . WikiUser: FkttsuperRandom = An Engineer's Guide To Cat's |
||||
|
#13
|
|
|||
|
#14
|
|
||||
|
#15
|
|
||||
|
Quote:
If i make that, it will become so boring to modify if i need it. Also, nodes don't make all. If you want to import the all method, you will need to append the material too (mat_uv_baker). In sum, i think it's more simple to append your mesh in my .blend file. Quote:
Did you put the "Nor" cursor to 1.00 on the "Map To" panel ? |
||||
|
#16
|
|
|||
|
...
it shouldn't be too difficult to make a hard-code of it... ![]() S.
............................................
Blender Internal Fan
|
|||
|
#17
|
|
||||
|
Quote:
Great method Zelouille, I had a feeling it was possible to do it with nodes.
............................................
Changed name to Hauzer |
||||
|
#18
|
|
||||
|
Quote:
|
||||
|
#19
|
|
|||
|
Tres bien fait, merci beaucoups! Would it be possible for this to be done through a Python script? Then the whole process could be automated?
|
|||
|
#20
|
![]() |
| Bookmarks |
| Thread Tools | |
|
|