GSOC 2024: UV Stitching Improvements

GSOC Final Report

UV Stitching Improvements
Project Summary:
During Gsoc I completed 3 main deliverables.

  • Seam Weld (PR)
  • Underlying Geometry (PR)
  • UVIsland Deformation (PR)

Current State of UV stitch tool.
Seam Weld:
The Seam Weld feature allows users to select two non-cyclic edge loops on two
separate UV islands and merge those islands together along that seam. This deliverable
took the most time to implement of the three that I worked on due to various
misunderstandings I had about how the UV system works in Blender. One major
challenge was grasping the concept of loops and understanding that the UV islands are
not actually connected to one another but are instead multiple loops sharing locations
in 2D space.
Underlying Geometry:
The Underlying Geometry functionality was implemented without too much difficulty.
Most of the time spent on this task was focused on coding style choices, such as
determining where this functionality should logically reside and ensuring consistency
with the rest of the Blender codebase. Although this was the second feature I worked
on, it was the first PR to be resolved since it involved a smaller amount of code.
UVIsland Deformation:

This section underwent the most changes in terms of how to approach the problem.
Initially, I planned to perform the deformation using a Least Squares solver, but after
many conversations with my mentor, we explored several different implementation
ideas and eventually settled on using linear interpolation. One of the main takeaways
from this deliverable is the importance of focusing on getting the MVP (Minimum Viable
Product) pushed through, as having an initial implementation can greatly aid in further
iterations, even if you end up rewriting the logic entirely.

Future Goals for UV stitch Tool:
As I previously mentioned, for the UV Island Deformation deliverable, my mentor and I
considered several different implementation methods to develop this functionality. One
of the approaches we explored was Laplacian Deformation. I researched this topic more
thoroughly than many of the other ideas, but ultimately chose the linear interpolation
solution. Now I am working on changing the logic of the deformation functionality to
use Laplacian Deformation instead of linear interpolation. I have been working on this
deliverable for the last two weeks of GSoC, and I plan to continue working on this
project after GSoC ends as well.

18 Likes