Adverti horiz upsell
Generating and using normal maps in Maya
Generating and using normal maps in Maya
drone, added 2006-03-31 00:06:24 UTC 123,565 views  Rating:
(2 ratings)
Page 2 of 3

Example Scene: torso_baking_normal_map.zip



To use this normal I need to convert it into camera space as it is originally recovered in world space. I had to do some dirty connections again, using camera worldMatrix and object worldMatrix. The closestPointOnMesh is REAL slow , so don't try to move the camera or the object, especially with the hypershade open!!


Both models, low poly and high poly are standing on the same point, high poly is hidden and provides normal information to low poly one.


The scene isn't workable as it is, all you want to do is convert the normal information to a file texture. For that you'll need to select the low poly model (which must have proper UVs btw), then the FIRST setRange node (that will generate proper 0 to 1 values) and use the convert to file texture command from the hypershade menu. Try at at very low resolution first as it it REAL slow. Better to check � anti-alias � out too as it slow calculation quite a lot and doesn't have much impact on this type of maps.




When the convert is over (it is really slow in Maya, even for fairly simple shading networks, so start it at the end of the day and allow a few hours for a model of same complexity that the one I used), you'll recover a funky colored image like this one:

When converting to file texture in Maya, a recurrent problem is that the evaluation will stop excatly at UV borders, then you get artefacts at UV seams as the shader will interpolate UV border pixels of the map with background ones. You'll have to correct the normal map with a 2D paint, so that colors � bleed � a bit over UV borders (same as what is done when painting 2D maps on UV layouts):



Then now you can use it as a normal map, using only the last part of the shading network to restore correct -1 to 1 range, and express normals in camera space. It is now fast to render, and as you can see I think it works quite well given the very low number of faces on the low poly object (254 compared to12850 on the high poly one):

Example Scene: torso_normal_map_baked.zip