How to deal with long, thin triangles when baking maps?

I’m currently encountering some visual artifacts when trying to bake an image from a specific UV map. See below an illustration of it:

This UV map has overall some nice properties in terms of angular/surface deformation. None of the triangles overlap each other as well. However, my issue comes from the zones circled in red: here are some long and thin triangles, less than a pixel’s length at their thinnest.

I use this UV map map to bake a Vector Displacement Map, ie a map storing the displacement needed to recreate an object from a plane. The map produced through this baking looks like so:

Sadly, the thin triangles of the UV map create some problems after baking the map and trying to recreate the object from it:

The areas circled in red show zones with visual artifacts, where some triangles essentially cross each other. Note that the circle at the bottom of this image corresponds to the same zone as the bottom circle of the UV map image.

My intuition is that because these triangles are so thin, when baking from this map, they essentially sometimes “fight” for the same pixel, leading to unpredictable results. A possible solution would thus be to bake the map by randomly sampling from it until the result stabilizes, the same way we do for a render. I’m however not sure if this is possible currently in Blender.

Note: In this project, modifying the UV map is sadly not really an option. It’s created automatically, and after some efforts the map that you see here is the best that I could get.

Yepp long thin triangles are bad… see also:

and especially the mentioned resource at fragmentbuffer…

…additionally this is a really bad UVmap… but you already know that…

One good way of dealing with them is not to have them…

2 Likes

…it’s a project out of hell

:imp: : We have this splendid model here and you task is it to make it better…

If it is difficult to modify the modeling to reduce or remove the triangle,
I think there’s a way to solve it using Remesh

1 Like

The UV map is the way it is because its boundary needs to be fixed. Long story short, I’m trying to build a process to streamline baking Vector Displacement Maps from a given mesh. In such a process, the boundary of the object cannot be altered, since otherwise trying to recreate it from the produced map would “pull” vertices all over the places resulting in ugly artefacts.

Hence, if you take into account that the map needs to flatten all of the mesh into sometimes really weird boundaries, the result isn’t so bad. It is the result of quite a while of tinkering with custom unwrapping methods to balance angles and area deformation. What I have now is the best that I was able to produce thus far, which is why, except if somebody knows of a great UV unwrapping/relaxing scheme, I’m looking more for solutions in the baking process.

…ans still you are searching for a better solution… which by the way isn’t simple because mapping a 3D object to 2D means loosing one dimension… mathematically there isn’t a general solution for this… that’s why good UV-unwrapping is a skill… and so developing good unwraping tools too :wink:

1 Like