Jump to content
breadbox

UV unwrap without holes

Recommended Posts

Trying to use the uv unwrap on some high res geo but it produces holes in the planar projections (as expected but not desired). some of my texture baking operations in other applications are creating some artifacts because of the non seamless UV surfaces.

Is there a way to weld them back together to make more seamless uv shell islands?

Or to somehow make a "shell" attribute from a low res geo that could then stick to the high res remesh?

 

UV_holes.thumb.png.5f05b771b28903334bc5d7b5d3181954.png

UV_textureing_question.hipnc

Share this post


Link to post
Share on other sites

Still looking into this to see if there might be a better way. 

I can potentially UV the voronoi clean at low res, and then apply the remesh after the UV but remesh kind of destroys the UV.

Is there a way to preserve the UV's through the "remesh" operation? 

 

Share this post


Link to post
Share on other sites
7 hours ago, breadbox said:

Still looking into this to see if there might be a better way. 

I can potentially UV the voronoi clean at low res, and then apply the remesh after the UV but remesh kind of destroys the UV.

Is there a way to preserve the UV's through the "remesh" operation? 

 

If the shapes are not too different after remesh, you can indeed transfer UVs between the two geo, like any other attribute. You can use the Attribute Transfer node, that take two inputs, and transfer based on distance, with options to average the values etc.

You can even do your own by using xyzdist, primuv (uv of each polygon), and transfer the UV of vertex or points based on that.

But concernign your initial question, I am wondering if there is not a way to process the UV to fill the holes : you can use the Connectivity node and check the « use UV connectivity »; then use the Measure node on « area »; then inside a For Loop based on the class attribute of the Connectivity Node, you Promote the area to detail, setup on « sum » and not average, so that you get the area of the island of UV, and Promote back to primitive. Then for each primitive, you look at the area, and if it is lower than a certain threshold (if is an isolated polygon), you seam its UVs with its neighbours (I think there is a node than can do that ? Or maybe loop over its points, get a list of neighbours primitives, and create its UVs averaging the UV values of its neighbours).

And you « loop » that process a number of time necessary to fill the holes. 

I haven’t tried, that’s just how I would explore to obtain a solution...

Hope this helps :-)

Share this post


Link to post
Share on other sites

By the way, there is this 3 minutes tutorial that can help you (but instead of doing it manually like she does, you can try to select your seams using the « algorithm » I discribed above to automatize it based on a threshold of the size of your islands) :

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×