Rhino WIP Feature: UV Editing Improvements

Hi all,

There are already some improvements to UV unwrapping and editing in Rhino 9 WIP and more is coming. I’m concentrating on fixing issues with workflows and reliability.

UV Unwrapping

As-rigid-as-possible method in the Unwrap command has been replaced for better results.
Symmetric parts unwrap symmetrically for both LSCM and ARAP. Parts with similar shape are oriented consistently.
Reliability of unwrapping has also improved. It is less likely to find parts that won’t get valid UV islands.

UV Editing

Adding and removing UV constraints is more flexible. It is possible to add edges to existing edge straightening constraints and combine two or more of them into one. In addition to removing all constraints it is also possible to remove individual constraints.
ConstraintImprovements

Please, try out Rhino 9 WIP and let me know what you think. What would simplify your UV workflow?

18 Likes

I see constraints :slight_smile:

4 Likes

And, as you may have noticed, the UV Editor has constraints also in Rhino 8.

Hi Jussi

These are good news!

Especially for the constraints, it would be useful to see the selection in the viewport.

@Jussi_Aaltonen

I hope this issue/workflow falls within the scope of what you’re currently working on.

I have a workflow where I need to apply a graphic texture to a 3D model, and then unroll that model into flat panels for printing and cutting.

The problem is shown in the image above: the graphics/textures on the unrolled parts do not match the original 3D model.

Here’s the process I’m currently using:

  • Apply the texture to the 3D model using surface mapping
  • Bake the texture to a .bmp file
  • Unroll the parts using UnrollSrf with Keep Properties = Yes

The problem is graphics on the unrolled panels are a mix of:

  • Flipped
  • Rotated
  • Slightly off-scale and/or location

As a result, I end up spending several hours per file manually resizing and rearranging the UV mapping to get the unrolled panels to visually match the 3D model.

What’s particularly frustrating is that the result is almost correct — it’s close enough to feel like there’s just a small bug or mismatch in the pipeline, which leads to a lot of unnecessary cleanup work.

I tested this again with Rhino 9 this morning, and the problem still persists.

One more request: could the Bake functionality be added to RhinoCommon? That way I could script this process and avoid some of the manual steps.

Thanks,

DK

1 Like

Does the UV pattern match the baked texture after running the Bake command?
Is it necessary to work on polysurface/surface objects? Could you use meshes for this?

Yep, that’s one the features I would like to add. But it’s a bit tricky to do.

Hi @Jussi_Aaltonen

In my experience, unless the texture is baked properly, there’s no reliable connection between the flattened geometry and the original UV mapping:

These panels are intended for laser cutting and will be assembled to sub-millimetre tolerances (over meters of seam length) - so while meshes are fine for artistic workflows, they don’t meet the precision requirements for engineering at this level.

Cheers

DK

Hi @Jussi_Aaltonen

Just for good measure, I:

  • Exploded the panels
  • Bake the texture from a single panel
  • unrolled that panel

This is even less of a desirable result with the UV mapping showing the panel reference massively out of scale to the texture:

Cheers

DK

smart UV unwrap layout

It would be amazing if Rhino 9 could make an smart suggestion for an continuous unwrap layout and also automatically adjust the size of the UV grid, so that you would only have to manually edit the seams when necessary.

Below is a rough proposal for the unwrap of a rounded cube.

Hi DK,

It’s a long time since I dfid this so my memory is a bit hazy.

However I seem to remember the process as follows:

  • Model sail and split into Deg1 developable panels, making sure all panels will join back into a single polysrf with no naked edges.
  • Planar map image onto polysrf
  • Bake textures
  • explode and unroll with texture coords (script attached)

This all went well and the sail was actually pretty fast too.

Hope that helps. Sorry I can’t remember the process in more detail, but at least you now know it is possible :wink:

Regards, Steve

UnrollWithTextCoords.rvb (3.5 KB)

2 Likes

the Rhino help shows the following behavior for the command ExtractUVMesh:

But that’s actually how it looks for me. Am I doing something wrong? Is there a checkbox to activate a continuous unfolding?

Usually the only type of texture mapping on mesh objects that survives flattening is the surface mapping. Baked objects use surface mapping.

Unwrapping with automatic seams has been requested before too. Linked this request there as well.

What do you mean by ‘adjusting the size of the UV grid’?

The ExtractUVMesh command just adds a flat mesh object that represents the object in the UV (texture mapping UV, not NURBS surface UV) space.