Bevel normal map baking artifacts

I am having trouble getting artifact-free bakes in my latest bakes. I am baking a high-poly object with a bevel onto a low-poly object. Problem is, that everywhere there isn't a seam I get artifacts on the edges that are supposed to be beveled.

Here is a demonstration:

enter image description here

I know of two ways of fixing the problem, both of which I find unsatisfactory. The first is to have a seam on every edge that is set to be beveled. I don't like this because it makes a mess of my UV layout and I want to have as few seams as possible. An idea that just popped in my head is to mark those edges as seams and unwrap but the position of the islands is the same, as if they had not been cut. Is this possible?

The other solution involves adding a destructive bevel to those edges but I really don't like this because it adds extra precious geometry.

Are these the only solutions? I would really appreciate a solution to this but I would also appreciate an explanation to why this happens because on one of my other models none of this happened, where technically (at least from my POV) it should have happened. Here is what I am talking about:

enter image description here

Why didn't it happen in this case? Is there a technical explanation for this?

Thank you!

  • d
    Dennis Brown replied

    Just a few questions to help figure out what is going on here. 

    I was originally thinking you were baking in Blender, but it seems you are baking in Substance (hence the screenshots)? If you are using Blender, which engine are you using and if it's Cycles, are you using a cage? Just want to make sure. ;) 

    While I haven't personally tried baking in Substance for some time now, my initial thought would be that the bevel is not translating completely in Substance, and why you are not seeing the bevel with the modifier. If this is the case  you may consider applying your modifiers, saving a copy of the blend as a "baking version", and undo the apply to return your model to normal after. 

    On another note, I do know that some 3rd party 3D software package will translate the sharp marks. I cannot remember if Substance is one of them, but that could be something to keep in mind and used in place of the extra seams. 

    Those are just my initial thoughts and questions, and surely someone more aware of these issues can confirm or correct where needed. Best of luck! 

  • Fenes Octavian(cyberdemon1542) replied


    ddbrown Yes, I use SP for baking as it's a lot more convenient than Blender but I don't think this problem is exclusive to this program.

    I don't remember if the normal map tutorial covered this but if it didn't then it would be immensely helpful if someone made one. Newbies are bound to encounter this. 

    Turning off autosmooth does fix the pixel artifact problem but trades the problem with another. Without autosmooth on low poly, I get weird dark shading at the edges. 

    I have a theory, and I'd like an instructor to tell me what they think.

    Ok, so I noticed that on edges that are beveled the problem disappears but please bear with my inexperience. 

    Does it have anything to do with the vertex normals and when the edges are beveled the normals are not pointing at straight 90 degrees?...or something like that. I keep getting the feeling that it is possible to mimic  what the bevel on low poly does on non-beveled edges so I can avoid adding all that extra geometry.  I really don't want to add a bunch of bevels on my low poly as it doubles the polycount. Is it possible to mimic what adding a bevel does without actually adding it?

  • Jonathan Lampel replied

    I know of two ways of fixing the problem, both of which I find unsatisfactory. The first is to have a seam on every edge that is set to be beveled. I don't like this because it makes a mess of my UV layout and I want to have as few seams as possible. An idea that just popped in my head is to mark those edges as seams and unwrap but the position of the islands is the same, as if they had not been cut. Is this possible? 

    Marking these edges as seams is the only way to solve this as far as I know. Marking as seams but not moving them apart in UV space won't work though, since the whole issue is that there's an infinitely thin edge along which one slope meets another slope. The seams need padding in order for the colors to transition correctly. Your UV layout is definitely nice, but a clean render is better than clean UV's!

    Is it possible to mimic what adding a bevel does without actually adding it?

    Unfortunately not, since a pixel in the normal map texture can't be two colors at the same time. 

    Also, I've started using this addon for my hard surface modeling (since UV layout otherwise takes ages), and it works decently well while making the process much faster: https://gumroad.com/l/UVShotPacker

  • Fenes Octavian(cyberdemon1542) replied


    @jlampel 


    Thank you for your reply.

    A weird thing that "worked" was having smooth shading on without Auto Smooth which fixes the baking artifacts BUT makes the edges have dark shading BUT only on metallic textures! I don't understand!! Maybe it has something to do with the fresnel? If true, could I use this workflow for non-metallic texturing?

    The other method is to add a bevel but this adds geometry.

    If I want to keep my UV clean (more islands also=more verts) then can I use a combination of these methods?

    Also, do you think you could make a comprehensive tutorial on this subject? I don't remember this topic being discussed on the Introduction to Normals tutorial and this is a problem newbies are bound to encounter. I also want to understand the technical side of it.

  • Jonathan Lampel replied


    ccyberdemon1542 I'll write a more in-depth reply as soon as I can, but I'll post it in this newer thread since I think it asks the same questions: https://cgcookie.com/t/1387-hard-edges-uv-unwrapping-and-alternative-workflows