Deform Curves on Surface Node
The Deform Curves on Surface node translates and rotates each curve based on the difference in its root position. The root position is defined by UV coordinates stored on each curve and the UV Map selected for the purpose in the Curves surface settings.
The transformation is calculated based on the difference of the original mesh (before shape keys and modifiers are evaluated), and the final mesh.
Unlike other geometry nodes, this node has quite a few implicit inputs:
The original and evaluated mesh are retrieved from the modifier object's surface property. This means the node only works for curves objects.
The original and evaluated UV map are also retrieved from the object's surface property.
A 3D vector attribute named
rest_position, used for calculating tangents for rotating curves that are consistent with the tangents calculated on the original mesh (the rotation needs to be calculated from the normal and tangent of the original and evaluated meshes).
A 2D vector attribute on the curve domain named
surface_uv_coordinateto store the location of the root positions on the surface mesh's UV map.
In future development, this node will be generalized so the setup is more flexible.
Parts of the internal operation are similar to the Sample UV Surface Node.
Standard curves input.
Standard curves output.