Help with normal map baking on 2.8

I’m having a really bad time with baking normal maps.
I’m a newbie so I started with engraving a simple square inside the starting cube and it worked perfectly, so I started doing a bit of work on a test helmet and tried to bake an eye socket (again, a simple square) onto it but the resulting normal map is not correct.

As you can see the high poly model is just the low one with a simple eye socket, but when i bake them togheter the normal map has those “non existing” triangles that end up having different height.

Even baking the normal mab without the socket generates the same triangles.

I have googled the issue for half a day now and i tried:

-Adding vertices to low poly mesh
-Re-doing the UV layout (with marked seams, not from view)
-Baking another model (same result - exept for the cube)

My best guesses are that something is wrong with either the way i make the UV and/or unwrapping or blender’s 2.8 normal baking ( i found this discussion from sept 2018 : 2.8 normal map baking broken?).

If you have any suggestions as why this happens please do help me out.

1 Like

First, make sure your color space is set to non color on your normal map image node. That’s the prime culprit for 95% of all funky normal issues, and a mistake almost everyone makes at some point in their lives.

If that doesn’t fix your problem, you might need to upload your .blend file. There’s a thousand and one reasons why a bake could mess up on you, and it’s hard to troubleshoot just from pictures alone. At a casual glance, it looks like it’s baking the underlying tris that secretly exist on all your faces, even when they look like standard tris and ngons, and I’m not exactly sure why it’d do that.

thanks for your reply, here’s the .blend:

I set the image normal map image texture node to non color and baked again, but still no luck.

Here you go.

My guess is that Blender doesn’t do too good of a job baking faceted faces. What I did to fix the problem was select all the edges in both your models, mark them as sharp, then applied a 180 degree autosmooth to the normals under the object data tab. That pretty much fixed it, and the resulting bake only accounted for the eye hole from your high poly source.

The results were pretty jaggy, but that’s because, as far as I know, Blender doesn’t antialias normal bakes, and you don’t have enough geometry to play with to disguise the jagginess behind tons of fine detail.

Also, I fixed your UV map and material stack. It was pretty weird.

Try it out, and shoot back if you’ve got any questions.

elmo_2.blend (707.8 KB)

Eeehm… i did as you said and now blender crashes when I bake :sweat_smile:
It also crashes when I bake from your file.

oh and sorry for the materials and UV’s, after a whole day of trying to get this to work my mental sanity has been slowly eroded away.

Yeah, well, that happens when you’re first starting out. Ain’t nothing unusual. :stuck_out_tongue:

I dunno why it’s crashing on you. Try and delete my image node, and make a new one, maybe?

Alternately, what version of Blender are you using? I’m still on the initial 2.81 release. That could have something to do with it.

I think the 180° auto smooth is to blame, that seems to be what causes the crash.
I’m using 2.81.16.

Hear ye hear ye, i tried to use autosmooth with 179° and it works almost perfectly, just some annoying spots on the left and a strange divide where the eye socket meets one of the edges.

any idea on why these things are created? they are not part of the mesh.

Alright! Well, that’s…sorta solved. No idea why dropping it a single degree would keep it from crashing, but hey, it works.

As for your weird seam, I removed the sharp from center of the socket completely. You might still get a slight bump, because the resulting bake is shifting your surface details oh so slightly so that it doesn’t align perfectly with the underlying geometry (a cage might fix that), but it will make it smoother.

Thanks for your help, I’ll see if a cage can help me out.

It just occurred to me that you probably won’t be able to rid yourself of that seam entirely, since a normal bake accounts for surface details both your high and low poly mesh. A well designed cage wouldn’t do anything except make sure that seam aligns perfectly with the one underlying it on your low poly mesh. The most you could hope for is making it slightly less noticeable.

Generally speaking, normal maps are better suited for smaller surface details, rather than large structures. Like on your model, you’d use normals for hairline cracks, dents, smoothed edges, breathing holes, and whatnot, while your eye slits would be done with raw polygons. What you’re doing now is good for practice, but when you start doing things fer realz, you’ll want to stick to geometry for your broader details.

Thanks for the advice!

I kinda got rid of that seam by marking all edges as seams (using the mesh “elmetto high old”) and baking it with 180° autosmooth, now all seems ok exept for the fact that the seams are way too sharp on the normal map (one would expect this given that all edges are marked as seams).

thank god we managed to get this far tho.

Just keep in mind why I did things the way I did. 99.95% of the time, you shouldn’t ever have to make sharp edges out of all your individual faces. The only reason I suggested it here is because you were getting those tri splits on your faces during the bake, and I figured that making the whole mesh smooth, then defining the individual edges with a bunch of sharps to get that low poly faceted look would fix it.

It worked, but this isn’t something you should consider a part of your average workflow. Normally, you only use your sharp edges on the edges you want to keep sharp (obviously), and low poly stuff doesn’t get any smoothing at all. This was a quick and dirty fix, and should be treated as such.