Home Technical Talk

UV Unwrapping - Discussion & Possible Workflow Improvements (Hard Surface Focus)

polycounter lvl 11
Offline / Send Message
RedRogueXIII polycounter lvl 11
I'm curious how long does it take for other artists to uniquely (no overlaps or mirroring) unwrap and pack the UVs of complex hard surface objects, say for example :
1tis.jpg
vzo3.jpg.

That is a personal example, and took about 6-7 hours for just unwrapping each object.
As you can see it is not even packed efficiently or at a even texel distribution, as this would take more hours of manual editing.
*I am using Softimage, but I am aware 3DS Max has an automatic packing feature for UV islands.

UV unwrapping is pretty simple, just long and tedious to do manually.

I am looking for any way to considerably speed up this process and possibly to automate it based on the same factors that I would use while manually unwrapping:
- Size of polygon in 3D space
- Occlusion value of polygon
- Distance of polygon from the main camera angle
- Largest possible continous UV islands
- UV splits at hard edged breaks in the mesh's smoothing.
- Minor texel distortion in exchange for linear and orthographic grid islands that are easier to texture
- Packing and organizing so that UV islands from the same object are always placed together
- Packing and organizing so that UV islands maintain a consistent direction ( polygons always orient upwards )

I am currently planning to attempt automating the packing process at least, given the islands already unwrapped and uniquely mapped.
The current, most basic work process I have in mind for the automation is :

//Calculate the total area of the object in 3D space (find maximum texel space number, and texel space number of each polygon)
//Assign percentage of area to polygon relationship ( if x polygon has 1000 area out of 2000 total area then it is given a texel space value of 0.5)
//For each uv island, treat it as a single complex n-gon ( texel space number = sum of component parts)
//Calculate the area that will be used ( maximum texel space area != final texel space area ). All islands must be scaled down appropriately to add uniform sized padding around the edges of the UV islands. (Padding can either be uv space padding or pixel space padding (needs image resolution))
//Scale current UV islands down to fit in normalized range ( 0-1 ). How? Find current area of current UV island size. All area of polygons in the uv island summed = current area which should be multiplied by the normalized texel space value of the island (includes padding).
//Now start packing with the largest islands. Put them downs in the normalized range.
//Where really? Where they leave the largest continous areas left for more islands.
//How to find that? Would have to solve for the biggest bounding box of negative space where one of the available bounding box spaces is greater or equal to the next largest uv island in list.
//How to solve for largest bounding boxes? A point sample that recursively expands until it reaches a wall?
//The process could recursively be applied as each UV-island is added so that the islands are shifted in a way that ensures there is room for the next island.
//Needs a condition check to see when it messes up, like when an odd shape moves out of the normalized range.

If anyone has attempted this already, or has suggestions to the workflow I'd love to hear them.

If anyone has any links to information or research papers / implementations of different techniques on automatic UV unwrapping & packing methods I would love it if you could share them here. Even names of techniques would be fine.


TL;DR I'm too slow at UV unwrapping, help with better techniques or automated solutions!

Replies

  • ZacD
    Options
    Offline / Send Message
    ZacD ngon master
    I use 3D-Coat along with softimage to speed up unwrapping. It's not a perfect tool, but definitely speeds things up. I just use it for putting UV seams where I want and to get the right scaling and spacing. After using 3d coat I'll sometimes stitch together islands that 3D-Coat didn't want to flatten properly. Also I'll remove anything that will have mirrored or stacked UV's before taking it into 3D-Coat, and then duplicate those parts at the end after everything is uv'd and final.
  • iniside
    Options
    Offline / Send Message
    iniside polycounter lvl 6
    Depnds on model. Unique unwrap of my Stormsword model (about 80k poly) took me about 20min-1h per module (there are 8 modules, how quickly i could unwrap it depended on how complex said module was). Overll i think it took me about 3-4h, dunno I wasn't counting and I didn't done it in one go.
    UV-Packer for 3ds max was immense help it that regard.

    I wasn't doing anything special. Just select parts, Flattern Unwrapp, select edges and stich everything I can togather, after that run uv-packer to pack UVs and if it wa good leave it, or adjust a bit.
  • CheeseOnToast
    Options
    Offline / Send Message
    CheeseOnToast greentooth
    Using Headus UVlayout, your example would take maybe an hour or two. By default it'll unwrap everything to be proportional, so if you want to increase or decrease the size of a UV island you'll need to do it manually.

    It's got a pretty good packing algorythm. You can group parts together and lock mirrored UVs so they stay overlapped pretty easily.

    It's a little expensive for the pro version, but it's paid for itself many times over in saved time for me.
Sign In or Register to comment.