Home Technical Talk

Zbrush generates normal map with screwed up normals at UV borders

Hey,

I've made a high poly model with five subdivision levels. The topology is pretty clean as I have retopologized it and all, featuring only two triangles.

I split the model into several (maybe five or so) subgroups and used the UV Master to generate the UVs (I used "Tangent", "Adaptive", "SmoothUV", "SNormals" and "FlipG") and exported it, the textures and the lowpoly model separately for use in 3ds Max 2014 x64, put them together in there and everything looks great except for the fact that I get ugly edges right along the UV borders.

This image shows you what the normal map looks like when having used a secondary map channel to render just the area around one of these seams, using "Render to texture". It features two separate seams. As you can see, an elevation that's white on one side of the seam is blue on the other, so the two sides or UV elements don't match up in colour/normal information:
http://imgur.com/MvT4ti4

As you can see, it's like Zbrush calculated each side of the seam separately and forgot to make sure to use the same angle of light along both sides of the seam while calculating perhaps? Surely there must be an easier way than eliminating the seams manually?

Thanks in advance!

Replies

  • Blond
    Options
    Offline / Send Message
    Blond polycounter lvl 9
    Go on youtube and type ''handplane for normals''..watch the video tutorials...
  • deohboeh
    Options
    Offline / Send Message
    deohboeh polycounter lvl 5
    Blond wrote: »
    Go on youtube and type ''handplane for normals''..watch the video tutorials...

    Absolutely agree with Blond on this.
    Before handplane3d I was like :(
    After handplane3d I am like :)

    Jokes aside. Zbrush tangent basis is a bit weird I was having problems too bake world based maps and convert them in handplane3d. Its a bit longer process but it works 60% of the time every time.
  • Hagroth
    Options
    Offline / Send Message
    Thanks, both of you! I followed the Handplane channel's walkthrough for the baking process - taking the models into Xnormal, creating a cage using the "Viewer" that covered the entire model, putting the cage into the lowres-model slot and rendering an object space normal map from there (had to switch off tangent space in the options for the normal map by clicking on the "..."-button in this later version of Xnormal) and then converting it to a 3ds max tangent space normal map using Handplane. There doesn't seem to be any seams at all now. I'm using Vray and the material is a VRayMtl with Vray's own "Normal Bump" map as the bump map, in case there's anybody wondering. It really strikes me as unbelievable that despite all my googling efforts I couldn't find this procedure without asking about it here.
  • Hagroth
    Options
    Offline / Send Message
    The UV seam problem was solved but when I opened the character's mouth I realized that there are problems where the lips and also where the upper and lower teeth meet (when the mouth is closed). I guess Xnormal doesn't ignore opposite polygons that are within the cage (the cage penetrates itself at these points since the distances between the upper and bottom lip and teeth are too small). Do I have to avoid these penetrating polygons in the lip and make sure the cage doesn't interpenetrate itself?

    This picture demonstrates the problem:
    http://imgur.com/5K1EDpc

    This issue does not appear in normal maps generated from Zbrush (but they have that UV seam problem instead...), so I guess the cage is the problem. Isn't there a way to make XNormal ignore polygons of the high poly not belonging to the immediate area (so that when on the bottom lip, it doesn't take polygons belonging to the upper lip in to account)?

    Thanks!
  • EarthQuake
    Options
    Offline / Send Message
    Try the discard backface hit option in XN.
  • Hagroth
    Options
    Offline / Send Message
    EarthQuake wrote: »
    Try the discard backface hit option in XN.
    I've already tried that, and the "Closest hit if ray fails" option, to no avail. But have you tried generating a normal map from a similar situation and succeeded? Getting a normal map generated from a character whose mouth is closed by default shouldn't be impossible, right?
  • EarthQuake
    Options
    Offline / Send Message
    No, I've never had that work. I think its basically impossible if the backface thing doesn't help. You could try making a blendshape for both the high and low and baking that.
  • Hagroth
    Options
    Offline / Send Message
    Alright, thanks for the help. I did a bit of googling again and my conclusion is that normal map UV seams are inevitable no matter the workflow and application (they did appear on the map generated through XNormal, albeit less noticeable), but can be minimized with careful UV-unwrapping, or eliminated manually.

    I did actually find a way to use XNormal without the cage. I have to import the low and high poly as usual, and check the "Match UVs" option in the low definition list. Then I use the same procedure as previously mentioned above with Handplane to get a pretty good normal map without the interpenetrating cage and all that.
Sign In or Register to comment.