Home Technical Talk

Looking for UV unwrapping/packing critique

polycounter lvl 10
Offline / Send Message
SuperFranky polycounter lvl 10
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...



oda0dEc.jpg
UpR2G0x.jpg
Hg7LGUC.jpg
IclkmT6.jpg

Thanks in advance:thumbup:

Replies

  • Quack!
    Offline / Send Message
    Quack! polycounter lvl 17
    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.
  • SuperFranky
    Offline / Send Message
    SuperFranky polycounter lvl 10
    Quack! wrote: »
    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?
  • Quack!
    Offline / Send Message
    Quack! polycounter lvl 17
    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.
  • SuperFranky
    Offline / Send Message
    SuperFranky polycounter lvl 10
    Quack! wrote: »
    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.
  • AdvisableRobin
    Offline / Send Message
    AdvisableRobin polycounter lvl 10
    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.
  • SuperFranky
    Offline / Send Message
    SuperFranky polycounter lvl 10
    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: lOHOlN8.png

    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 :)
  • Quack!
    Offline / Send Message
    Quack! polycounter lvl 17
    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.
  • SuperFranky
    Offline / Send Message
    SuperFranky polycounter lvl 10
    Quack! wrote: »
    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.
    Oh, so it's like that. I get it now, thanks.
  • SuperFranky
    Offline / Send Message
    SuperFranky polycounter lvl 10
    A1JkBFv.pngsmsLbp6.png

    Tried to cramp more stuff to the layout and packed it all by hand. What do you think?
  • Quack!
    Offline / Send Message
    Quack! polycounter lvl 17
    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.
  • SuperFranky
    Offline / Send Message
    SuperFranky polycounter lvl 10
    Quack! wrote: »
    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.

    Is there a way to check padding in 3ds Max?
  • Quack!
    Offline / Send Message
    Quack! polycounter lvl 17
    Don't think so, I just do it by hand :/
  • SuperFranky
    Offline / Send Message
    SuperFranky polycounter lvl 10
    Quack! wrote: »
    Don't think so, I just do it by hand :/
    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:
  • Quack!
    Offline / Send Message
    Quack! polycounter lvl 17
    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.
  • SuperFranky
    Offline / Send Message
    SuperFranky polycounter lvl 10
    Quack! wrote: »
    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 :)
  • Tzur_H
    Offline / Send Message
    Tzur_H polycounter lvl 9
    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.
    jWSJGe7.jpg
    1qIbF4n.jpg
  • RN
    Offline / Send Message
    RN sublime tool
    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.
    blazed wrote: »
    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.

    More information:
    - http://msdn.microsoft.com/en-us/library/windows/desktop/ff476876%28v=vs.85%29.aspx
    - https://www.opengl.org/wiki/NPOT_Texture
  • SuperFranky
    Offline / Send Message
    SuperFranky polycounter lvl 10
    Kryzon wrote: »
    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.


    http://www.polycount.com/forum/showpost.php?p=1149243&postcount=8
    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.
  • RN
    Offline / Send Message
    RN sublime tool
    I see, I had misunderstood you.
    This article also mentions about adding seams on hard edges: http://blog.digitaltutors.com/tips-creating-perfect-normal-maps-every-time/
  • SuperFranky
    Offline / Send Message
    SuperFranky polycounter lvl 10
    Trying to figure out the best way to pack a lot of belts. Need some advice on how to proceed and critique.

    Tried out different methods:

    Inspired by this:

    3dsMax_Fire_Extinguisher_PT3_1d.jpg

    Square layout, Important parts get scales uniformly and unimportant parts get scaled to pack in wasted space:

    I3LM9FM.png

    Non-square layout, same rules:

    lX6hELw.png

    This is automatic packing:

    W8wwYMi.png

    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:
    fR4GBdo.png

    These pieces can't be scaled anymore, but there's a lot of pieces that would benefit from more res:
    oswLc0C.png

    Should I scale them up, or texel density is more important than better bakes?



    Thanks in advance:)
  • commador
    Offline / Send Message
    commador polycounter lvl 14

    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?

    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.
  • SuperFranky
    Offline / Send Message
    SuperFranky polycounter lvl 10
    commador, you're awesome. Thanks a lot, I've been trying to find this information for a while and just got a headache instead.:poly128:
  • SuperFranky
    Offline / Send Message
    SuperFranky polycounter lvl 10
    Another try
    yCvSegh.png
    rh5M57O.png
    Hoh6iAz.png
    efIj0D3.png

    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
  • Finalhart
    Offline / Send Message
    Finalhart polycounter lvl 6
    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.
  • SuperFranky
    Offline / Send Message
    SuperFranky polycounter lvl 10
    Finalhart wrote: »
    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.
  • Finalhart
    Offline / Send Message
    Finalhart polycounter lvl 6
    That looks awesome, i may try it the next time i have to unwrap a model.
  • SuperFranky
    Offline / Send Message
    SuperFranky polycounter lvl 10
    Finalhart wrote: »
    That looks awesome, i may try it the next time i have to unwrap a model.

    I think with Textools in 3ds max you can do the same by using Normalize, but I'm not sure.
  • SuperFranky
    Offline / Send Message
    SuperFranky polycounter lvl 10
    Spent a few hours packing every asset into one map to use 4k texture. Looking for advice on how to improve the layout, if possible.
    Dkki6Dy.png
Sign In or Register to comment.