Home Technical Talk

UV Mapping discussion

polycounter lvl 18
Offline / Send Message
Rick Stirling polycounter lvl 18
Evening folks. Just a wee heads up on a UV mapping proposal I've posted on the Silo forums. I'm not posting this to get people to jump in and support me, but to point out any flaws or anything that I missed. There is no need to join there if you are not a member, just post any response here if you do feel inclined. I'll post the link, and a copy of my suggestion

Firstly, the link:

http://www.silo3d.com/forum/viewtopic.php?t=3158

And now the post.

I was driving back from the beach today, and thinking about UV mapping and the various discussions. After a while I think I managed to come up with a complete solution, and would appreciate others feedback on this.

Just a little background - I've been involved with 3D for about 10 years, and working in the games industry for the last 6. I've modelled environments and props in the past, but for the last few years I've been pretty much a character specialist. I've used several packages, and all have pros and cons. Sometimes my turnaround for building, mapping, texturing and rigging a character can be 3 weeks, and sometimes it can be as little as a day. With all this in mind, here goes:

Its all about ease of use, automation, and having complete control. For my line of work, one click mapping is impossible. For some people the results provided by a simple one click solution would be more than acceptable. Thats why we need to have the balance. I love the automatic features in Max, but on their own they are not good enough.


Automation
Pelting seems to be the buzzword here. Simply put, a user defines a continous area of polygons, and the software unwraps them.

This could be simple as selecting 4 faces, and hitting a "Map It!" button, that will planar map those faces.

Taking a cue from Wings 3D, I'm suggesting that we "paint" the blocks of UVs, using a sort of mask system. 4 colours would probably be enough, but lets say we have 8 colours of selection masks.

I'll use an example of a space marine - you know the type, armour, grenade and ammo packs, big shoulder pads.

Firstly, I block off all the legs in a colour, then I block off the torso in a secord colour. Next the head - i could use a third masking colour, or use the same as the legs, since his legs and head share no connection polygons. There we have a REALLY simple masking selection.

If we select any polygon on the model, we can shrink and grow our selection, but in the UV editor the selection would NEVER cross a mask boundary.

After we have our basic selection, we can refine them - lets mask off the feet and the knee pads. Lets mask off the soles of the feet. Lets seperate those ammo pouches from the torso. ets mask off the hands. We dont need many colours, as we don't need a seperate colour for each section. - the hands and feet and ammo pouches could be the same mask colour as they wont touching.

Ok, so we have masked out our area. Anywhere where colour masks meet there will be a seam - but thats not enough seams. I'm masked my arm off, and its seperate from the torso and the hand - its just a big tube. Next we have the option to and extra seams, by selecting edges on the model. We could select them all by hand, but it is LIKELY that we can use edge loops to do this - select an edge on the inside of the arm, hit the edge loop button, and it selects the loop. It stops at the armpit and the write, as those polygons are in a different masking group.

Then you hit the magic "Unwrap" button that does all the magic - we've all seen this working in Max/Maya/whatever. It unwraps the mesh alson all the seams we created.

That all seems pretty simple to me, it's nothing new.

Complete Control

Once we have all this laid out, it is vital that each face, vert and edge can be moved. Hopefully the selection highlighting will work in the UV editor. The same move/rotate/scale buttons and keyboard shortcuts would work in the editor, so you go to scale mode, and mouseover the quad you want to affect, and scale it either vertically, horizontally, or both. YOu can move edges and verts around - this shoudl be the same as all other ammpers.

The most useful Max5 and upwards addition was vertex highlighting -when I have selected a vert(or number of verts) it highlights the other shared verts so that I know where they are in the editor. It would be nice to extend this to edges - If i select an edge on one of my UV seams, it will highlight an edge on another UV seam from a separate section, so that I know where this UV jigsaw matches up.

Edge sticking would be great - I select an edge or a strip of edges, and hit the stitch selected button. It then finds the shared edges on another seam, grabs that section, moves it into the correct position, rotates it and merges the shared verts/edges.

I beleive that is the most of it, but a useful addition would be the ability to create and name UV selections. I could then have a drop down selection box to easily choose Head/Torso/Left Arm/Tongue whatever. And when I have any UVs selected, I need to be able to lock them, and to hide them. And I need to be able to find them on the mesh - so selecting a group of verts in the editor will have an option to highlight them on the mesh, and vice versa - i select faces on the model, and they get highlighted in the editor.

I'm sorry I couldn't provide pictures, but i'm going out tonight, and tomorrow I fly off for a week.

Replies

  • Eric Chadwick
    Options
    Offline / Send Message
    Maybe I'm missing something obvious here? It seems like all of these functions are already available in the software you mention, 3ds max. Pelting isn't AFAIK, except for a weird implementation in Texture Layers 2, which isn't a free set of tools.

    When I've seen pelting in action, the user typically selects the edges where they want the cuts to be, then the program applies the UVs, flaying the model. This seems a more efficient path than painting chunks of mesh, then selecting cut edges.
  • MoP
    Options
    Offline / Send Message
    MoP polycounter lvl 18
    So basically you want the Silo people to combine the best features of Maya's UV mapping tools with the best features Max's Unwrap UV tool?

    Averaging vertex position horizontally/vertically is a must, you want to be able to select a row of verts and just hit the "align" button, and it averages all their positions out into a perfect straight line upwards or across.
    Likewise a vertex spacing tool (average vertex spacing across a selection) is very useful too.
    Both of these are seen in Chuggnut's tools for Max's unwrapper.
    Maya has the align button by default, but it only aligns to maximum or minimum, not average.

    Max's UV-mapper is one step away from being ideal, for me. The only things it's missing are an ability to break UV seams along an edge selection (why can't they put in vertex and edge sub-objects in the UnwrapUV stack, they'd be just as useful as face selection!) and a good "Relax" tool.

    If I could get someone to grab Deep UV's relaxing algorithm and throw it into Max's Unwrap UI for free, I'd be a happy bunny indeed. smile.gif
  • motives
    Options
    Offline / Send Message
    motives polycounter lvl 18
    [ QUOTE ]

    Averaging vertex position horizontally/vertically is a must, you want to be able to select a row of verts and just hit the "align" button, and it averages all their positions out into a perfect straight line upwards or across.

    [/ QUOTE ]

    even better tho, the possibility to align the whole UV rather than just a row of Uv's. Feel that maya lacks in that aspect.

    IMO the simplest and best UV tool would just be a feature of choosing where to place your seams and then what area to unwrap. To go with this, a good relax.
  • Rick Stirling
    Options
    Offline / Send Message
    Rick Stirling polycounter lvl 18
    Eric, I'm talking about Silo, not max.

    Mop - those align and spacing options are useful, and I missed them.

    cheers for the feedback so far.
  • Eric Chadwick
    Options
    Offline / Send Message
    Ah, ok. Oopsie.

    I'm with MoP, the 3ds max toolset is pretty solid. I have some small gripes, like the SubObject thing he mentioned. A DeepUV-style relax, and a decent Pelt would be very welcome.

    Chuggnut's tools are awesome, I use them literally every day. My favorites...
    Align U
    Align V
    Space Evenly U
    Space Evenly V
    Tranform Tools: Offset & Scale
    The Rotate shortcut tools
    Nudge! Pixel or Unit
    0-1 Fit

    Good stuff.

    Anyone know which low-cost/free UV mapper has a nice Pelt-style option?
  • Mojo2k
    Options
    Offline / Send Message
    Mojo2k polycounter lvl 18


    From mop

    "The only things it's missing are an ability to break UV seams along an edge selection"

    i may be misunderstanding what you mean, but you can break uv seams along edge selections, just select the edges and rt click, and select break
  • MoP
    Options
    Offline / Send Message
    MoP polycounter lvl 18
    I know that, but I meant selecting edges in the viewport, also vertices ... you can only select UV edges and verts in the UV window, whereas in Maya you can select them in the UV window or the viewport, which is a handy feature.
  • moose
    Options
    Offline / Send Message
    moose polycount sponsor
    hehe, that sounds just like maya's tools smile.gif

    I do like your idea of defining 'sections' of the mesh for easier selection, but then again, binding a key to 'select shell' in maya does basically that. You know what pieces are what on the uv map, its just a matter of selecting the right things, eh?

    I think being able to set up those selections would help out in the beginning of an unwrap, but would they be that helpful all the way through? Or would you just end up deleting them after you got halway done?

    I dont think i agree with being able to move edges and faces, im ok with only being able to move one component in a given UV editor - it gives you less room to accidentally click and drag something to fuckall without noticing. Maya's selection updates in the viewports and UV editor, and i have found its a must for uv editing.

    everything you list would be great to have in all uv editors - but the biggest thing would be that the move, rotate, and scale key shortcuts are the SAME in the UV editor as they are in the Viewport. i fucking cant STAND Max for this, so much that i wont UV in it.
  • MoP
    Options
    Offline / Send Message
    MoP polycounter lvl 18
    Moose, you can set up Max's UVW Editor move/rotate/scale hotkeys to be the same as the viewport controls. Just look in the keyboard shortcut editor.
    Although I don't understand why they don't set them as default... still, it's a matter of moments to fix this oversight, then all is good again smile.gif
  • Cubik
    Options
    Offline / Send Message
    Cubik polycounter lvl 18
    Is there any script or something free for max that gives you the option to snap to vertices?
  • MoP
    Options
    Offline / Send Message
    MoP polycounter lvl 18
    I just use target weld for that... chances are if you're trying to snap a vertex to another, you probably won't mind if it gets welded anyway.
  • Rick Stirling
    Options
    Offline / Send Message
    Rick Stirling polycounter lvl 18
    Mop - setting the hotkeys to Q/W/E/R in the unwrap window seems to remove them from the normal interface - can you have it in both?
  • MoP
    Options
    Offline / Send Message
    MoP polycounter lvl 18
  • Rick Stirling
    Options
    Offline / Send Message
    Rick Stirling polycounter lvl 18
  • MoP
    Options
    Offline / Send Message
    MoP polycounter lvl 18
    - Customize -> Customize User Interface
    - Keyboard tab
    - "Unwrap UVW" from the Group drop down list.
    - Look for "Texture Vertex Move Mode" in the list ... bind this to whatever key you want (I use Q).
    - Rotate and Scale are directly below that.
    - Save settings.
    - Enjoy.
  • Eric Chadwick
    Options
    Offline / Send Message
    Also, if I'm not mistaken, when you have modifier-specific hotkeys you have to turn on the Keyboard Shortcut Override Toggle to use them. I wish max would just be context-sensitive instead.

    One thing I really hate is that they named the functions differently in the Customize dialog than they are named in the tooltips. Such a pain to find some of those commands...

    Anyhow, MoP you were talking about selecting edges/verts in the viewport vs. the Edit UVW window. Here's a set of scripts that does something similar. Have to go up/down in the stack to modify the selections, and it's not free, but some of the tools do look useful.
    http://www.polyboost.com/features_unwrap.htm
    The topology tools also look very interesting, especially in this new normalmap-generation age.
  • pior
    Options
    Offline / Send Message
    pior grand marshal polycounter
    On a side note... Anoyone here still have the link to that maxscript that has been posted on the old boards, which enabled an easy unwrap of pipe-like shapes?

    It was pimped here a while back with a gif animation showing the process on a curved pipe, with a bw checker material applied. It was sortof pait-oriented...

    I know I have it somewhere... but where!?

    Thanks if you can help (Mop I'm sure you have the link at hand smile.gif )
  • Cubik
  • Eric Chadwick
    Options
    Offline / Send Message
    Some important info about using it... you have to be in a Perpective viewport and you have to be above the surface looking down towards the z=0 grid plane. So, it's kind of fiddly. Can save a lot of time though.

    Some details that might help you...

    ======================
    From: Zola
    Sent: Tuesday, January 06, 2004 4:34 AM
    To: Eric Chadwick
    Subject: Re: UVPaint feedback

    Eric,

    The reason of your problem is the method of my pointing algorithm. The
    maxScript gives me a ray (that helps me to point out faces) which starts
    from the center of viewport's virtual camera and follows the direction
    where the cursor is projected to the active grid. If your camera looks
    near to the horizon or above then there is no available projection
    point. I've tried to upgrade the script but couldn't find any
    replacement yet with acceptable precision and speed.
    A new version of the script is waiting to be published but I have not
    yet finished it. In this version there will be no need to prepare the
    object because it splits up UV-faces if needed and notifies the user if
    s/he tries to paint in a non-perspective viewport. Automatically
    changing the current projection may remove the object from our sight.

    I will try to get some free time to have this version finished and
    published...

    Good Luck and have a Happy Year!
    by Zola/.



    Eric Chadwick wrote:

    > I have been testing your script lately with a room model, and it has
    > been working great, a real time-saver. Thank you for sharing it.
    >
    > One problem I have is that it sometimes refuses to work. I have to
    > zoom out or rotate the viewport a little, then try to paint again. I’m
    > not sure why some Perspective angles work while others do not. I am
    > using 3ds max 5.1 with OpenGL display mode.
    >
    > It would be helpful if the script could automate the setup process,
    > specifically breaking the UV verts, collapsing to Editable Mesh, and
    > choosing a Perspective viewport. Could you add this? I think it would
    > be best if you had a separate script for this step, maybe as part of a
    > popup window like this…
    >
    > ======================
    > UVPaint v1.0.3
    > [Prepare]
    > [ UVPaint ]
    > [About]
    > [Close]
    > ======================
    >
    > Thanks again,
    >
    > Eric
    >
  • pior
    Options
    Offline / Send Message
    pior grand marshal polycounter
    omg you've been fast on this smile.gif

    Thanks!
  • sniper 1
    Options
    Offline / Send Message
    sniper 1 polycounter lvl 18
    I've noticed several people express a desire for a good relax function, but I have not seen anyone mention UV Help though I know it has been discussed here before. I use this tool all the time and am very pleased with the results. Sometimes a little tweaking is required which is to be expected. The only thing I would really like to add to it, would be the ability to specify seams by selecting edges in the perspective window before unwrapping. If all that was wrapped up into one tool, it would be quite powerful.
  • Eric Chadwick
    Options
    Offline / Send Message
    Yeah, UV Help is interesting.

    In my experience though, Deep UV has a much more solid relax than UV Help's relax. Believe me, I would avoid crash-prone Deep UV if I could, but UV Help doesn't work well with large UV chunks, nor with a selection within a chunk. It always seems to smear the surrounding UVs, whereas Deep UV tries to avoid this. UV Help is also really slow, and not too smart about overlaps.

    I guess UV Help works OK with character unwraps, since each chunk tends to be a small area unto itself. But these days I'm working with terrain-style meshes that have to tile to one another, so I have to keep the UV edges intact while relaxing the UV interiors. UV Help seems to fail miserably with these.

    Deep UV also has the UV Knead tools, which help me untangle messy UVs. A nice addition there.
  • moose
    Options
    Offline / Send Message
    moose polycount sponsor
    <3 Mop

    thank you! hahah smile.gif im starting to like max, slowly.
Sign In or Register to comment.