Author : eye-work


Reply
Reply
 
Thread Tools Display Modes
[PB]Snoelk's Avatar
Old (#1)
Hello Folks,

the last weeks i have been working on a uv packer. I could not find a good packer that can handle very complex shapes or holes.
The packer from Headus UV Layout is very close to it, but they are cases when it can't find a good solution.

Follow on Twitter
Follow on Facebook

Demo available (Update 19.01.2015 Beta 8 Version 1.7.5497.24757)

IPackThat on Steam Greenlight


It's not final and still Beta. They can be bugs and rants
Inside the Demo version you can't save. Its just for testing purpose and feature testing.

IPackThatDemo
IPackThatDemo ReadMe
IPackThatDemo ChangeLog


Short feature list
- read and write of obj files
- handling multi-mesh obj files
- overlapping uv islands will be treat as one uv island
- rotation can be enabled/disabled for entire packing process
- rotation steps can be choosen per uv island (0.01 to 90°)
- automatic recognition of circle like shapes (no rotation)
- automatic recognition of rectangle like shapes (only check from 0° to 180°)
- endless solution process until you stop
- 1 mutation per 10 solution processes
- shape margins in pixel
- border margins in pixel
- treating aspect 1:1 and 1:2
- area selection filter from min to max (% area of largest uv island)
- rotation step selection filter from min to max (in degrees)
- automatic backup when a better solution is found
- multi threading

are there some other feature that are usefull ?
here are some shots of the results.
The Start ones are handcrafted and dont respect the margin size (sometimes they are below 2 pixels)











Last edited by [PB]Snoelk; 01-19-2015 at 06:54 AM..
Offline , line, 97 Posts, Join Date Aug 2009, Location Germany  
   Reply With Quote

Luki's Avatar
Old (#2)
Looks solid! Where I can download it?
Offline , null, 8 Posts, Join Date Oct 2013, Location Warsaw  
   Reply With Quote

[PB]Snoelk's Avatar
Old (#3)
nowhere yet ^^
its still in beta and needs some polishing *g*
i plan 2 more features
- cluster groups (want to stay together)
- merge uv islands to one cluster
Offline , line, 97 Posts, Join Date Aug 2009, Location Germany  
   Reply With Quote

.polygon's Avatar
Old (#4)
when a UV shell has a hole, it could use that space with smaller UVs pieces.
Offline , line, 93 Posts, Join Date Feb 2010, Location SLC, UT.  
   Reply With Quote

PeterK's Avatar
Old (#5)
Can you add the shell bleeds feature that UVLayout has? it's pretty awesome.
Offline , polycounter, 826 Posts, Join Date Oct 2004, Location Maryland, USA  
   Reply With Quote

throttlekitty's Avatar
Old (#6)
Quote:
- automatic backup when a better solution is found
That sounds handy. How about a snapshot feature? It sounds like your app can present different iterations, so being able to quick save different steps would be nice.

Can you lock rotation on shells? Sometimes it's good to say "I always want these shells to have this orientation".
Offline , polycounter, 1,222 Posts, Join Date Dec 2008, Location South Dakota Send a message via ICQ to throttlekitty Send a message via AIM to throttlekitty Send a message via Yahoo to throttlekitty  
   Reply With Quote

Harbinger's Avatar
Old (#7)
I don't know what complications there are for implementing FBX (Licensing?) but it'd be great to have a file format that supports more than one UV set so you could pack lightmaps. To expand on that, if you import a mesh with multiple UV sets, you could pack each set with different settings, or leave one of the sets untouched.
Matt Battaglia - Environment Artist - Chicago
mbattaglia3d.com
Offline , triangle, 284 Posts, Join Date Sep 2010, Location Chicago  
   Reply With Quote

[PB]Snoelk's Avatar
Old (#8)
Quote:
Originally Posted by .polygon View Post
when a UV shell has a hole, it could use that space with smaller UVs pieces.


this is already a main feature. the packer can handle holes in all variation. It can put a shell inside a hole which also contains a hole. And in this one also some shells can be placed, which also can contains holes etc pp.


Quote:
Originally Posted by throttlekitty View Post
That sounds handy. How about a snapshot feature? It sounds like your app can present different iterations, so being able to quick save different steps would be nice.

Can you lock rotation on shells? Sometimes it's good to say "I always want these shells to have this orientation".


mhh, will think about the snapshot feature.
Locking of rotations can be done on each uv shell you want. You can select some shells and lock the rotation for them. Other you only allow rotation about 90°. Some others you allow rotation steps with 5°.


Quote:
Originally Posted by Harbinger View Post
I don't know what complications there are for implementing FBX (Licensing?) but it'd be great to have a file format that supports more than one UV set so you could pack lightmaps. To expand on that, if you import a mesh with multiple UV sets, you could pack each set with different settings, or leave one of the sets untouched.

Will have a look into FBX. FBX is a open platform with different SDK's for reading and writing it. But its a large and complicated SDK when i checked it last time.
Obj Fileformat can handle different UV layouts in some later versions. But not all can write this format.
Multi-Meshes are treated as one UV-Layout so far. Have to think about this feature to treat each Mesh seperatly.
Offline , line, 97 Posts, Join Date Aug 2009, Location Germany  
   Reply With Quote

CheeseOnToast's Avatar
Old (#9)
I get a fair bit of use from UV Layout's boxes, i.e. keeping certain islands together. For example, a bunch of teeth can be kept together so you don't need to hunt them down all over the map.
Offline , polycounter, 939 Posts, Join Date Dec 2004, Location Edinburgh, Scotland  
   Reply With Quote

Quack!'s Avatar
Old (#10)
This would be amazing if it works as presented. Very interested.

One thing I also find annoying is that I need to find my overlapping UV's but every script/tool I have used only works sometimes. I often have to go searching around my UV map to find the extra UV's that are overlapped. With smaller objects this isn't a big deal, but for a 50k tri model, it is freaking annoying and a time killer.

So if you can detect overlapping uv's 100% accurately AND offset them by 1 in U or V that would be very useful for baking.

Last edited by Quack!; 12-09-2014 at 04:16 PM..
Nick Quackenbush, Star Trek Ship Artist @ Cryptic Studios ---- Linked In || Twitter || District 9 Mech
Offline , polycounter, 1,029 Posts, Join Date Jul 2006, Location San Jose, California  
   Reply With Quote

JedTheKrampus's Avatar
Old (#11)
Keeping certain islands together is also useful if they both have the same type of material on the texture, because you can eliminate most of the gutter between them without having as many seam bleeding issues at lower mips.
Offline , polygon, 527 Posts, Join Date Nov 2013, Location Kansas City, MO  
   Reply With Quote

Deadly Nightshade's Avatar
Old (#12)
Would be handy if the user was able to group a couple shells together and that the exterior shape/bounds of said group is treated as a single shell. But maybe thatīs what you meant with cluster groups?

Either way, Im looking forward to watching the development of this tool. If itīs better than the packers that are currently available, IPackThat could easily become the most popular packing tool if you sell it for like 5 or 10 dollars or something. (Never underestimate microtransactions!!) Good luck!
Nightshade UV Editor (Autodesk Maya): Extends Maya's default UV Texture Editor with additional tools to improve your workflow.
Nightshade Materializer (Autodesk Maya): Smart material manager and toolbox.
Nightshade Blockout (Autodesk Maya): Makes creating blockout/selection maps in Maya fast and smooth - as it always should've been.
Nightshade Kill Switch (Autodesk Maya): Instantly kill the Maya process from inside of Maya.
Offline , spline, 223 Posts, Join Date Sep 2012, Location Stockholm, Sweden  
   Reply With Quote

[PB]Snoelk's Avatar
Old (#13)
Here a Demo of the current version. Its not final and still Beta. They can be bugs and rants
Inside the Demo version you can't save. Its just for testing purpose and feature testing.

IPackThatDemo
IPackThatDemo ReadMe
Offline , line, 97 Posts, Join Date Aug 2009, Location Germany  
   Reply With Quote

[PB]Snoelk's Avatar
Old (#14)
Quote:
Originally Posted by Deadly Nightshade View Post
Would be handy if the user was able to group a couple shells together and that the exterior shape/bounds of said group is treated as a single shell. But maybe thatīs what you meant with cluster groups?

Either way, Im looking forward to watching the development of this tool. If itīs better than the packers that are currently available, IPackThat could easily become the most popular packing tool if you sell it for like 5 or 10 dollars or something. (Never underestimate microtransactions!!) Good luck!
thats what i mean with merging shells.
The grouping feature is something different.
You set 5 shells to group 1 and 5 shells to group 2.
The Shells with group 1 will try to stay together and group 2 shells also.
That way the shells are not spawned all over the area if the user uses grouping.
Offline , line, 97 Posts, Join Date Aug 2009, Location Germany  
   Reply With Quote

WarrenM's Avatar
Old (#15)
The example shots looks really impressive! Would be happy to beta test this if you need people for that.

Also, shut up and take my money...
Online , veteran polycounter, 2,996 Posts, Join Date Aug 2010,  
   Reply With Quote

Lucas Annunziata's Avatar
Old (#16)
This looks great. I'll check out the demo when I get a chance.
Lucas Annunziata
Environment Artist
Torn Banner
Offline , polygon, 622 Posts, Join Date Jun 2010, Location Toronto, Ontario, Canada  
   Reply With Quote

WarrenM's Avatar
Old (#17)
Oh, there's a download link ... derp ... playing with it now. Very cool!
Online , veteran polycounter, 2,996 Posts, Join Date Aug 2010,  
   Reply With Quote

haiddasalami's Avatar
Old (#18)
Looks awesome. Ran it on a test but seemed quite slow. Wish there was a progress bar haha
Technical Artist at Digital Extremes.
Offline , card carrying polycounter, 2,234 Posts, Join Date Nov 2009, Location Toronto  
   Reply With Quote

[PB]Snoelk's Avatar
Old (#19)
Quote:
Originally Posted by haiddasalami View Post
Looks awesome. Ran it on a test but seemed quite slow. Wish there was a progress bar haha
yeah, its not optimized yet.
the progress bar is feature i want to implement also

The packing algorithm i use wont be as fast as packing with via bounding boxes.
So it will be always slower. But it can squeeze a bit more out of a uv.
As a matter of fact it will be faster than packing by hand *g*
Offline , line, 97 Posts, Join Date Aug 2009, Location Germany  
   Reply With Quote

haiddasalami's Avatar
Old (#20)
Would be nice to see something like texel density. Also was not able to zoom in and out with mousewheel. Not sure if that is in or not.
Technical Artist at Digital Extremes.
Offline , card carrying polycounter, 2,234 Posts, Join Date Nov 2009, Location Toronto  
   Reply With Quote

[PB]Snoelk's Avatar
Old (#21)
Quote:
Originally Posted by haiddasalami View Post
Would be nice to see something like texel density. Also was not able to zoom in and out with mousewheel. Not sure if that is in or not.
while your a packing, you cant zoom in and out
texeldensity per shell ? or over all shells ?
Offline , line, 97 Posts, Join Date Aug 2009, Location Germany  
   Reply With Quote

WarrenM's Avatar
Old (#22)
Will it ever actually finish on it's own? I always stop it with ESC after a few minutes.
Online , veteran polycounter, 2,996 Posts, Join Date Aug 2010,  
   Reply With Quote

Stromberg90's Avatar
Old (#23)
WarrenM: says in the feature list "endless solution process until you stop"

I am experimenting with it now, really impressed with how tight it packs.
Andreas Strømberg
Looking for work.
Portfolio - www.strombergart.com
Offline , dedicated polycounter, 1,613 Posts, Join Date May 2010, Location Norway Send a message via Skype™ to Stromberg90  
   Reply With Quote

[PB]Snoelk's Avatar
Old (#24)
Quote:
Originally Posted by WarrenM View Post
Will it ever actually finish on it's own? I always stop it with ESC after a few minutes.
nope, it will run forever until you stop. i could build in a max solution find count. so if it hits the count its automaticly stopping.
could be usefull for a later batch process where you fill in num obj files and pack them all thru.
Offline , line, 97 Posts, Join Date Aug 2009, Location Germany  
   Reply With Quote

WarrenM's Avatar
Old (#25)
Could also have it do something where if it can't find a better solution in any given 30 second window it stops or something. I dunno...
Online , veteran polycounter, 2,996 Posts, Join Date Aug 2010,  
   Reply With Quote

Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2015, Jelsoft Enterprises Ltd.

Copyright 1998-2014 Polycount