Page MenuHome

Fix T98240: UV unwrap when mesh has no boundary.
Needs RevisionPublic

Authored by Chris Blackbourn (chrisbblend) on Aug 13 2022, 4:59 AM.

Details

Summary

If a mesh has no boundary and no seams, previously, the UV Unwrap would fail.

Now, we add additional constraints to the solver to allow it to find a solution.

Compare with D15263 which provides the interaction, but does not unwrap the mesh.

Resolves: T75007

Allows: D15682

Diff Detail

Repository
rB Blender

Event Timeline

Chris Blackbourn (chrisbblend) requested review of this revision.Aug 13 2022, 4:59 AM
Chris Blackbourn (chrisbblend) created this revision.
Brecht Van Lommel (brecht) requested changes to this revision.Aug 15 2022, 12:59 PM

With a cube I get a result like this:

It's not clear to me what the logic is behind the weights in the matrix, there is some result but it doesn't look useful.

My advice would be to close T98240 as not a bug and move on to more important improvements for UV editing. I don't think it's a good use of time to focus on getting islands without boundaries to unwrap. Adding automatic seams for example would be a much more useful feature that can also solve this problem.

This revision now requires changes to proceed.Aug 15 2022, 12:59 PM

Additional commentary here : https://developer.blender.org/T75007#1352734

From my POV, D15681 fixes the problem at hand, i.e. "Attempting to unwrap a mesh with no boundary has no interaction", and introduces a new problem, i.e. "Unwrapping a mesh with no boundary produces an ugly unwrap."

In my mind, an ugly unwrap is better than no unwrap at all.

Especially so as it opens the possibility of making the ugly unwrap less ugly.

The other fix, D15263, allows for the interaction in some cases but not others.

But I don't think it makes sense to mark this as "not-a-bug, will not fix" when we have two different fixes available.

(The other-other factor here is T78101, where two temporary pins are automatically added to the mesh to allow for an unwrap. The fix for that one appears to be to not add temporary pins, and instead add additional constraints to the LSCM matrix, as in this fix here. Progress in this change unlocks progress on T78101)

In my mind, an ugly unwrap is better than no unwrap at all.

I just disagree about this, I think it's worse.

To me it's a general software design principle, if you have an invalid input it's better to give an error or skip it.