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:
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.
Ensure that your UV islands do not overlap. You can adjust the margin value when unwrapping your mesh.
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!
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:
Auto smoothed normals option is turned off.
We’re ready to bake. My texture setup is as follows:
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.)
Your advertisement can be placed here for $200 permanently. Suggested resolutions: 1800x663 or 1400x1400. Contact us.
We can already see some ‘deformed’ areas in the big picture. Let’s take a closer look at them.
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.)
Your advertisement can be placed here for $200 permanently. Suggested resolutions: 1800x663 or 1400x1400. Contact us.
The issue here might be one of these two:
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.
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:
A good method that can be used to check where these stretchings are happening is by adding a multires or subdiv modifier:
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.
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.
Pushing the newly added edge towards the other edge where stretching occurs.
Doing the same thing here.
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.
Before supporting/extra edge loops
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.)
After re-baking, it seems like the issues have been resolved. Unless you check the following part:
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.
Adding some extra seams to the mesh below