Home Technical Talk

Non-square textures in production?

polycounter lvl 2
Offline / Send Message
Falkrum polycounter lvl 2
Hello to all!
I never seen non-square textures in game assets, is that mean its never used and it is bad form to use rectangular textures?

For example i have an object with this couple of UV shells:

Non-square layout pretty efficient and will work correctly with my pixel density.

Square layout has a lot of free space and didn't match to my pixel density.

Which one of layout I should use if it was in production?

Replies

  • Kbrom12
    Options
    Offline / Send Message
    Kbrom12 polycounter lvl 8
    Nothing is wrong with using a rectangular layout and don't let anyone tell you its bad or wrong. Their are many times when its beneficial to use one vs a square one and this may be true in your case. 
  • GlowingPotato
    Options
    Offline / Send Message
    GlowingPotato polycounter lvl 10
    Non square is ok. But here an advice
    If the engine you are using makes us of textures arrays, I would advice to define a number of texture resolutions and keep it. You don't want to create textures arrays and feed it with only one texture.
  • ActionDawg
    Options
    Offline / Send Message
    ActionDawg greentooth
    Nonsquare totally fine, but of course you could always add UV seams to get more usage out of a 1x1 texture.

    I'd say that the two most important aspects are utilizing your UV space as efficiently as possible and using the texture size that will give you the most even texel density across your scene. Here's an example. If you have a 1024x512 texture on an asset and to fulfill texel density requirements you would either need to jump to 2048x1024 (and let's assume this would be a bit beyond your texel requirement), or make it 1024x1024 (which let's assume is closer to your density goalpost) and cut your UVs to fit that square space better, I'd say that's a good candidate to do the latter.
  • Falkrum
    Options
    Offline / Send Message
    Falkrum polycounter lvl 2
    Thank you all for suggestions, it helps!
  • musashidan
    Options
    Offline / Send Message
    musashidan high dynamic range
    Also, 2-1 textures are commonly used as tiling texture atlas. So if you had multiple horizontally tiling walls, borders, strips,etc that worked better as a 2-1 texture.
  • Eric Chadwick
    Options
    Offline / Send Message
    Non-square does not work if you are making an iPhone game, and want to compress the textures. The PVRTC texture compressor only works with square images.

    Otherwise though, non-square is great, like people have been saying.
  • musashidan
    Options
    Offline / Send Message
    musashidan high dynamic range
    Non-square does not work if you are making an iPhone game, and want to compress the textures. The PVRTC texture compressor only works with square images.

    Otherwise though, non-square is great, like people have been saying.

    Also, to add to this, Substance Painter doesn't accept 2-1 either. Although I'm sure that will change in the future.
  • Falkrum
    Options
    Offline / Send Message
    Falkrum polycounter lvl 2
    Also, to add to this, Substance Painter doesn't accept 2-1 either. Although I'm sure that will change in the future.
    Wow, that is little bit strange according to how long ago it was released. Glad for me I am a Quixel guy. Thanks for info!
  • Tzur_H
    Options
    Offline / Send Message
    Tzur_H polycounter lvl 9
    Non-square does not work if you are making an iPhone game, and want to compress the textures. The PVRTC texture compressor only works with square images.

    Otherwise though, non-square is great, like people have been saying.

    Also, to add to this, Substance Painter doesn't accept 2-1 either. Although I'm sure that will change in the future.
    https://forum.allegorithmic.com/index.php?topic=9425.0
  • Zelfit
    Options
    Offline / Send Message
    Zelfit polycounter lvl 8
    We constantly use non-square textures. But we don't stretch them till the last moment. So, for example you want 2048x1024 texture. You just pack your uv within half of 2048x2048 texture and leave other part empty. Then you can texture your stuff and adjust UV if you got into any problems. When your asset if complete and ready to submit, you cut your final texture in half and then stretch your uv into square.
  • cptSwing
    Options
    Offline / Send Message
    cptSwing polycounter lvl 11
    Zelfit said:
    We constantly use non-square textures. But we don't stretch them till the last moment. So, for example you want 2048x1024 texture. You just pack your uv within half of 2048x2048 texture and leave other part empty. Then you can texture your stuff and adjust UV if you got into any problems. When your asset if complete and ready to submit, you cut your final texture in half and then stretch your uv into square.
    In Max, a UVW Xform modifier will take care of this nicely..
  • Tony1931
    Options
    Offline / Send Message
    Hello. It is not very clear for me about texel density for non-square textures. For instance i need 200px texel density for 2048x1024 resolution, how can i get it? 200px for 1024x1024 is 5,12 and 10,24 for 2048. What would 2048x1024 have? Textool gives me around 3.6. Is it right?
    And if i get it right to get correct aspect ratio uvw xform should be used. But when should i use it, before applying texel density(uww xform + textool) or after(textool + uvw xform)?
  • poopipe
    Options
    Offline / Send Message
    poopipe grand marshal polycounter
    All the texel density tools I've used cannot deal with rectangular maps - the maths fail as they work on average areas - the same goes for the one I wrote myself. 
    It'd be possible to work it out correctly but it'd be complicated and slow. 

    The simplest correct solution is to map and set density to a square of the largest dimension (ie. 1024 on a 1024x512 map)  and scale the  uvs after. 

Sign In or Register to comment.