Rhino 8 - UV Editor bugs

Hi @Jussi_Aaltonen,

i’ve tried some simple tasks in the new UV Editor which are causing some issues. My task is to unwrap a mesh which consists of 3 disconnected pieces. The goal is to unwrap the mesh as a whole. I want to keep the proportions (size) between the pieces right. Each island should also follow some curves which i have ready in model space.

  1. After unwrapping, of course each of the 3 pieces is layed out in random locations of the uv space.

  2. Unfortunately because of the new design which keeps the UV Editor as a seperate window, i do not see my given outline curve to which i would like to tweak every island to. I cannot redraw these curves in UV Space because they are quite complex. This was an easy thing to do in Rhino 7 where the UV Layout was visible in model space and where it was possible to choose the size of the UV rectangle to what i want.

  3. When i try copy & paste my curves from model space into UV Space (the new window), i get this error message:

grafik

This message is quite misleading as i do nothing to my meshes at all. I just try to paste curve(s) into the editor window.

  1. Since i could not get my curves into the editor i’ve baked an image of my curves in a square in order to see it as the background texture. I’ve chosen the image but it is not shown, instead the numbered grid is shown. Once i closed and reopened the editor, the image is shown.

There are other issues i found which i reported years ago. This one is the first i’ve tried:

  1. Create a mesh with 2 disconnected pieces (join just 2 plane meshes)
  2. Unwrap
  3. Open UV Editor, you have two islands to select in the editor (OK)
  4. Close UV Editor
  5. Explode the 2 meshes and select only one of these mesh pieces
  6. Open UV Editor it still displays both islands created in step 2

You can also repeat a similar error with a simple mesh box:

  1. Create a mesh box with 6 faces
  2. Unwrap, select all unwelded seams
  3. Open UV Editor to see all 6 islands (OK)
  4. Close UV Editor
  5. Using ExtractMeshPart command, extract 5 faces and delete them
  6. Run UV Editor on the remaining single face mesh, it still has 6 faces ?!

It seems i can only cure above issues if i unwrap each mesh piece on it’s own or again but then i do not get the proper proportions. Once i have a mapping already created it must be deleted before creating a new one.

_
c.

2 Likes

Hi @clement,

I’ve logged an issue so we can look into all this.

https://mcneel.myjetbrains.com/youtrack/issue/RH-78698

Thanks,

– Dale

1 Like

Hi @dale,

thanks for adding this to the bugtracker, i think above issue is there already but i cannot find it.

Another issue (which i’m sure has been added in the past) is that sub edge selection does not work using CTRL+SHIFT. Eg. if you select one mesh edge (A) of an island, then another one (B) and double click holding CTRL+SHIFT inbetween A-B, it does not chain the edges but brings up the selection popup to choose between the mesh edge and the mesh face.

c.

Hi @dale, i’ve found the issue, it’s from 5 years ago:

https://mcneel.myjetbrains.com/youtrack/issue/RH-47962

_
c.

Hi @clement
This seems to be tricky to repeat. I can see this happen occasionally. Does it happen consistently in your machine?

The way UV editing is designed to work in Rhino is that the geometry is first finished and then the UV’s set up. It gets tricky if you need to modify UV-mapped objects and often it takes another round of unwrapping and making all the tiny tweaks.

This is a bug that I need to fix.
RH-79010 UV Editor: curve objects can not be copied into UV Editor

You can try to simplify the custom mappings by running TestRenderMeshMapping command on each of the mesh objects. That command takes the current form of the geometry and attempts to apply the existing mapping there.

Not consistently on naked island border edges but mostly on interior island edges which i try to loop select in order to pin them or to constrain them to curves.

Unfortunately that is not the design required to do some serious UV mapping. Imagine you get a mesh and a set of curves which need to be preserved in the UV layout you’re about to create. Using the UV Editor in V7 it was possible to have these curves and the UV meshes in (the same) model space so you could align things in the same window.

With the new design of the UV Editor in Rhino 8 this task is almost impossible. Having the UV Editor in a floating window makes it hard to work with on smaller laptop screens as you constantly have to minimize it.

Btw. I’ve managed to get curves from model space into uv space by changing the ActiveSpace attribute of the curve object but if you try this it will make the curves invisible first. The curves need to be selected (blindly), and the UV Editor must be open before the ActiveSpace is set for the curves. Then, at first the curves will be invisible but once copied again using _Copy _Inplace they appear in the new UV Editor. Imho we need maybe an update for the ChangeSpace command to handly this task ?

My fear with this overall concept of having the UV space detached from the model space is that every curve you create in, or copy to UV space is about to be lost once the UV of an object is changed.

I think many users will run into this problem sooner or later. The UV Editor should be able to detect that the change (delete of mesh faces) has been done. But i have no idea how you would detect that.

_
c.

@cleme

I’m looking into the copying issue. You can use Copy command for now. Your curves should not be deleted from the UV Editor. You can open empty UV Editor to see what curves you have there.

Once you use a curve as a constraint in the UV Editor that curve becomes private for the object - so it will only show up when UV editing that object. This means that if you’re willing to use same curve to constrain UV’s of multiple objects then you need to make a copy of the curve before.

This is interesting. Which version of Rhino are you on?

Hi @Jussi_Aaltonen, i noticed that too and wrote my script to change ActiveSpace always by duplicating the objects (curve and points) from model space. One question though: With “object” you mean the one (mesh) beeing displayed in the UV Editor, right ? Or do i need one curve per UV island ? (both seems to be a bit cumbersome imho compared to V7)

(8.2.23339.13001, 2023-12-05)

_
c.

I mean the Rhino object that is being UV-edited. You can constraint multiple islands to the same curve and also islands that belong to different Rhino objects.

Thanks @Jussi_Aaltonen. I’ve found some other issues with Points beeing ported from model space to UV Space.

Once i re-open the UV Editor or make any changes inbetween to the mapping itself (Unwrap) it seems i loose all points i’ve created in the UV Editor. Even with normal usage pinned vertex locations are often just removed.

Sometimes the buttons for vertex pinning, edge straightening and curve constraining are just greyed out even when i have an island selected. If i then close and re-open the UV Editor i can see the icons are active for a nano-second before they are grayed out (unclickable) again.

_
c.

It is not as simple as that. All objects in the UV Editor should also be assigned to that specific UV Editor viewport. I might have to write some dev tools to make that possible for 3rd party developers too. Are you using C++ SDK, RhinoCommon or something else?

RH-79131 SDK: add tools to move objects from model space into UV Editor

Those tools require the Unwrap method being set. Unwrap method gets easily set to None if you go and modify the UV’s manually (for example by dragging a vertex). At the moment if any of the UV islands is set to Unwrap method None those tools are grayed out. You should see the reason for grayed out icons by hoovering the mouse cursor over the button.

This is something I’ve talked about with @BrianJ earlier and is on the list for improvements. And now also logged as RH-79130 UV Editor: tweaking UV islands disables constraining tools

Hi @Jussi_Aaltonen, thank you that is a useful command to know. Is this the same as exporting the mesh to obj format and importing it ?

I am using Python so RhinoCommon would be OK.

Hm, i’ve had it set to “Conformal” when the pin and constraint buttons where grayed out.

_
c.

No, it’s not the same. TestRenderMeshMapping makes a new custom mesh mapping out of the current object render meshes. So that makes sure that the custom mesh mapping that is on the object matches the current object shape. It should not significantly change the way texture is mapped on the object.

Exporting .obj and importing will have the effect that the texture mapping is switched from custom mesh mapping to a per vertex texture coordinates that can be accessed via the surface parameter mapping. Per vertex texture coordinates have the advantage that they are not dependent on the shape of the geometry and they are not modified by most mesh commands.