With Geometry Nodes in Blender, we can easily transform any object into its UV map.
And it is not necessary to bake the coordinates transformation of its points into shape keys. With the Geometry Nodes, we can do this very simply.
Let’s add an object to the scene, for example, Suzanne: shift + a – Mesh – Suzanne.
Add the Geometry Nodes modifier to the object.
Switch to the Geometry Nodes area and add a “Set Position” node to the main tree branch.
Extend the link from the “Position” input of the “Set Position” node to the free output of the “Geometry Input” node.
In the Geometry Nodes modifier panel, click once on the “Input Attribute Toggle” button next to the input field to reset its type. After that click on the cleared field and select “UV Map”. Now we pass the coordinates of the object’s UV map into the Geometry Nodes tree.
The link we created sets the coordinates of the UV map to the “Position” input of the “Set Position” node. So, for each point of the object, instead of its original coordinates, we set the coordinates of the same point on the UV map.
However, instead of the object’s UV, now we see in the 3D Viewport window something incomprehensible. This occurs because the points on the original mesh are not separated by seams, as in the UV.
Add a “Split Edges” node to the geometry node tree, which will split the original mesh geometry by seams.
Now we can see that full mesh transformation to its UV map.
To make a transformation way visible, we can mix the coordinates of the mesh and the coordinates of its UV through the “MixRGB” node. We can use its color inputs for mixing vectors because mathematically there is no difference between three values for vertex position and three values for color.
Now moving the “Factor” slider on the “MixRGB” node, we get a smooth transformation for the mesh points from one coordinate to another.