GSOC 2016 - UV Tools

Ok, I warned you I did not have much idea about UV map :slight_smile:
For example, avoiding overlapping UVs would be good. Or at least some way that Blender can detect overlaped UVs and you can easy select them from UV editor:

What interests me is that this kind of meshes obtained from dyntopo for example, you can get better results when Texture painting, without so many imperfections when you paint. On occasions you do not want to use the model obtained from dyntopo for animation and not want retopo, simply you want to paint smoothly. I have tried very many configurations with Smart UV project in such meshes and always get problems when texture painting.

Anyway I just wanted to know if your project would bring some improvements to these “bad” topologies obtained with dyntopo, I do not attempt to do a “feature request” on your project.

Good luck with the project and you have fun!

I’m definitely looking forward to this project. I plan on being available for testing/feedback.

I think by straighten people mean something similar to UV Squares.

I’m really happy to see that we will have new features in Blender UV editor. I unwrap three or more models all days and the tools are really excellent (unwrap, sculpt, pin vertices&live unwrap,…) but sometimes I need more tools.

  • The non-box pack system. At the end is true that the user make better packs, but a good initial point will help.
  • Islands groups to respect in the pack tool.
  • UDIM, but if this is hard, well, to other update :slight_smile:
  • UV-squares
  • Straight a loop of UVs using the space between of the vertex in the real world (<= This is really usefull and one time I see a tools or addon that made that, but now I don’t remember)
  • Circle tool to make perfect circles
  • Path selection (like in the viewport)
  • Tell the margin to make packs in pixels (normally I want keep 4 pixels between island because is the space that texture compression uses)

And other less important things for me

  • Opacity or hidden texture for the UV-editor. I cannot edit UVs with a color grid texture without end crazy with all the colors in the UV-editor.
  • Display vertex position in the uv-editor near to he vertex, and individual numbers for each vertex selected (not in the menu)
  • Relax in the sculpt that relax the area between the UVs, not the angles.
  • Select island by the size of this (usefull when you want select a lot of little islands)
  • Distorsion feedback in the viewport (angle & area)
  • Stacking of the UVs with same shape

And thing only to record

  • weight some regions of the model with more weight to have more space in the UVs, for example a front of a face.

And only to make official that I’m crazy

  • A transform box of the selected (like a lattice or transform box like krita/photoshop)

I have told a lot of things, but if you make only the pack system I will be happy :slight_smile:

I really hope that if inspiration is taken from an external app, it’s NOT UVLayout. I have no idea how it’s survived this long, it’s literally like stepping back into the early 2000s. Unfold3D is easily the king of unwrapping these days, I’d love to see some of its features creep into Blender.

that would be very nice if you can make the unwrap without packing (on selected uvs only :slight_smile: ) Which actually leads to the other thing the “unwrap in direction”

I attached picture to describe it. I was trying to make addon some time ago and it almost worked :slight_smile:

The script worked like this:

  1. Store selected UVs positions in array (also with eventual pinning)
  2. Pin everything else
  3. Unwrap
  4. Revert position only on X or Y direction based on user option

It worked in most of cases, BUT not on spiral-like uvs (uvs were overlapped because as far as I know Blender doesnt care about flipped uvs). A there was some issue with crashing and Im not very experienced python scripter. :slight_smile:

Hope it will help you to find solution.

Thank you

PS. About flipped uvs, would be cool to have some visual feedback to see if uvs are mirrored(flipped).
Offer finger, we, users, take whole arm :slight_smile:


Wow, thanks a lot for all the great feature ideas. Glad to see there’s some interest in this project.
I’ll collect all the ideas in a wiki page and decide on priorities together with my mentor. :slight_smile:

The ui of unfold3d looks awesome,blender could easily look like that, and by straighten people mean align to x or y i think.

Hi SaphireS,
Just happened to stumble across this, Maya script “UV AutoRatio Pro” , Repo
Now is open source. May be some interesting stuff is there for insight (ô¿ô)

Neat, that’s basically Average Island Scale with “Selected to Active” which I was investigating anyway. Thanks a lot!

it would be nice to see new unwrap options,eg a project from view combiend with the unwrap function.A kind of weighted unwrap form view

or autounwarp by materials

a dream would be a autounwrap while you modeling in realtime,if you ready with modeling uvs are done too

What will be great for UV, and I have never seen it in another software, would be to be available to move UV and texture at the same time. Once you have finished the UV and texturing, and then you decided that need more space or just to do a Atlas image. Ideally at some point that tool would allows you to “bind” or “anchor” image and UVs and then you move all at once.

I too would support the idea of being able to deform the image texture itself by moving or reshaping islands in the UV editor.

The idea would be that reshaping an island would work kind of like a lattice deform and moving an island would act as a sort of rip and move tool (or a mixture of both). This would assume that the user is aware of likely data loss if anything is scaled down and is aware that his image layout could go haywire if the unwrap completely changes with new islands (perhaps in that case, you don’t do the image remapping on operations done from the 3D view and only do it from the ones in the UV window).

Being late to the thread, I think you’ve already gotten a lot of good ideas, but I also think that we need to expand on basic usability as well such as similarly-shaped islands all having the same alignment (because right now a lot of islands get rotated either 90, 180, or 270 degrees).

Very interesting suggestions, never thought of that.
I added it to my notes (although with low priority).
Thanks :slight_smile:

Other good tool will be if you have two loops of vertex selected, with the same number of vertex align each vertex with his pair. Because sometimes you cannot use a square UV or something similar, you need to align the exterior loops with pin vertex to make good UVs, but the vertex in each side of the loop have different Y position. And maybe with more than two loops, to make tiles will be usefull.

I want to share an open-source packing implementation:

I think it uses an genetic algorithm for variations, the results are pretty good.

A good packing algorithm would be great if exposed in the API - not only for other UV tools, but also for manufacturing purposes - for CNC and 3d prints fitting on the manufacturing area.

I am the developer of BlenderCAM, the extension of blender for CNC machines, and that is why I am also very interested in a better packing algorithm, although I allready developed several of those for blender, none is perfect…

That is an interesting idea – to expose the packer as an API function or set of functions not tied directly to UVs. The natural thing is to just use the data structures already there for UVs, but this is a function that is somewhat easily separated from that use. And it would have the added advantage that it would be easier to write unit tests for.

Thanks a lot, I already had SVGNest on my list of reference implementations, but it never hurts to point me at such stuff. :slight_smile:

My report for this week can be found at:

Stanley82, here’s the optional packing feature for unwraps you requested:

:slight_smile: Cool work…

This is awesome! Great work! :smiley:

I’m not sure whether this is on the list or has been mentioned before, but i’ve just been surprised to learn how snapping in the uv editor is limited to incrementally to just 8 positions in either x or y.

Is there anything that can be done for that? Setting the grid size and being able to snap to any position on the grid would be the ideal.

At least one use case for this is for setting up low resolution lightmap uvs. :slight_smile:

Thanks again for all the great work!

Aidy. :smiley: