Solving Common Baking Problems in Blender (Aka: Why do we get weird artifacts when baking?)

I keep seeing the same question being asked repeatedly on YouTube, Reddit, and 3D-related forums. While detailed answers can sometimes be found, nobody really demonstrates precisely what they mean when they say, ‘Your mesh might have bad UVs’. In this tutorial, I’ll dive into not only the theory, but also show you practical ways to fix the artifacts created during the baking process.

Here are a few very minor points to pay attention to when baking. It seems like Blender has taken care of these issues since version 3.00, but I still advise following them to avoid any headaches in the future.

    If we need to summarize what we did here:

  • Before hitting the “Bake” button, ensure that your normal texture (Image Texture Node) is not connected to any node in the ‘Shader Editor’.
  • If you’re baking from multi-res and you need to re-unwrap your mesh, remove the multi-res modifier altogether and then re-add after you unwrap your mesh.

Note: If you are tired of watching video tutorials and would like to see more text-based tutorials like this one from me, you can support me on Patreon so I can dedicate more time to creating them.

Common Causes of Baking Artifacts

  • Bad UV/Bad UV Unwrapping/Stretched UV Islands
  • Overlapping UV Islands
  • Overlapping/Stacked/Colliding Edges
  • Low Poly Mesh Not Having Sufficient Poly Density to Display Data Transferred from High Poly Mesh
  • Interfering meshes (When a mesh has multiple unconnected parts. For example, in this tutorial, I’ll be using a gun where the gun and the magazine are separate objects but joined together.)
  • Incorrect/Flipped Normals
  • UV Islands not having enough margins therefore they overlap
Lazy Loaded Image

Ensure that your UV islands do not overlap. You can adjust the margin value when unwrapping your mesh.

Lazy Loaded Image

If the margins between the islands are too small, even if your UV islands do not overlap, the baked shapes may still extend into the space of another island, resulting in baking artifacts. That’s why it is important to have enough margins.

A quick note (Optional Read): Sometimes, I see other 3D artists suggesting taking your normal map texture and opening it in photo editing software such as Photoshop or Gimp to paint over stretched areas. This is a practice frowned upon, and it’s something you would never witness in a professional studio. I won’t delve into the technical details of why it’s frowned upon, but the most crucial aspect is that it hinders the artist from learning the correct workflow of good topology, best UV practices, and understanding why they are encountering these baking artifacts in the first place.

But enough of theory for now. Let’s dive into the practice!

Let’s Investigate The Scene

Lazy Loaded Image

A low poly gun mesh

I have a low-poly gun model here. I haven’t baked any normals yet, and the shading is set to smooth. It is important to deactivate the auto-smooth feature before baking:

Lazy Loaded Image

Auto smoothed normals option is turned off.

    We’re ready to bake. My texture setup is as follows:

  • Width: 4096px
  • Height: 4096px
  • Alpha (Unchecked)
  • 32-bit float (Checked)
Lazy Loaded Image

Auto smoothed normals option is turned off.

The reason I am creating a 4K texture here is that sometimes Blender creates artifacts if the resolution of your normal map is too low. You are not obligated to use this texture later in a game engine as it is. You can always lower the resolution later using another software. (I’ll be baking from Multi-Res, in case you’re wondering. But the principles we discuss here apply to any kind of baking method.)

Lazy Loaded Image

Your advertisement can be placed here for $200 permanently. Suggested resolutions: 1800x663 or 1400x1400. Contact us.

Let’s Investigate The Issues

Lazy Loaded Image

We can already see some ‘deformed’ areas in the big picture. Let’s take a closer look at them.

Lazy Loaded Image

Caused by bad topology, this area needs to be re-modeled to avoid the twisted shape. We can also observe a similar issue occurring at the bottom part of this mesh. (This issue persists even in the original low-poly mesh picture, before any baking took place.)

Lazy Loaded Image

Your advertisement can be placed here for $200 permanently. Suggested resolutions: 1800x663 or 1400x1400. Contact us.

Lazy Loaded Image

The issue here might be one of these two:

  • Low Poly Mesh Not Having Sufficient Poly Density to Display Data Transferred from High Poly Mesh
  • Interfering meshes

Possible solution: Adding supportive edges without overkilling it. Remember, we still want to keep this mesh as low poly as possible.

Info (Optional Read): The areas marked with yellow in the picture titled “We can already see some ‘deformed’ areas in the big picture. Let’s take a closer look at them.” are either suffering from not having enough supportive edges (Low Poly Mesh Not Having Sufficient Poly Density to Display Data Transferred from High Poly Mesh), or in some cases, you might have doubles/double edges here. The areas marked in blue are either poor topology or, in some cases, good topology but with insufficient topology, hence shading problems.

Fixing the issues

Lazy Loaded Image

One of the most apparent baking artifacts on the model.

What I am doing here is adding some extra/supportive edges to push that artifact towards the edge. This way, we are fixing the shading issue occurring here and providing the low-poly object with more geometry to display the details taken from the high-poly version. The reason we have an artifact here is that there’s not enough geometry to properly display the details from the high-poly version. I’ll be applying the same technique to the following parts as well:

Lazy Loaded Image

Lazy Loaded Image

A good method that can be used to check where these stretchings are happening is by adding a multires or subdiv modifier:

Lazy Loaded Image

Now I know that if I bake this multi-res to this low-poly object, there’ll be stretching there. To avoid that, I can add some extra edges.

Lazy Loaded Image

You can even tell that Blender is showing us that there is not enough polygonal information here, which is causing shading artifacts. So, we definitely need more edges here.

Lazy Loaded Image

Pushing the newly added edge towards the other edge where stretching occurs.

Lazy Loaded Image

Doing the same thing here.

Lazy Loaded Image

It looks a lot cleaner. Remember, it doesn’t need to appear extremely smooth. After all, this is a low-poly mesh. When other textures and lighting are added to the mixture, these tiny irregularities cannot be spotted.

Lazy Loaded Image

Before supporting/extra edge loops

Lazy Loaded Image

After adding a supporting edge loop (The very edge of this area has untidy topology, as I mentioned earlier, so we might still encounter some artifacts here.)

Extra Issues That You Can Encounter

Lazy Loaded Image

After re-baking, it seems like the issues have been resolved. Unless you check the following part:

Lazy Loaded Image

We know that we have enough geometry here. We confirmed it with subdiv/multi-res mod. But we still get these weird artifacts here. Why is that?

It’s because there are two meshes (bottom side of the gun, and the magazine) that are interfering with each other here, and their islands might be overlapping in the UV. If I hide the mesh on the top and add a seam to the mesh below that cannot be easily seen by the player, we’ll have enough empty space between these two meshes in the UV editor so they won’t be overlapping anymore.

Lazy Loaded Image

Adding some extra seams to the mesh below

Final Result

Lazy Loaded Image

Lazy Loaded Image