Parametric/Implicit UVs in Geometry Nodes
Short version: User UVs can often break setups if they don't exist, or if they have overlaps, or if they're distorted. Parametric uv's would avoid all these issues, and there's existing concepts in Blender that would neatly port over.
Long version:
Blender has a form of parametric uv's already in cycles and eevee. Connect geometry->parametric to a surface output, and you can see parametric uv's are available for meshes, metaballs, curves, nurbs surfaces, even point clouds (sort of):
As far as I can tell these aren't exposed to geometry nodes, and don't guarantee unique uv's per polygon/primitive.
Full parametric uv's in geometry nodes would mean that triangle polygons would stay as they currently are, quads would get a quad 0-1 layout, and ngons and other primitives would get some kind of mapping to guarantee every location on that primitive would have a unique parametric uv coordinate. That is potentially undefined for more complex primitives (metaballs, volumes etc), but is doable and well defined for meshes and curves.
The big advantage here would be to allow for workflows that don't require uv unwrapping. Eg for scattering points, as long as each point stores the id of its parent primitive (eg polygon 12) and its parametric uv, it has a stable and well defined anchor point.
This would feed directly into hair and fur systems, and seeing as simulation is now a key target for geometry nodes, emitting particles and tracking things on the surfaces of other things for dynamics.
Currently it is easy to fall into cases where relying on standard uv's breaks setups; if uv's need to be altered for texturing requirements, geometry node setups can substantially change in look and behavior. If no uv's exist, systems break. If uv's overlap, systems break. Parametric uv's would solve all this!
Full disclosure, I'm a Houdini user jumping over to Blender and geometry nodes. Relying on parametric uv's are such a core part of workflows in houdini, where a lot operations rely on a primid and a primuv attribute to work, it was surprising to find it wasn't supported in Blender.
There's a good explainer of parametric uv's for various primitive types on this page: sidefx.com/docs/houdini/model/primitive_spaces.html
0 Comments