Home Technical Talk

Normal map seam

NBLM
polycounter lvl 13
Offline / Send Message
NBLM polycounter lvl 13
Yes, like thousand of others i have a problem with my normal map. I cant
understand why i have this seam (No black seam btw). Every smoothing group has its own uv-shell, but
it doesn't blend well, only on a few sides ? I have tryed some variations,
in the first picture i unwrapped the cylinder+cap for a big shell with the same smoothing group ( This is what auto smooth gives me). The problem is that you
can see the triangulation and where i cut the cylinder. In the second picture
i gave the cap a different smoothing group and its own uv-shell. But it looks worse.

Anyone knows what to do in that case???


normalmap.jpg
silencernormalsmap.jpg

Replies

  • Mark Dygert
    Options
    Offline / Send Message
    Try baking with everything set to smoothing group 1 and see what you get. Generally you don't want to separate your UV shells by smoothing group when you're baking unless you have a good reason like you need a seam in a specific spot.
  • Eric Chadwick
    Options
    Offline / Send Message
    Vig, nope, the opposite is true. With tangent-space maps, you want a different smoothing group for each UV shell.

    NBLM, you've got the Ye Olde Cylinder Cappe problem. See this thread...
    Normal Map problem that has been bothering me for ages!
  • Mark Dygert
    Options
    Offline / Send Message
    I'm not so sure about that...
    I think he has two problems going on, the classic wave issue. Not much can be done short of a few hack fixes and better planning.

    And then the smoothing group issue. Which is giving him a seam.
    BrokenSmoothingGroupsBrokenNormalMaps.jpg
    I think all but a handful of engines will break smoothing at UV seams giving you an edge but even with those engines it still looks better to feed it a normal map without the seam baked in.

    Of course its always a good idea to plan out your seams and even design in places to hide them so you're not caught with your pants down when you start baking...
  • Eric Chadwick
    Options
    Offline / Send Message
    Vig, what shader & renderer are you using?
  • Mark Dygert
    Options
    Offline / Send Message
    Standard material with a normal bump, spec 100 Gloss 25.
    Scanline rendering.
    No crazy viewport hardware shader.
  • Eric Chadwick
    Options
    Offline / Send Message
    Which is different from whatever the OP is using, which is something in the viewport.

    If this model is meant just to be viewed in the Max viewport, and nowhere else, then bake with one Smoothing Group, and use 3Point Studios' shader. Or if for Scanline rendering, then use a Standard material with a Normal Bump map.

    However if the model is meant to be exported to another real-time rendering system, like UDK or Crysis or Marmoset or whatever... or it's meant to be used with some other Max viewport shader... then re-bake with the Smoothing Group seams matching the UV shell seams.

    The workflow has to be different, depending on the rendering method.
  • Mark Dygert
    Options
    Offline / Send Message
    I think you can get smoothing to work across UV seams as long as the smoothing groups aren't baked in. Where you have a smoothing seam when baking you'll get a seam on the normal map and no amount of smoothing will get rid of it. Even if I'm wrong about the smoothing, passing it a seamless normal map is potentially better than passing it one that has a seam baked in.

    I'll have to test it all out when UDK finishes downloading.
  • Eric Chadwick
    Options
    Offline / Send Message
    Go for it, but I thought you understood the point of the "don't use 3dsmax for normal maps" thread... when you're using a shader that isn't synched with your baker (like baking in Max RTT and shading in UDK) then strong angles on your low-poly model will only shade correctly when they have hard edges created from Smoothing Groups, and UV seams along those same hard edges.

    Any other combo simply doesn't work, you get weird gradients baked into the normal map, and the unsynched shader can't solve them.

    3Point's shader is one of very few real-time shaders that are synched perfectly with Max's RTT baker. In fact, I know of no other shader or game engine at this point that uses the same tangent basis method as Max's RTT.
  • pior
    Options
    Offline / Send Message
    pior grand marshal polycounter
    Yup vig, you're wrong on that one :P
    With a properly synched solution, one can make hard edges on the lowpoly model, separate the corresponding UV chunks, and get a perfectly smoothed realtime look with no hard edge showing. It has the benefit of producing very nice and flat tangent space maps, avoiding potential 'diagonal shading' errors (meaning, it becomes less important to triangulate everything).

    Its likely not gonna work in UDK anyways, since to my knowledge it still recalculates normals on mesh import.
  • Mark Dygert
    Options
    Offline / Send Message
    Yep you guys are totally right. I did some digging and I found some info on TA.org that strangely enough Eric helped author =P
    It looked really familiar too, it explained how to get nicely smoothed gradients over hard edged geometry. So yea I remembered it could be done just forgot the specifics.

    It's funny because I my original post I put "or ask EQ, he sets me straight all the time on this crap" but then took it out.

    I thought UDK was synced to Scanline since Epic mostly uses Max (if I remember correctly) which is why I didn't trust any fancy pants shaders. The 3point shader worked great but I don't use it all that often and haven't installed it since I built the new machine.

    I couldn't get it working in UDK but I only ran two tests broken and unified. Seams even popped up when I broke it and baked but I might have run into a padding issue or its recalculating the normals like Pior said? If that's the case, does that mean you can't edit the normals? As in using Normal Thief on foliage? If so, that blows, they need to get that in ASAP...

    So in the case of engines like UDK not picking up the normals, I guess he should probably add an edge for the indent and planar map the front crap all the way back to that new edge so he can hide the seam in there? Or will it actually smooth fine in UDK and look like garbage everywhere else?

    I'll have to test it out in 3point and UDK some other day when I get some time.
  • NBLM
    Options
    Offline / Send Message
    NBLM polycounter lvl 13
    Thanks guys!
    The waviness is almost gone after i adjusted the cage.
    The seam is rock my world. I thought if i set my UV shells accordingly to the
    smoothing group it will give me a nice soft edge, but thats a joke or what , there will be always a seam that i must hide?

    I have done this what Vig said, and it seems to work.
    Btw. i am using Xoliul's shader at the moment, and i want it to export it to marmoset later.


    normalmap.jpg
  • Eric Chadwick
    Options
    Offline / Send Message
    NBLM wrote: »
    Thanks guys!
    The waviness is almost gone after i adjusted the cage.
    Good to hear, though this is a separate issue from the seam problem.
    NBLM wrote: »
    The seam is rock my world. I thought if i set my UV shells accordingly to the
    smoothing group it will give me a nice soft edge, but thats a joke or what , there will be always a seam that i must hide? I have done this what Vig said, and it seems to work.
    "is rock my world"... do you mean it's solved? Maybe this is an English idiom that has been lost in translation.

    Yes, without a perfect synch between baker and shader, you will usually have some artifacts. Often these seams become much less obvious when you add diffuse and specular maps, so the lesser normal map problems can be ignored. Depends on how smooth it needs to look.
    NBLM wrote: »
    Btw. i am using Xoliul's shader at the moment, and i want it to export it to marmoset later.
    A crucial piece of information. This is a good thing to state in the first post, the next time you start a thread. You'll get quicker help this way!
  • Eric Chadwick
    Options
    Offline / Send Message
    pior wrote: »
    Its likely not gonna work in UDK anyways, since to my knowledge it still recalculates normals on mesh import.
    UDK recalculates vertex normals on import, so hand-tweaked vertex normals don't come in. However it does support Smoothing Groups, so hard edges are preserved. Just no hand-tweaked normals. :(
  • NBLM
    Options
    Offline / Send Message
    NBLM polycounter lvl 13
    "is rock my world"... do you mean it's solved? Maybe this is an English idiom that has been lost in translation.
    Thought that would mean "to turn sombodys world upside down" dict.cc give
    me that hint. I am not a native speaker.

    A crucial piece of information. This is a good thing to state in the first post, the next time you start a thread. You'll get quicker help this way!
    Yeah, sorry about that. I forgot it.
    Often these seams become much less obvious when you add diffuse and specular maps, so the lesser normal map problems can be ignored. Depends on how smooth it needs to look.
    Thats a good message. :-)

    I will now go ahead and start to unwrapping the whole gun.
    If someone interested you can see my
    progress in the ingram mac 11 thread.

    Thank you all!
  • Eric Chadwick
    Options
    Offline / Send Message
    Not a problem, I'm sure I would be worse in your native language!

    If you say "the seam rocked my world", this usually means "the seam made me the happiest I could be".

    In general, it isn't helpful to use idioms in another language unless you are really familiar with them. English is painful enough as it is!
Sign In or Register to comment.