So I'm trying my hand at UV unwrapping and packing and I would love to get some feedback on it, to see what's wrong with it and what I can improve. I'm mostly interesting in whether I'm packing it right or not, and what are general guidelines for this kind of thing. And I dunno if I should keep texel density uniform or not, when I try to do that it leaves a lot of wasted space on UV map...
Yes. keep your texel density uniform most of the time. There are exceptions to that rule but in the case of player facing parts and parts that are next to each other your most def want to keep them the same.
If you have the texel density set to what you want and you still are wasting tons of space, try using a non-square uv map.
Yes. keep your texel density uniform most of the time. There are exceptions to that rule but in the case of player facing parts and parts that are next to each other your most def want to keep them the same.
If you have the texel density set to what you want and you still are wasting tons of space, try using a non-square uv map.
That's interesting. I've never tried to use a non-square map before. I need to check it out. Thanks a bunch :thumbup:
Would it be better to add more objects to the map to fill the space, instead of using a non-square map?
Well this looks like 1 part of a larger set of objects. So they can't go all on the same map? Your best bet would be use a bit more clever cuts and geometry to divide your uv islands up to fill the space better.
Well this looks like 1 part of a larger set of objects. So they can't go all on the same map? Your best bet would be use a bit more clever cuts and geometry to divide your uv islands up to fill the space better.
I guess I can try to put more stuff in there. I'll try to experiment tomorrow. Btw how can I know how many maps I should use for my character project? I thought I'd just use one for each asset "group", but I dunno if it's a good idea.
You could probably save a little space and have less seams if you merged the sides of the belt strip with the front face of it. Since they're already so straight it shouldn't be too bad to merge them together.
You could also consider if you wanted too, sneaking more geometry into the actual mesh.
You could probably save a little space and have less seams if you merged the sides of the belt strip with the front face of it. Since they're already so straight it shouldn't be too bad to merge them together.
You could also consider if you wanted too, sneaking more geometry into the actual mesh.
Well, the only reason I unwrapped sides for belt strips is to use smoothing groups for better bakes. Maybe I shouldn't do that for such asset?
Also, can anybody explain why it is so important to keep uniform texel density? I made this quick automatic packing for this example:
Why shouldn't I upscale the big piece to take up the wasted space? What about smallest objects there? Won't they get too little texture resolution and look bad?
Sorry for dumb questions, but it's middle of the night and there's this on my mind
Also, can anybody explain why it is so important to keep uniform texel density? I made this quick automatic packing for this example:
Because your pixel density will go crazy out of wack. One section of your model will appear to be crazy blurry next to the rest of the model. In games, this is one of the first things a player will notice, so you have to be careful.
Because your pixel density will go crazy out of wack. One section of your model will appear to be crazy blurry next to the rest of the model. In games, this is one of the first things a player will notice, so you have to be careful.
Looks good. There is some wasted space, but if you can't fill it, then so be it.
Always make sure you have a good amount of padding between your uv islands. If you don't, when the texture mipmaps it will bleed into each other and cause badness. I personally use:
1024 = 4 px
2048 = 8 px
4096 = 16 px
There could be better values, but these seem to work.
Looks good. There is some wasted space, but if you can't fill it, then so be it.
Always make sure you have a good amount of padding between your uv islands. If you don't, when the texture mipmaps it will bleed into each other and cause badness. I personally use:
1024 = 4 px
2048 = 8 px
4096 = 16 px
There could be better values, but these seem to work.
You say I need a certain amount of pixels based on resolution, but how can I be sure my shells are far away enough without baking? Just eyeball it? :poly142:
You say I need a certain amount of pixels based on resolution, but how can I be sure my shells are far away enough without baking? Just eyeball it? :poly142:
I have 2 checker images I use as backgrounds when unwrapping. I have one that is composed of a tiling 4px by 4px checkers and is 1024 in resolution and one that is 8px by 8px checkers at 2048 resolution. So for a 2048 i just keep then 1 square apart and for 4096 2 squares apart.
With all that said, IPackThat, is in developement over here and does this automatically.
I have 2 checker images I use as backgrounds when unwrapping. I have one that is composed of a tiling 4px by 4px checkers and is 1024 in resolution and one that is 8px by 8px checkers at 2048 resolution. So for a 2048 i just keep then 1 square apart and for 4096 2 squares apart.
With all that said, IPackThat, is in developement over here and does this automatically.
That's pretty cool, thanks. I know about IPackThat and it looks really interesting, but I'll wait for the full version
You can use Headus to show edge padding, under the 'Pack' sub menu you've got the option to set 'bleed' size, that's the edge padding.
A. Set your texture map size.
B. Set the padding that you want, the padding is for each UV shell , so if you want a padding of 16 pixels between shells, you need to set the bleed to 8, if you want a padding of 8 pixels, set it to 4 and so on...
C. Tick the option "Show Bleed Shells" and it'll give you a grey border indicating the padding. You can then manually pack your UVs and it'll still show you the padding.
Just remember, if you want a 16 pixels padding from the boundaries, set it to 16, and then set it back to 8 so in between shells it's 16 pixels.
Well, the only reason I unwrapped sides for belt strips is to use smoothing groups for better bakes. Maybe I shouldn't do that for such asset?
You can weld the belt seams together and still have hard edged smoothing groups on them that are visible after baked.
Smoothing groups and UV unwrapping do not influence one another.
So quack any idea about that non-square texture sizes in Engines I mentioned?
It's possible to have textures of rectangular shapes: 64 x 512, 1024 x 128 etc. and no redundant padding is required. This is absolutely standard.
What is uncommon is having non-power-of-two textures. These are supported since Direct3D 9 and OpenGL 2.0 but they require special conditions. If you need to use textures like these you should consult the documentation of your engine.
Since Direct3D 11, non-power-of-two textures are supported unconditionally. That is, they are considered as standard as power of two textures.
You can weld the belt seams together and still have hard edged smoothing groups on them that are visible after baked.
Smoothing groups and UV unwrapping do not influence one another.
That doesn't make sense. If I have hard edges, but no UV splits then I'll get nasty black seams. http://www.polycount.com/forum/showthread.php?t=107196
You need splits where your hard edges are, but you don't need hard edges where your splits are- that's a basic rule.
B. When you do not split your uvs, but split edges on your lowpoly, what you're getting is essentially two drastically different normal directions(both sides of the same edge) trying to draw on the same pixel. You thus get an averaged result of the two, pointing in a totally broken direction.
1)If I have wasted space, should I scale some important pieces to get more texture res, even if texel density won't be very uniform?
2)On really small objects when I want good bakes, but keeping texel density won't get good results, should I scale them up?
3)Do I want to keep all relevant pieces together in uv space or it's not important and wasting less uv space is more important?
1) Yes, within reason. The more important pieces should get more focus, but don't scale them up to be obviously jarring in comparison to their neighbors. if your texel density is 100, the important pieces could be 125. On the other side, less important, less visible pieces can be smaller. They could be 75 for instance.
2) Yes. Keeping even texel density is important, to a certain point. If you have a small item that needs to be baked, but at a comparable texel density to the rest of the mesh would only get a few pixels on a texture sheet, make it larger. Again, for example, if your texel density is 100, small pieces could be 175, or as much as necessary for good results.
3) Yes. As much as reasonable. If you can gain a good boost in your packing optimization by scattering them a bit, go for it. But do try to keep similar bits near each other.
What do you think?
I know there's plenty of wasted space, but I don't think I can repack it better without having to scale parts even more and breaking texel uniformity even more....
Hmm, maybe I shouldn't split UVs so much and stitch belt sides to save some space
What i like to do is to select one part of my model as the "main one" to start off. Then i just try to match the same textel density of the main one for the rest of the parts of my model without worrying about if they fit in the uv space. For parts that won't be shown in the game i usually scale them super small so i know they are not importat and i can scale them up if i end up having some free space. After all your pieces have the textel density correct then you just try to fit them into the uv space(manual work for best results, always) if they don't fit, scale down ALL OF THEM so they can stay with the same textel density and then it's just a matter of playing with it as it were a puzzle. The secret is to not scale parts individually, this works pretty good for me at least.
What i like to do is to select one part of my model as the "main one" to start off. Then i just try to match the same textel density of the main one for the rest of the parts of my model without worrying about if they fit in the uv space. For parts that won't be shown in the game i usually scale them super small so i know they are not importat and i can scale them up if i end up having some free space. After all your pieces have the textel density correct then you just try to fit them into the uv space(manual work for best results, always) if they don't fit, scale down ALL OF THEM so they can stay with the same textel density and then it's just a matter of playing with it as it were a puzzle. The secret is to not scale parts individually, this works pretty good for me at least.
Thanks for the input, I do it a little different, using an automatic rescale of shells in Uv Layout that gets you perfect texel density instantly.
Replies
If you have the texel density set to what you want and you still are wasting tons of space, try using a non-square uv map.
Would it be better to add more objects to the map to fill the space, instead of using a non-square map?
I guess I can try to put more stuff in there. I'll try to experiment tomorrow. Btw how can I know how many maps I should use for my character project? I thought I'd just use one for each asset "group", but I dunno if it's a good idea.
You could also consider if you wanted too, sneaking more geometry into the actual mesh.
Well, the only reason I unwrapped sides for belt strips is to use smoothing groups for better bakes. Maybe I shouldn't do that for such asset?
Also, can anybody explain why it is so important to keep uniform texel density? I made this quick automatic packing for this example:
Why shouldn't I upscale the big piece to take up the wasted space? What about smallest objects there? Won't they get too little texture resolution and look bad?
Sorry for dumb questions, but it's middle of the night and there's this on my mind
Because your pixel density will go crazy out of wack. One section of your model will appear to be crazy blurry next to the rest of the model. In games, this is one of the first things a player will notice, so you have to be careful.
Tried to cramp more stuff to the layout and packed it all by hand. What do you think?
Always make sure you have a good amount of padding between your uv islands. If you don't, when the texture mipmaps it will bleed into each other and cause badness. I personally use:
1024 = 4 px
2048 = 8 px
4096 = 16 px
There could be better values, but these seem to work.
Is there a way to check padding in 3ds Max?
I have 2 checker images I use as backgrounds when unwrapping. I have one that is composed of a tiling 4px by 4px checkers and is 1024 in resolution and one that is 8px by 8px checkers at 2048 resolution. So for a 2048 i just keep then 1 square apart and for 4096 2 squares apart.
With all that said, IPackThat, is in developement over here and does this automatically.
That's pretty cool, thanks. I know about IPackThat and it looks really interesting, but I'll wait for the full version
A. Set your texture map size.
B. Set the padding that you want, the padding is for each UV shell , so if you want a padding of 16 pixels between shells, you need to set the bleed to 8, if you want a padding of 8 pixels, set it to 4 and so on...
C. Tick the option "Show Bleed Shells" and it'll give you a grey border indicating the padding. You can then manually pack your UVs and it'll still show you the padding.
Just remember, if you want a 16 pixels padding from the boundaries, set it to 16, and then set it back to 8 so in between shells it's 16 pixels.
Smoothing groups and UV unwrapping do not influence one another.
It's possible to have textures of rectangular shapes: 64 x 512, 1024 x 128 etc. and no redundant padding is required. This is absolutely standard.
What is uncommon is having non-power-of-two textures. These are supported since Direct3D 9 and OpenGL 2.0 but they require special conditions. If you need to use textures like these you should consult the documentation of your engine.
Since Direct3D 11, non-power-of-two textures are supported unconditionally. That is, they are considered as standard as power of two textures.
More information:
- http://msdn.microsoft.com/en-us/library/windows/desktop/ff476876%28v=vs.85%29.aspx
- https://www.opengl.org/wiki/NPOT_Texture
That doesn't make sense. If I have hard edges, but no UV splits then I'll get nasty black seams.
http://www.polycount.com/forum/showthread.php?t=107196
You need splits where your hard edges are, but you don't need hard edges where your splits are- that's a basic rule.
http://www.polycount.com/forum/showpost.php?p=1149243&postcount=8
This article also mentions about adding seams on hard edges: http://blog.digitaltutors.com/tips-creating-perfect-normal-maps-every-time/
Tried out different methods:
Inspired by this:
Square layout, Important parts get scales uniformly and unimportant parts get scaled to pack in wasted space:
Non-square layout, same rules:
This is automatic packing:
Which one is a better idea?
Some questions:
1)If I have wasted space, should I scale some important pieces to get more texture res, even if texel density won't be very uniform?
2)On really small objects when I want good bakes, but keeping texel density won't get good results, should I scale them up?
3)Do I want to keep all relevant pieces together in uv space or it's not important and wasting less uv space is more important?
Example:
These pieces can't be scaled anymore, but there's a lot of pieces that would benefit from more res:
Should I scale them up, or texel density is more important than better bakes?
Thanks in advance:)
1) Yes, within reason. The more important pieces should get more focus, but don't scale them up to be obviously jarring in comparison to their neighbors. if your texel density is 100, the important pieces could be 125. On the other side, less important, less visible pieces can be smaller. They could be 75 for instance.
2) Yes. Keeping even texel density is important, to a certain point. If you have a small item that needs to be baked, but at a comparable texel density to the rest of the mesh would only get a few pixels on a texture sheet, make it larger. Again, for example, if your texel density is 100, small pieces could be 175, or as much as necessary for good results.
3) Yes. As much as reasonable. If you can gain a good boost in your packing optimization by scattering them a bit, go for it. But do try to keep similar bits near each other.
What do you think?
I know there's plenty of wasted space, but I don't think I can repack it better without having to scale parts even more and breaking texel uniformity even more....
Hmm, maybe I shouldn't split UVs so much and stitch belt sides to save some space
I think with Textools in 3ds max you can do the same by using Normalize, but I'm not sure.