Skip to content

Add new Layer/Mask Type: "UV Border Distance" #319

@andycuccaro

Description

@andycuccaro

Pre-Flight checklist

  • Did you check to see if this issue already exists?
  • This is a single feature request. (Do not put multiple feature requests in one issue)

Describe The Feature Request Below

Currently, Ucupaint lacks a UV Border Distance generator, which is a fundamental™ tool available in software like Substance Painter. This makes it difficult to create procedural effects that depend on UV seam proximity, like those needed when texturing clothes, such as stitches alongside UV seams, masking alongside seams for applying wrinkles only there, etc.

Proposal: Add a "UV Border Distance" generator to the "Generated Layer" category, similar to existing generators like "Ambient Occlusion" and "Edge Detect". This generator would:

  • Calculate distance from each pixel (or UV coordinate) to the nearest UV border/seam
  • Output a grayscale map where black = maximum distance, white = on UV border
  • Support explicit UV seams and, probably, automatic UV border detection for open meshes (like a disk, a plane, stuff like that).
  • Support being added as a Generated Mask (thus, having Invert, Ramp, and Curve modifiers).

Its usecase can be seen here: https://www.youtube.com/watch?v=6wiqysx0Dq4&t=226s

Image

PS: From what I understand, the UV borders could be detected using bmesh.types.bmesh.types.BMEdge.seam.
I've been playing with Claude AI to see if I could maybe implement it, but since I'm not a coder, I can't fully understand if the code it outputs make sense. I can share it, if you think it might help in some way. The idea would be to generate a function or field by detecting the UV seams and calculating the distance to the UV space border, to other other UV Islands, and inside the island itself.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions