Home Technical Talk

Smoothing errors on hard-surface pieces aka how to get clean bakes

polycounter lvl 10
Offline / Send Message
Kot_Leopold polycounter lvl 10
Hey guys,

I decided to make this thread after doing a week long research on normal maps and how to render them out properly without running into all kinds of artifacts and errors. Being unable to find a solution to this seemingly simple issue I'm having, I thought it'd be best to post here as a last resort.

To the point: What I'm having difficulty with is getting artifact-free bake out of xNormal on this thigh armor plate for a character I've been working on. These issues only show up on this armor piece and a few others (all the ones with extreme angles, I guess).

I've tried different methods and although I got better results, the problem didn't go away. Most of us here are visual learners so instead of writing a novel, I'm posting a few pictures to better explain the situation.

The bakes after trying a few options:

343gryf.jpg

And their corresponding normals:

Armor_SmoothedNormals_zps6256fa30.jpg

Armor_SmoothedNormals_more_geo_zps72c6c50d.jpg

Armor_HardenedNormals_zpse8ff87df.jpg

Wireframe after adding a few edgeloops to the corners:

Geo_with_added_edgeloops_zps23cf1313.jpg

UV layout:

UV_Map_zpsb504a79d.jpg

And the high-poly object:

Armor_HP_zpsa5f7c15d.jpg

Is the solution here to split the UV's where there are hard edges, paint out where the dark outlines are on the normal map, harden edges on UV borders, or simply add even more geo? I'm fairly new to this meaning any insight is welcomed. I may not be understanding how some of these things work though. Also, setting up a custom cage doesn't seem to change much.

I'm reading over a couple of EarthQuake's threads on the matter because I'd really like to solve this mystery once and for all and the sooner the better. So if any of you fellas know what the deal is here, feel free to chime in and help a buddy out.

Thanks in advance!

Replies

  • C86G
    Offline / Send Message
    C86G greentooth
    Since we have tons of threads that cover normal mapping, just a quickie from me:

    use as less geo as you want, use hard edges, split your UVs and bake WITH a cage. That works.

    edit: you baked with a cage? Can you post a screen of it?

    Your third image looks like you did not use smoothing groups/hard edges. Or is it just me? Mind showing the lowpoly without the NM?
  • Bek
    Offline / Send Message
    Bek interpolator
    If you're reading EQ's thread http://www.polycount.com/forum/showthread.php?t=107196

    you should be doing this: setting hard edges by UV islands (Where your islands are optimised for least seams) and baking with a cage (averaged projection mesh - ie the cage has smoothed normals). In your third example the black edges are caused my rays missing/overlapping because of the hard normals, see http://wiki.polycount.com/NormalMap#Working_with_Cages

    So you shouldn't need to add geo to the edges (But you should understand why you get a different result with and without those added edgeloops), you just need to use UV and smoothing group splits to your advantage.

    If it helps here's a simple-ish test I did awhile after digesting EQ's thread: http://www.polycount.com/forum/showthread.php?t=109870
  • EarthQuake




    Armor_HardenedNormals_zpse8ff87df.jpg


    The problem here is you're using hard edges without uv seams. Everywhere you use a hard edge you also need to split your uv islands up.

    You can't really "paint it out" then you'll just end up with hard edges.

    One thing you really need to keep in mind. How big is this object? If its a peice of thigh armor it will be quite small in a video game, it will be fairly small even in renders. How much do the indented wood bits really effect the silouhette? I'm willing to bet not at all in any real game situation, maybe one or two pixels in a render? If you simplify this mesh in the lowpoly it gets a lot easier to deal with.

    I always try to think about things like this when I construct my high poly mesh, how will this be viewed? Will my lowpoly need to be really complex to support these shapes? When you start thinking like this you'll realize getting clean bakes is as much technical as it is planing and art content itself.
  • Kot_Leopold
    Offline / Send Message
    Kot_Leopold polycounter lvl 10
    @C86G Hey thanks for the pointers man. When you say to harden edges, do you mean selecting the entire mesh and clicking on "Harden Edges"? Or just selecting those adjacent edges where there are extreme angles? I'm not sure how harden edge tool works, whether it hardens every edge on an object or just the border edges. I usually harden edges on an entire object.

    @Bek Yep, that's the thread I'm going over. I never tried softening edges on a cage, that could be the reason it isn't helping me much. Thanks for the help, this is starting to make sense now!

    @silentbrains That's an extra step indeed, shouldn't normals show up clean in no matter what engine they are rendered in? I'm using Maya but viewing the same mesh in xNormal's 3d viewer with a normal map applied gives out the same result and everything was baked in xNormal so I think this has a lot to do with how I unwrapped and smoothed the model. I've seen quite a few tuts on baking normal maps for games and such thing was never mentioned. So I'm glad you brought that up.

    @EarthQuake Appreciate you stopping by man. Correct me if I am wrong, what I need to do is to split the UV's along these red lines I scribbled?

    UV_splits_zpsd80b16cd.jpg

    And then do harden edge on each UV island after they are all separated?

    I'm not exactly sure how big this piece will be if put in a video game. This is done for personal work and I just want my character and his accessories to look decent for some close-up screenshots. A possible employer would question my ability of extracting clean maps if something like this was shown (1st example). Not having enough experience with modeling for games doesn't help me but this is definitely something to keep in mind for future projects. I'm learning as I go and I do appreciate all of you who are willing to give an insight to a self-taught person like me.
  • D4V1DC
    Offline / Send Message
    D4V1DC polycounter lvl 18
    I thought it was as simple as putting your hard edges AT your uv seams? If that's true then your red outline should be around the left uv island, as I understood it being less vert count is best and all?

    Did I get it wrong?
  • EarthQuake
    You need to split your uvs at every hard edge, if using hard edges. Can't really say it any more clear than that. From your previous images it looks like you have more hard edges than just the red outline here.
  • Kot_Leopold
    Offline / Send Message
    Kot_Leopold polycounter lvl 10
    @$!nz I'm not too sure on that but the left UV island is the backside of the armor plate. Shouldn't I still split the UV's on extreme angles?

    splits_zpsbbe41f66.jpg

    Like this? (wouldn't split the mesh, just indicating where the uv splits would be)
  • Kot_Leopold
    Offline / Send Message
    Kot_Leopold polycounter lvl 10
    EarthQuake wrote: »
    You need to split your uvs at every hard edge, if using hard edges. Can't really say it any more clear than that. From your previous images it looks like you have more hard edges than just the red outline here.
    Every hard edge meaning inset pieces too? So basically anything that's been extracted in or has a sharp edge to it? That seems to be a ton of chunks..

    splits_chunks_insets_zpsb7a9a624.jpg

    I guess I was thinking of the big picture when it came to edges, apologies for not understanding still.

    Edit: I'm also confusing edges (the ones you select) with hard edges (those on the object). I think I need someone to explain to me what exactly is considered a hard edge...
  • EarthQuake
    Every hard edge needs a uv split, yes, or you will get the "black edge" errors there. Every edge that is hard, or on the border of two smoothing groups, whichever terminology you want to use.

    Again this is why simplifying your low(and possibly high) makes a lot of sense here.

    You can also use a blend of hard edges and edge bevels to reduce uvs seams.

    And again, depending on where this asset is going, you can get away with more or less hard edges. If you've got a synced workflow, ie: baking in maya and displaying in maya's viewport, you could probably get away with no hard edges. If you're baking in max and rendering in UDK, you're going to need some hard edges. It really depends, there isn't any hard rule for any of it.
  • Chase
    Offline / Send Message
    Chase polycounter lvl 9
    For Max, is it as simple as selecting the Faces by smoothing groups and Breaking the edges apart to accomplish splitting the UV shells where there's hard edges?
  • D4V1DC
    Offline / Send Message
    D4V1DC polycounter lvl 18
    Chase wrote: »
    For Max, is it as simple as selecting the Faces by smoothing groups and Breaking the edges apart to accomplish splitting the UV shells where there's hard edges?

    I use this Chase (to make my hard edges) Though EarthQuake would be the person to ask I am trying to figure everything out myself, again It seems. :poly122: I think your meant to split the edges at the UV editor window and not on the model its self.

    @Kot_Leopold:
    Again EQ is the one to go by.
  • Chase
    Offline / Send Message
    Chase polycounter lvl 9
    Yep, that's exactly what you're suppose to do. I just was wondering if there's a quick and efficient way of doing it. Text Tools just seems to mess up the smoothing groups when I use the "Smoothing Groups From UV Shells" button. Thanks for the link though
Sign In or Register to comment.