Custom UV texture misalignment

My workflow is as simple as it gets:

  1. UVW unwrap the mesh
  2. ViewCaptureToFile the grid on which the UV islands are sitting
  3. In photoshop - create a custom texture
  4. Slap it on the mesh

This is what I get:

And this is the custom texture (with UV islands overlayed)

Mapping tiling is 1x1x1 and does not affect the texture at all.
Question is - what’s the reason behind the misalignment/locked texture repetition and how do I fix it?

Is this repeat issue shown only when the UVEditor is open? Any chance you can post the 3dm with the texture?

Sure thing, see files attached.
And no - the UVEditor doesn’t trigger the repeat issue - it’s there from the start.
Here’s the UV Editor view when texture is set to “No Repeat”

element_library_new.3dm (6.0 MB)

Apologies @BrianJ , didn’t tag you in my previous message.

Thanks @gkirdeikis … I could not find anything wrong with the texture used, the issue appears to be in the existing UVs for the mesh. I filed this as for the devs to look over… I think it’s a bug. Just to confirm, the unwrap was done in Rhino 7 right?

Understood, thanks.
Yup, done in Rhino 7.18.22124.3001

Hi @gkirdeikis

For some reason your unwrap has resulted in texture coordinates that are mostly outside of the unit square [0,1] x [0,1]. The way those texture islands are packed suggests that they were probably modified after running Unwrap. Anyway that is the reason why your texture is repeated. Unfortunately the way UVEditor works by default makes this a little confusing.

When you run UVEditor with FitLargeUVs=Yes then the rectangle you pick is not necessarily the unit UV domain - instead the rectangle will cover big enough domain in the UV space so that all the unwrapped UV islands fit in.

If you run UVEditor with FitLargeUVs=No then the rectangle you pick is always the unit square [0,1] x [0,1] in UV space. Notice that the size of the picked rectangle does not matter.

Here’s how you can easily get all your UV islands back into unit square:

  1. Use Rectangle to draw a square and then make it red.
  2. Then select your mesh and run UVEditor with FitLargeUVs=No. Pick the corners of the red square for UV rectangle. (Because the texture bitmap is not completely square the rectangle won’t perfectly match the square.)
    You can see now how the UV islands exceed the unit UV domain causing texture to repeat:
  3. Create BoundingBox for the UV islands to make a it easier to find the perfect alignment:
  4. Then use Move and Scale to get UV islands back into the unit square:
  5. Don’t forget to click Apply on the UVEditor to store your changes into the mapping channel.

Sorry for the rather complicated explanation. Feel free to ask if there’s anything unclear.
We are working to improve UVEditor and make it less confusing to use.

Ah got it. Thanks for looking into this!
Have to say - quite a tricky UV Editor system for user troubleshooting. This is the third project where I’ve been trying to unwrap UV’s with Rhino and every time there’s something that forces me into Rhino-Blender-Rhino workflow.

Four main points (at least for me) are:

  • UV seam marking has the same visual display as an active curve/edge selection. This makes it impossible to unwrap more complex shapes that have multiple seams as every seam that is being used for unwrap glows bright yellow and is pushed to front of the geometry. Just becomes a mess to orient yourself what’s in front and what’s in back.
  • UV editor being on the same model space as the geometry that’s being unwrapped. It get’s in the way… all the time. If the UV editor was it’s own little pop-up with it’s own little toggles/buttons - would make the experience so much more smoother.
  • UV editor not showing the stretch information of the unwrapped UV’s is not great. That’s one of the main pieces of information that users are looking at when deciding where seams should be placed. The built-in UV grid texture helps with this a bit, but definitely should not be considered a proper substitute for a “heatmap” approach that colorizes the UV islands.
  • When unwrapping more complex objects I go back and forth. Unwrapping - checking islands - unwrapping - checking islands and so on. This requires me to use “previous seam selection” option every time I run unwrap. If I forget to click on it once and continue unwrapping another part of the form… well my work up until that point is simply gone. That one hurts.

Hope this feedback will be of some use when developing the next iteration of Unwrap/UVEditor system.


Those are all good points.

Filed as RH-68855 Unwrap: do not highlight occluded edges during seam selection

This is something that has already been discussed for a long time.

Filed as RH-68856 UVEditor: show stretch information

I consider this pretty important. Filed as RH-68857 Unwrap: ability to restore previous seam selection

Thanks for your feedback!


RH-55495 Separate UV mapping window requested

is fixed in the latest WIP

RH-68855 is fixed in the latest WIP

1 Like

RH-68857 is fixed in the latest WIP

1 Like