Home Technical Talk

Normal maps never export correctly - UV Seam Artifacts

Vii
Vii
polycounter lvl 6
Offline / Send Message
Vii polycounter lvl 6
Hi,

Isn't much to say here. In the past six months that I've been doing game development the only way I can make normal maps is 3D coat. If I sculpt them then export from Zbrush or xNormal there are always nasty artifacts along the UV seams.

Makes generating normal maps for games literally impossible.

I've scoured the internet and anyone else who has this issue there is not a solution in sight.

I've read so many guides and not a single one covers the artifacts at UV seams.. I don't know how people deal with them.

Even in areas I don't sculpt they appear. UVs are clean.

- 0 overlapping UVs
- good space between UVs
- UVs the correct way around (blue, not red shells in maya)

Yeah, there's really nothing left to try so I'm posting here.

a47iw2.jpg

viejqe.jpg


Cheers for any advice.

Replies

  • JL-Art
    Offline / Send Message
    JL-Art polycounter lvl 4
    Which modeling software do you use? Maya, Max?

    Try flipping your green channel. When Xnormal bakes a normal map the Y axis needs to be flipped (for example if you use 3dsmax).

    If not, I'm not sure. I've never had problems like that when baking in Xnormal.
  • Vii
    Offline / Send Message
    Vii polycounter lvl 6
    Tried flipping green already unfortunately. I use maya.
  • JL-Art
    Offline / Send Message
    JL-Art polycounter lvl 4
    Hmm, Ok.

    Stupid question maybe, but are all of your normals facing the right direction?
  • Obscura
    Offline / Send Message
    Obscura grand marshal polycounter
    I think its because your baking software and rendering software is not synced. Check the Handplane thread to get more info about this "synced" thing. If you want to show your final normalmapped model in Maya, then I recommend to bake your normalmap in Maya. Because probably its synced with itself.And if you want to show your model in a game engine,use a normalmap that is synced with the target engine(xnormal or handplane -> udk for example), and then you can ignore the artifacts in Maya's viewport. In my experiments, unfortunately this is not always enough in some game engines to get 100% perfect result, but you can reduce the "errors" and you can make them almost not visible.

    Are you using one or multiple smoothing groups? Theoretically you can use both if your baking software is making a normalmap that is proper to the target engine. But one sg can cause bad shading, and multiple sgs can cause "hard" edges in some engines.I prefer one sg when its possible because I dont like the hard edges, but this is not always working, because the shading can look bad in some cases (like when your normalmap is not 100% proper to the target engine) and because of the lods...
  • Bartalon
    Offline / Send Message
    Bartalon polycounter lvl 12
    Vii wrote: »
    If I sculpt them then export from Zbrush or xNormal there are always nasty artifacts along the UV seams.

    I use a Maya/xNormal combo and have never come across any issues that weren't self-inflicted. A general rule of thumb is to have your UV seams as hard edges and everything else should be soft. Make a cage also. This setup should allow for xNormal to bake normals properly.

    ZBrush seems to work from a different system despite predefined smoothing groups (hard/soft edges). When ZBrush bakes a normal map, it does so based on the base mesh having all soft edges. So if you exported a normal map that you baked in ZBrush and want to use it on your model, you have to put the whole model on one smoothing group (all soft edges) in Maya. This is just what I have observed from personal experience; if this is explained wrong I sure would like to know what's really going on there.

    I believe also if your texture map gets too small from mipmapping or what have you, texture seams become more obvious (e.g. 2048 looks seamless but scaling down to 512 causes seam to appear).
  • JL-Art
    Offline / Send Message
    JL-Art polycounter lvl 4
    Bartalon wrote: »
    I use a Maya/xNormal combo and have never come across any issues that weren't self-inflicted. A general rule of thumb is to have your UV seams as hard edges and everything else should be soft. Make a cage also. This setup should allow for xNormal to bake normals properly.


    I believe also if your texture map gets too small from mipmapping or what have you, texture seams become more obvious (e.g. 2048 looks seamless but scaling down to 512 causes seam to appear).

    This! Very true. Same goes for my experiences. I must however say that I have never had any problems when baking in Xnormal and working with Maya. The only time I got seams like the ones you seem to have is when I accidently had (Y) flipped.

    If you want you can send me your lowpoly and highpoly and I will do a quick normal bake and see if I get the same result.
  • m4dcow
    Offline / Send Message
    m4dcow interpolator
    This looks like not using an averaged projection, which you need to do if your vertex normal have hard edges.

    For xNormal use a cage it will fix what is going on.

    In Maya I forget which option is the right one, but in the transfer maps dialog select advanced, and switch between the "Match Using Options" and see what works.

    Also read this thread:
    http://www.polycount.com/forum/showthread.php?t=81154
  • Vii
    Offline / Send Message
    Vii polycounter lvl 6
    JL-Art wrote: »
    Hmm, Ok.

    Stupid question maybe, but are all of your normals facing the right direction?



    Yes.

    Bartalon wrote: »
    I use a Maya/xNormal combo and have never come across any issues that weren't self-inflicted. A general rule of thumb is to have your UV seams as hard edges and everything else should be soft. Make a cage also. This setup should allow for xNormal to bake normals properly.

    ZBrush seems to work from a different system despite predefined smoothing groups (hard/soft edges). When ZBrush bakes a normal map, it does so based on the base mesh having all soft edges. So if you exported a normal map that you baked in ZBrush and want to use it on your model, you have to put the whole model on one smoothing group (all soft edges) in Maya. This is just what I have observed from personal experience; if this is explained wrong I sure would like to know what's really going on there.

    I believe also if your texture map gets too small from mipmapping or what have you, texture seams become more obvious (e.g. 2048 looks seamless but scaling down to 512 causes seam to appear).

    By 'cage' I assume you mean loading a low poly into the 3D viewer and having it envelope the high poly or what not? I do that.

    My texture map is 2048.

    JL-Art wrote: »
    This! Very true. Same goes for my experiences. I must however say that I have never had any problems when baking in Xnormal and working with Maya. The only time I got seams like the ones you seem to have is when I accidently had (Y) flipped.

    If you want you can send me your lowpoly and highpoly and I will do a quick normal bake and see if I get the same result.

    Actually my normal map issues are present irrelevant of which software they're in. And they look the same. That first screenshot is actually from 3D Coat not Maya, but looks no different in Maya.

    I've also tried exporting from a higher subdiv, no dice.

    I am uploading my obj's now but it's a slow connection, will take a few minutes so I'll respond once done.
  • Vii
  • JL-Art
    Offline / Send Message
    JL-Art polycounter lvl 4
    Hello again Vii.

    Downloaded your meshes and checked them. Low poly looked fine. Correct normals and one smoothing group etc...

    Baked in xNormal. My settings:

    Import high and low into xNormal as usual. No changes to the settings except for changing the scale from 1.0 to 0.5. When baking with 1.0 I got a couple of artifacts, however these were not around any of your seams.

    Did not use any cage. Don't really need a cage with a simple mesh like this one.

    Normal map came out perfect and no problems around any seams. Here is a viewport shot from Maya and a Mental ray render. Also, here is the Normal map. Try it out.

    Good luck!

    viewport.png
    mentalray.png
    knight_normal_normals.PNG
  • Vii
    Offline / Send Message
    Vii polycounter lvl 6
    Hey.. cheers for that. I changed scale to 0.5 and it fixed most stuff. There's still a relatively minor seam along the back of the arm where the UV seam is. Can you check there on yours and tell me if you have it too?

    Some questions:
    1) What's your bucket size
    2) .. Edge Padding
    3) .. Closest hit if ray fails
    4) .. Discard back-hit faces
    5) .. Renderer

    Cheers
  • JL-Art
    Offline / Send Message
    JL-Art polycounter lvl 4
    I did a new render and I think I see the seam you're talking about. Barely visible. However, I think that if you do a new bake with an even smaller scale (like 0.2) the problem might go away. Let me know how it works out for you.

    Bucket size: 32 (doesn't really matter)
    Edge padding: In this case I used 6. But you can go even higher if you feel like it.
    Closet hit if ray failes: Yes
    Discard back-faces hits: Yes
    Renderer: Default (for x64)
  • MooreCreativity
    I'm having the same issue, but I'm using Mudbox to bake my normal maps and bring them into 3DsMax. Here are my maps and the rendered image.https://www.dropbox.com/s/wkg3zg4ohp0ytz7/Dog%20Issues.jpg
    https://www.dropbox.com/s/ysk1r96r73ngplc/Normal.png
    https://www.dropbox.com/s/0e7pcybjhisjt6d/uvws-daschund.jpg
Sign In or Register to comment.