Home Technical Talk

Polygons' edges are seen after baking

DC74
node
Offline / Send Message
DC74 node
Hello everyone! 

I cannot figure out the issue with polygon edges being seen on the low poly after baking. 

Here's the high poly and low poly models (Blender). These are the seams and sharp edges that I have now:

Once the baking is done (Substance Painter) and a simple layer (just a color or a variation with roughness texture) is applied, the result looks like this:  

Since the model is not intended for extreme close ups, the amount of geometry is quite limited. However, the fact that there are some artifacts bothers me and I'd like to figure out why it happens here and how can I deal with it (hope the images are not compressed too much; I highlighted the areas just in case). Behold the tris:  

I tried to Google the issue and found a lot of good practices how to deal with such things. For example, the issue here - Triangles showing on bake/normal map - is quite similar to what I have. Also I tried to use sharp/smooth edges, use the Weighted Normals modifier. 

I've been tweaking the seams and sharp edges for a while now to get rid of the visible edges. For example, initially I did not have these edges (see the white arrow) sharp, and there was no seam, but I had to add them to improve the shading a little bit:

Also I made sure that the faces are all flat:

Overall I managed to get rid of some of the tris in other parts of the model - in those cases the sharp edges helped. However, these tris are still here. 

And the part that confuses me a lot. There are two "curves" - on the left and on the right side.
- The left one is actually ok, as it does not bring any artifacts and looks ok after baking.
- The right side has bad shading, and I cannot actually remove the small triangles, as I want to preserve the curvature. 

After baking the left part does not have visible polygon edges, while the right side does. 

What am I missing? I tried different UV island variations, sharp and smooth edges, and even a slightly different topology in the area. I would really appreciate your help! Thanks! 

P.S. I already created a similar topic some time ago, but the model there was made in Maya, now I am trying Blender.

Replies

  • ZacD
    Online / Send Message
    ZacD ngon master
    Not sure why the normals are producing that strong of a gradient, but the larger the difference between the shading of the low poly and high poly, the more likely you'll see issues like this. Might need to look at vertex normals instead of face, I think this is mostly a vertex normals issue and should be solvable. 
  • Neox
    Offline / Send Message
    Neox godlike master sticky
    You simply do not have enough texture resolution to compensate for the lowpoly shading. So either up the resolution or adjust the geometry to shade flatter..custom vertex normals would also be an option 
  • DC74
    Offline / Send Message
    DC74 node
    ZacD said:
    Not sure why the normals are producing that strong of a gradient, but the larger the difference between the shading of the low poly and high poly, the more likely you'll see issues like this. Might need to look at vertex normals instead of face, I think this is mostly a vertex normals issue and should be solvable. 
    Hi! Sorry for the noob question - but what exactly should I check with vertex normals? :)

    Should they be aligned/not flipped, etc.? 
  • DC74
    Offline / Send Message
    DC74 node
    Neox said:
    You simply do not have enough texture resolution to compensate for the lowpoly shading. So either up the resolution or adjust the geometry to shade flatter..custom vertex normals would also be an option 
    I continued to experiment with the model and I managed to solve the issue by adding more polygons - so I added more edges around the issue areas. I thought that it was not a good practice, since you increase the number of polygons, but at least it helped with the low poly model's shading. 

    What do you mean by "custom vertex normals"? In Blender: select a vertex, press R and press N - then you can rotate the vertex normal and actually play with its shading?  
  • Neox
    Offline / Send Message
    Neox godlike master sticky
    Yeah you could simply flatten the vertex normals, this way killing the lowpoly shading. But its a manual edit that can break. We had projects where this was common practice, killing lowpoly shading as much as possible. Letting the normalmal do all lifting. 
    Has its perks, but doesnt work on every mesh, works better the more planar a mesh is
  • DC74
    Offline / Send Message
    DC74 node
    Neox said:
    Yeah you could simply flatten the vertex normals, this way killing the lowpoly shading. But its a manual edit that can break. We had projects where this was common practice, killing lowpoly shading as much as possible. Letting the normalmal do all lifting. 
    Has its perks, but doesnt work on every mesh, works better the more planar a mesh is
    "flatten the vertex normals" - this can be done in Blender with Loop Tools > Flatten, right? I tried that, but it did not help in this particular case. 
  • Fabi_G
    Offline / Send Message
    Fabi_G high dynamic range
    Hi! In Blender (4.1), going into edit mode, you can preview the split vertex normals (taking into account hard edges) here:


    Functions to modify the vertex normals manually, with vertices selected in edit mode, can be found under "Mesh > Normals > ..." - or shortcut "alt + N":

    To flatten the vertex normals, you would copy the vertex normal vectors of a plane to the selected vertices. You might have to split hard edges manually in oder to edit their vertex normals indepent of each other, never did that manually in Blender.

    Alternatively, the "Data Transfer" modifier can be used to copy shading from one mesh to another.

    To keep everything very simple, you could make that lower edge hard (and split UVs) to control the shading. I would probably try this first. (Edit: something like this:

  • Neox
    Offline / Send Message
    Neox godlike master sticky
    DC74 said:
    Neox said:
    Yeah you could simply flatten the vertex normals, this way killing the lowpoly shading. But its a manual edit that can break. We had projects where this was common practice, killing lowpoly shading as much as possible. Letting the normalmal do all lifting. 
    Has its perks, but doesnt work on every mesh, works better the more planar a mesh is
    "flatten the vertex normals" - this can be done in Blender with Loop Tools > Flatten, right? I tried that, but it did not help in this particular case. 
    No idea about blender. But this sounds like a geometry flatten to me. In maya it would be average normals, making sure all these point in the same direction.
    Again, its a possibility. Doesn't mean its the ultimate measure in this case. Look at the low poly without normalmaps, there is a pretty hefty shading difference in that area. The normal map tries to compensate that, but likely cant because there isnt enough pixels to create the needed gradients.
    On top even if there was enough resolution. Once compressed, the issue might come back in engine.

    Minimize the low poly shading and you'll have this under control
  • ZacD
    Online / Send Message
    ZacD ngon master
    Yeah heavy gradients in a tangent space normal map or differences in shading between the low and high poly causes:

    More shading errors if the baked normal map tangent space isn't synced with the engine
    More shading errors if there's not enough resolution
    More shading errors the heavier the texture compression
    More obvious shading issues on LOD1+ if sharing a normal map
    Higher disk space usage once the normal texture is compressed to disk


    None of these are bad enough to ruin an asset, but just things to keep in mind and reasons to pay attention. 
  • DC74
    Offline / Send Message
    DC74 node
    Fabi_G said:

    To flatten the vertex normals, you would copy the vertex normal vectors of a plane to the selected vertices. You might have to split hard edges manually in oder to edit their vertex normals indepent of each other, never did that manually in Blender.

    To flatten the vertex normals, you would copy the vertex normal vectors of a plane to the selected vertices - by Mesh > Normals > Copy/Paste vector? Ok, I will try this, thanks! 

    The images below are just an example of how it can be used. In this particular case I copied the vector from the face and applied it to a single vertex (though it looks bad now): 

  • DC74
    Offline / Send Message
    DC74 node
    Fabi_G said:

    To keep everything very simple, you could make that lower edge hard (and split UVs) to control the shading. I would probably try this first. (Edit: something like this:

    Yes, I tried that as well. I did not really like how the textures looked in Substance Painter, so I removed that seam (and sharp edge) and added more geometry. That might be not the best solution, since the amount of polygons increased, but I managed to fit into the polygon budget anyway. 
  • DC74
    Offline / Send Message
    DC74 node
    Neox said:
    Look at the low poly without normalmaps, there is a pretty hefty shading difference in that area. The normal map tries to compensate that, but likely cant because there isnt enough pixels to create the needed gradients. Minimize the low poly shading and you'll have this under control
    Yes, thanks! The shading on low poly was bad indeed. I added more geometry to fix that. Once the shading was improved, the artifacts were gone. The downside was that the amount of polygons increased, though. 
  • DC74
    Offline / Send Message
    DC74 node
    ZacD said:
    Yeah heavy gradients in a tangent space normal map or differences in shading between the low and high poly causes:

    More shading errors if the baked normal map tangent space isn't synced with the engine
    More shading errors if there's not enough resolution
    More shading errors the heavier the texture compression
    More obvious shading issues on LOD1+ if sharing a normal map
    Higher disk space usage once the normal texture is compressed to disk


    None of these are bad enough to ruin an asset, but just things to keep in mind and reasons to pay attention. 
    Ok, thank you! I will try to bear that in mind! 
Sign In or Register to comment.