So what is it all about?
Nowadays, there is a huge amount of materials explaining in detail how the baking process works. It would seem that there are no uncovered problems and “sacred” ways to solve them in the field of baking. But still, to my surprise, there is one topic that is very weakly touched upon, but has a tangible impact on the quality of baking your models.
This article will focus on the averaging of cell normals and the artifacts that this averaging causes. I would also like to talk about one way of solving these problems, which, in my opinion, has received too little attention. This material assumes a basic knowledge of baking. If you are not familiar with the basics, I suggest reading these articles:
Two Factors That Determine the Quality of Your Bake
Surely many of you reading this material are familiar with such an artifact as “fringe” when baking cylinders with a chamfer. Since ancient times, articles about this undesirable effect and ways to eliminate it have appeared on the first forums dedicated to 3D.
We will consider the problem of incorrect conversion of the shapes of the High Poly model into the normal map of the Low Poly model using the example of the appearance of fringes on the cylinders. And it’s worth starting with two factors, without which we wouldn’t be talking about this topic:
1. Difference between Low Poly and High Poly Models
No matter how hard we try to match the geometry of a Low Poly object with a High Poly object, we will always end up with inconsistencies. Basically, Low Poly and Low Poly, which differs in the amount of geometry to a lesser extent than High Poly. And in the example of cylinders, our lowpoly model will always have fewer side faces than the highpoly model.
Based on the image above, you can see that no matter how we combine the two models, we will always have places where the geometry of these models will be closest to each other, and vice versa, areas where it will be most spaced. And this inevitable phenomenon will be the “catalyst” in the appearance of fringe for factor number two.
2. Averaging Normals and Vector Interpolation
Let’s take a look at the cage from which the rays are projected onto the Low Poly model when baked.
We know that when baking, rays are projected from the vertices of the cell to the vertices of the Low Poly.
For the rest of the model, the rays are interpolished between the rays directed from the vertices of the cell to the vertices of the Low Poly.
In our experimental cylinders, the interpolation of vectors in a certain region will look like this:
Do not mix vodka with beer!
Individually, neither the interpolation of the rays coming out of the cell nor the difference in geometry between the Low Poly and High Poly objects is a bad thing, but together they begin to have a very negative effect.
As a result of interpolation, at the point where the chamfer boundary passes on the High Poly, the rays coming from the cell are projected not perpendicularly, but at an angle. And the farther they manage to go before they reach Low Poly, the more distortion of information we will get on the baked normal map. Therefore, at the edges of the cylinder that are closest to the High Poly geometry, the distortion is minimal, and conversely, the closer to the middle of the face, the greater the distance between the geometry, and the more the chamfer border slides down, forming a curvature called a fringe.
So what to do about it?
If the reasons are known, there will be a solution! You can reduce the influence of the first factor, the differences in geometry between Low Poly and High Poly features, by adding additional faces to the lowpoly model. But since we made the Low Poly model as it is, it means that it was necessary, and adding new geometry is not what we want.
In this case, we are left with the second option — to work with the direction of the rays. And then the next thing comes to mind: add an additional edge loop on the cell so that the rays begin to change their direction only at the point where the chamfer begins on the highpoly model.
As you can see in the image above, due to the additional edge on the cell, the rays begin their tilt exactly where the chamfer begins. In this way, we would get rid of the fringe, because now the rays at the border of the chamfer are perpendicular to the surface, which means that now the distance traveled by the ray from the geometry of Low Poly to High Poly does not matter, because the beam has no inclination, which means that there will be no distortion for the distance traveled.
Everything would be fine, if not for one “but”. None of the existing bakers either knows how to work with cells whose geometry differs from the geometry of a lowpoly model in terms of the number and index of vertices, or does it very poorly, sometimes taking into account additional edges to change the interpolation of rays, and sometimes completely ignoring them. This means that the same edge will have to be added to the Low Poly model to project rays strictly from the vertices of the cell to the vertices of the Low Poly. And since we don’t want to create additional geometry on a lowpoly object, we’ll need to remove it after baking.
And then there’s one important point that I haven’t mentioned yet. This is the unfolding of the cell. The fact is that it also plays a very important role. Rays are projected not only from the vertex of the cell to the vertex of the lowpoly model in 3D space, but also from the vertex of the uv unfold of the cell to the vertex of the uv scan of the Low Poly.
You can learn more about how the process of baking normal cards from the inside works in this article:
In our cylinder, after extruding a cell from Low Poly or adding an edge to an existing cell on the UV reamer, it will end up in a different place than the edge on the UV reamer of the lowpoly model. And we will need to combine it.
Moving the vertices on the UV unfold of the cell will, of course, lead to a deformation of the texture space, but the deformation of the cell space does not lead to anything bad for us, unlike if the UV space of a lowpoly model were deformed.
With the chamfer on the sides of the cylinder, it seems to be solved, but what to do with the chamfer on the top and bottom sides of the cylinder? After all, it also gets distorted. This happens, as you can see in the illustration below, due to the same factors: the distance that the rays travel and their inclination. As a result, the radius of the chamfer border has decreased, and the chamfer itself has been slightly stretched.
In principle, this artifact is not so noticeable that it takes time to add another section of edges, but nevertheless, if you need it for some reason, you will have to add an additional edge loop, preferably equal in number of vertices to the border of the High Poly model, and then adjust the vertices of the uv cell to the vertices of the uv Low Poly model.
In this case, the final view of the cell and the Low Poly model will look something like this:
Adding and Removing Additional Edges
Adding a rib to a Low Poly model before baking and then removing it sounds trivial, but don’t forget that adding edges changes the triangulation of the model.
This is critical for baking the Tangent Space Normal Map we need, because this type of normal maps is based on calculations of the direction of ray reflection relative to the normals of the vertices of the object (tangent space). Adding new vertices and changing the triangulation, and therefore these normals, will result in the baked normal map no longer being valid for this model.
You can learn more about tangent space normal maps here:
In fact, in this example with cylinders, there will be no difference in shading due to a different triangulation, but we are only looking at them as an example, so we will consider this option not always working.
Is it a dead end again?
World Space Normal Map Comes into Play
We know that the map of world space, which is available for baking in almost all bakers I know, completely ignores the shading of the model. That is, in Unlike a tangent space normal map, each texel has a threedimensional vector encoded through three RGB channels, which indicates the direction in which rays are reflected from a surface in world space. In each Texel of the Tangent Space Normal Map, a vector is also encoded via RGB (although there are also twochannel maps, but that’s not what we’re talking about here), only this vector shows the deflection of ray reflection regarding the object’s normals, at the point of impact of the beam.
Here’s a great article that explains the main differences between different types of normal maps quite simply:

https://habr.com/ru/articles/486528/
Based on the above, it turns out that if you take two models with the same geometry shape and unfolding, but different shading, and bake them with the same High Poly model, then their Tangent Space Normal Map will turn out to be different, and the World Space Normal Map will be the same?
That’s right. In the example above, there are two cylinders that have the same UV reamer and geometric shape, but the number of vertices, triangulation, and shading (I intentionally messed up the shading of the right model to demonstrate the difference) are different. The visual differences between their Tangent Space Normal Map are clearly visible, but the World Space Normal Map is absolutely identical.
And the great thing about it all is that you can convert the World Space Normal Map to the Tangent Space Normal Map using the lowpoly model you need.
Thus, we can first bake a map of world space on a Low Poly model with edges added for the ray interpolation we need, and then convert it to a tangent space map for a lowpoly model with the original geometry.
To convert World Space to Tangent Space, I’ll use Substance Designer (I’ve also heard a utility called HandPlane do this). To do this, take the resulting map of the world space from Substance Painter (or any other baker), as well as the original lowpoly model, and import them into the Substance Designer graph. After that, rightclick on the Low Poly model in our graph and click in the window that appears “Bake model information”.
Next, in the window that appears, perform the following steps:

Click “Add baker”.

In the window that opens, select World Space Direction.

In the “Baker Parameters”, in the “Input Direction” Choose “From Texture”.

In the same tab, in the “Direction File” select our World Space map from the imported resources.

The rest of the parameters are chosen according to your needs, as in any other bakers you use. Then click “Start Render”.

On the right side of the window, you will see the baking result that has been saved along the path you specified.
For those who will repeat these steps, I recommend that you triangulate and create a Tangent Space when exporting a Low Poly model from your 3D editor. Since different programs do this in different ways, this can lead to unexpected artifacts. For example, in my case, I didn’t do it, assuming that both Substance Painter and Substance Designer would do these things the same way, since they are produced by the same thing. by the same publisher. But no, I was getting artifacts until I did it when exporting from Blender.
Let’s see the result
Let us repeat once again, but very briefly:

Bake the World Space Normal map on a Low Poly model with additional faces.
For clarity, I’ve made a couple of changes: I’ve intentionally enabled full antialiasing of this lowpoly model so that the differences in the Tangent Space maps are clearly visible, and I’ve also increased the chamfer size on High Poly and Low Poly/Cage, respectively.

Save the World Space Normal map and transfer it to Substance Designer.

Convert World Space Normal to Tangent Space using the original Low Poly model.
In conclusion, I would like to note that this material is not written to show how to properly bake cylinders. I wanted to raise the topic of the imperfection of the current baking algorithm and the way to eliminate those artifacts that appear as a result of unwanted ray interpolation in some places on the Low Poly model. I consider this method to be universal and applicable to any models that you make.
———
Acknowledgment and Usage Notice
The editorial team at TechBurst Magazine acknowledges the invaluable contribution of the author of the original article that forms the foundation of our publication. We sincerely appreciate the author’s work. All images in this publication are sourced directly from the original article, where a reference to the author’s profile is provided as well. This publication respects the author’s rights and enhances the visibility of their original work. If there are any concerns or the author wishes to discuss this matter further, we welcome an open dialogue to address potential issues and find an amicable resolution. Feel free to contact us through the ‘Contact Us’ section; the link is available in the website footer.