Home Technical Talk

How to reduce normal map baking artifacts caused by low/high poly mismatch?

I’m using a Blender + Substance Painter pipeline (baking and texturing) with a low-to-high workflow: first a low-poly model, then geometry refinement, bevels, and subdivision. Since I’ve only just started learning, I ran into a problem on the simplest possible model: a cylinder. I made a basic 20-sided cylinder (0.6 m in diameter) and a high-poly version of it by adding bevels and subdivision.


When I try to bake the normal map, I get artifacts caused by a mismatch between the high-poly and low-poly models. Because the meshes diverge, the angles smooth out worse than they could.

Even though this only shows up on glossy surfaces, which I’m not planning to use, I’d still like to understand what approaches exist for solving this kind of problem and how closer mesh correspondence can be achieved. I don’t want to go with an “eh, good enough” approach, even if nobody but me will ever notice.

I found an example of what I’m aiming for: https://sketchfab.com/3d-models/curvedelements-nm-test-f2bdc226edf441609a67d82fb1a8e6c6

But I can’t get any further than LP 01 RESD. I don’t understand what repurposed normals and matching curvature mean. Any result starting from 02 would be fine for me, but ideally I’d want something like LP 02 REMC RPNM. Or am I doing something fundamentally wrong? (The tutorials I watched did not cover cases like this.)

P.S. I hope mentioning Substance Painter doesn’t make this post off-topic. I’d rather not cross-post if I can get answers here.

Replies

  • Eric Chadwick
  • Benjammin
  • maaboo
    Thanks for the reply, yes, I've read this several times. Unfortunately, it is still unclear what exactly needs to be done. Perhaps this is one of those cases where the answer is right in front of me, yet I still cannot see it at all.
  • Thanez
    Offline / Send Message
    Thanez interpolator
    Oh, I remember having exactly these issues.
    I think you're ending up in this situation because you're starting with some arbitrary cylinder size, and an edge width plucked from the ether.
    Why is your cylinder 60cm in diameter? Why is it 20 sided? Why are the edges so sharp on such a large object?
    If you have answers to these questions before bake time, you won't end up in this situation.
    Model a lip-balm instead. Or a knife. Follow refs. Start with what you want to make and how big it should be. Then place it on your screen so it takes up as many pixels as you want it to. Then choose how many segments you want for the look/feel/job the model has to do.
    Then choose how wide you need those edges so they'll be captured by the lowpoly properly.
    This is a balancing act, something you need to practice.

    As for how to REMC:
    Take your highpoly, delete the CatmullandorClark, chamfer the edge a bunch.
    Now your highpoly and lowpoly are the same, except for that edge.
    If you didn't use support loops, use support loops. Or weigh the normals so they point straight out the cylinder like flag poles.
    Bake :)



  • maaboo
    @Thanez Thanks a lot. As for the cylinder and its dimension it's because it represents a real-world object: steel barrel. Actually, these artifacts shouldn't be visible at all, since the game (I’m making this prop for) uses a top-down camera.

    You can call me a perfectionist  (and that would be true) but if there is a correct way to do something (even one I may not know yet) and a “good enough” way, I will always choose the first, even if the second is faster and cheaper.

    Sorry if I caused any unnecessary fuss, but this is my first prop and it should be the best. I’ll use this as my starting point.
  • maaboo
    Not to be a lurking leecher, here is what I've got so far. I invested some more time (thanks to all, who replied, especially @FrankPolygon) and now I’m halfway to a complete solution.
    First of all, I found this topic on StackExchange. I created the same node, and closed that (ahem!)king gaps:

    I used completely identical cylinders and the only difference was subd. As you can see, the silhouette of the left is MUCH closer to the original shape (it also seems a bit cleaner) than one on the right. You don't see dark artifacts from the original post, because bevels here are too big to introduce them. But believe me, custom subd also fixes it (which is not surprising). So if another poor unlucky bastard like me ever comes along — well, not quite so unlucky, if they can at least be pointed to this thread. ;-)

    As for the second question, it is still a problem for now, but no longer quite as difficult. I connected the clue I was given in reply to the question I asked on StackExchange, namely — to bake the top face from the low-poly version — with a relevant post by @gnoop here, which says roughly the same thing.

    If someone could suggest a workflow for that, the topic would be fully resolved

  • Thanez
    Offline / Send Message
    Thanez interpolator
    Happy to hear I was wrong in assuming your model was nonspecific. Sorry I've been having trouble understanding, and communicating clearly, I've been operating on less than the minimum required amount of sleep.
    I can see no technical flaws in neither your Lowpoly or Highpoly, everything seems to be baked and rendered correctly.
    The only thing left you can be unhappy with then is your Lowpoly's ability to convey the illusion of being a Highpoly. 
    I'm pretty sure what you're missing now is to chamfer the edge on your lowpoly. I suggest making the chamfer's size so your lowpoly just barely covers the highpoly's edge. 
    If that doesn't do it for you, add more segments around the circumference. 

    Really cool that you've learned about manipulating the shrinkage of Catmull-Clark. That'll come in handy :)
    As for the second question, what I think you're looking for is bevel shade baking. IDK much about it, but google does.
    Searching "Bevel shader blender" on YT: https://www.youtube.com/watch?v=BCjw5FcHO_g
    It's definitely a workflow you should have in your tool chest.

    There isn't one god-tier workflow that reigns over all the others, that will always be optimal for all scenarios. There are almost as many ways to rome as you can imagine, and they all have their strengths and weaknesses. All of these find their nieches in different CG categories because of their usefulness.
    You'll find them in people's work, generally summed up in what software they use.
    I for one prefer variations of subdivision modeling. I find it gives me the most control, the most accuracy, and takes the most amount of time.
    I don't do this for work. This is my hobby, and I am in no rush at all. I like solving the geometry puzzles. I love spending time making tiny details look good because it makes me feel good.
    If I was on the clock, I wouldn't do the things I do the way I do. Takes too much damn time.

Sign In or Register to comment.