Jump to content

Fixing bad lighting along UV seams


Site Bot

Recommended Posts

Article link: Fixing bad lighting along UV seams

 

Fixing bad lighting along UV seams

with Ghogiel

 

I am using 3dsMax 8 for this tutorial. But the information here is not really application specific. This is also true of models for both Fallout 3 and Oblivion. I had trouble thinking of a good title to be descriptive enough to find easily. The tangent space/UV seam issue isn't the easiest thing to diagnose, once you've seen it though...

 

The problem:

http://www.fallout3nexus.com/imageshare/images/209926-1259191972.jpg

 

If your 3d assets suffer from this phenomenon, continue reading

 

This is caused when tangent space binormals/tangents are calculated in nifskope. As I understand it, when the tangent space for the mesh is calculated, it needs to read not only the geometry vertices, but also the verts that are stored in the meshes UV. If 2 UV shells are mirrored down a middle middle seam and are sharing the same UV space, ie resting on top of each other, the resulting vertex normals can get confused and may end up pointing backwards. Not exactly sure what happens. But the effect is, it causes light to reflect very badly along the UV seams. To make it work correctly, you simply have to offset your UVs so they aren't completely mirrored-overlayed. But before I get to describing the fix, first let me show you the experiment I used to get the results in the image above.

 

I created a sphere.

http://www.fallout3nexus.com/imageshare/images/209926-1259192002.jpg

 

Deleted everything but 1/4 of it, and then UV mapped it.

http://www.fallout3nexus.com/imageshare/images/209926-1259192552.jpg

 

Then I mirrored it, z, then y axis, so I again had a completed sphere.

Attached it all the pieces together so it's one object.

Welded the vertices along the split seams.

reset Xform.

http://www.fallout3nexus.com/imageshare/images/209926-1259192584.jpg

 

To correct all you have to do is edit the UV mapping.

in the UV editor, one by one select the quarters of the sphere where your UV seams run.

Now offset each section to occupy its own unique UV space.

In max this is done by putting any whole number(like "1") into the U or V boxs, as seen in this image.

http://www.fallout3nexus.com/imageshare/images/209926-1259192971.jpg

 

The obligatory comparison shot Before/After fix

http://www.fallout3nexus.com/imageshare/images/209926-1259192939.jpg

 

I'm using a flat midtone grey diffuse map and a flat featureless normal map on both sphere. The sphere images are screenshots from nifskope, the issue won't show up on your meshes until after export.

 

This way you can maximize precious UV space and get more resolution into your textures.

 

If rendering normal maps from a high poly model, it's generally not advised to do a lot of UV mirroring.

Like faces or down the middle of bodys. But arms/sleeves/legs/hands UVs can be overlapped without problems. You aren't really mirroring along UV seams in this case. You are just stacking UVs. Which is a good, cheap and easy way to increase texel density in you texture maps.

Link to comment
Share on other sites

  • 3 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...