MudBox Can’t Create Tangent Space Maps.


#1

Let me begin by saying that I truly hope that someone comes along and
shows me my error. Unless that happens, I will assume that my
conclusions are correct and I hope that the moderators will make this
thread sticky so that others may be saved the trouble that I have had.

   MudBox DOES NOT KNOW HOW TO CREATE TANGENT SPACE MAPS CORRECTLY.
   
   Based on my experience, there is no point in trying to make tangent
   space maps in mudbox. You are better off understanding that tangent
   space calculation is flawed, can't produce proper results, and you
   should focus on doing what you can with world space or object space
   mapping. It should be possible to create a program that can derive a
   tangent space map from a world space or object space map, for a given
   mesh object, so perhaps someone will be able to do this.
   
   And now for the evidence:
   
   
   Here we have three mesh objects which are identical, except for one thing.
 [img]http://www.renderrob.com/venom-pics/evidence/3heads.jpg[/img]
   
   They each have the same UV map, except one island has a different
   orientation for each mesh.
   mesh 1: [www.renderrob.com/venom-pics/evidence/UV1.jpg](http://www.renderrob.com/venom-pics/evidence/UV1.jpg)
   mesh 2: [www.renderrob.com/venom-pics/evidence/UV2.jpg](http://www.renderrob.com/venom-pics/evidence/UV2.jpg)
   mesh 3: [www.renderrob.com/venom-pics/evidence/UV3.jpg](http://www.renderrob.com/venom-pics/evidence/UV3.jpg)
   
   Now we are going to bake a tangent space normal map for each mesh.
   Here are screen shots of the resulting normal maps:
   mesh 1: [www.renderrob.com/venom-pics/evidence/map1.jpg](http://www.renderrob.com/venom-pics/evidence/map1.jpg)
   mesh 2: [www.renderrob.com/venom-pics/evidence/map2.jpg](http://www.renderrob.com/venom-pics/evidence/map2.jpg)
   mesh 3: [www.renderrob.com/venom-pics/evidence/map3.jpg](http://www.renderrob.com/venom-pics/evidence/map3.jpg)
   
   Here are the UV maps pasted together with the normal maps:
   mesh 1:
 [img]http://www.renderrob.com/venom-pics/evidence/maps1.jpg[/img]
   mesh 2:
 [img]http://www.renderrob.com/venom-pics/evidence/maps2.jpg[/img]
   mesh 3:
 [img]http://www.renderrob.com/venom-pics/evidence/maps3.jpg[/img]
   
   Now lets look at our 3 mesh objects, each with it's designated normal
   map. Since they were all baked in tangent space, each object with it's
   texture should look identical:
   [img]http://www.renderrob.com/venom-pics/evidence/3heads-textured.jpg[/img]
   
   But they don't! Why??
   [img]http://www.renderrob.com/venom-pics/evidence/comparison1.jpg[/img]
   
   animated GIF image:
 [www.renderrob.com/venom-pics/evidence/comparison2.gif](http://www.renderrob.com/venom-pics/evidence/comparison2.gif)
   [img]http://www.renderrob.com/venom-pics/evidence/comparison2.gif[/img]
   
   
   I sincerely hope that I've made a mistake somewhere and someone can
   correct the issue for me.
   
   Otherwise I will have to find a programmer who can help me make a
   program that creates tangent space maps from world space maps.

We could run this same experiment again, but make world space or object space
maps instead of tangent space maps, and we would not see this issue. But then we wouldn’t have a tangent space map which is what we need for characters.

I hope others will try this same experiment and post their results.

All images were made from screen shots taken in Blender, which is the program I am using in combination with MudBox.


#2

So that everyone can run their own tests, I have uploaded the models that I am working with:
High Resolution Mesh:
http://www.renderrob.com/venom-pics/evidence/hi-res-head.obj - 8,730 KB

Low Resolution Meshes:
http://www.renderrob.com/venom-pics/evidence/low-res-head1.obj - 881 KB
http://www.renderrob.com/venom-pics/evidence/low-res-head2.obj - 881 KB
http://www.renderrob.com/venom-pics/evidence/low-res-head3.obj - 881 KB

The original low-res meshes were lost when I closed Blender without saving, but these are practically identical to the originals. I also reran this test with these objects, just to be thorough.

Here is a screen shot of my bake settings.
www.renderrob.com/venom-pics/evidence/bake-settings.jpg

Notice that, at the bottom, I am using the 3ds Max preset. I see this problem with both the Max and the Maya presets, but I use the Max preset for this run.


#3

I’ve done some more experimentation and have new findings.

It seems that maps 2 and 3 must be analogous to 1. While the colors are different, it seems that they must still be indicating the same direction when rendered.

I found that, if I convert a world space or object space map to a tangent space map, using xNormal, the seams along the UV lines still appear. This leaves me to conclude that my renderer (Blender renderer) needs improvement in order to seamlessly render a tangent space normal map.


#4

Looks correct to me, as far as the direction of the normals go.

Try this: mirror your UVs on the X axis and render the normal maps again. Now take the maps into photoshop, isolate the red channels, and compare. They should look different.

However, if you take the normal maps, apply them to thier corresponding models with flipped and unflipped UVs, then compare them side by side in a realtime render, they should both appear correct, (assuming the application you are using isn’t broken.)

Normal maps are highly dependent on the orientation of the UVs of the target model.


#5

This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.