Search Unity

Scaling down sprites for lower resolutions - blurry sprites?

Discussion in '2D' started by AssembledVS, Jul 28, 2014.

  1. AssembledVS

    AssembledVS

    Joined:
    Feb 23, 2014
    Posts:
    248
    I am working on a 2D game for the PC/Mac and I am at the point where I am beginning to experiment with sprites and art styles. I am a beginner developer.

    The biggest resolution that I am going to support is 4K - 3840 x 2160, so I am working with this resolution as the base one. The game will run in widescreen no matter what, as I will force widescreen resolution with black bars on the top and bottom. The problem that I am running into is slightly blurry sprites when viewed from 1920 x 1080 (and lower) within the build, which is scaled down from 3840 x 2160 within the Unity editor.

    My sprites are not powers of two. When set to "point" under "filter mode," the sprites look better, but not as good as when I resize them in Photoshop to the same resolution, for example.

    What do Unity developers usually do? I see that Unity rescales everything down to the selected resolution when running the build. Do I need to include Photoshop re-scaled assets for every supported resolution? This does not seem to be the case, as I've looked at Unity games like Shadowrun Returns that only include a "high-res" and "low-res" sprite asset and they look great in every resolution up to 1920 x 1080.
     
  2. Eric5h5

    Eric5h5

    Volunteer Moderator Moderator

    Joined:
    Jul 19, 2006
    Posts:
    32,401
    Try turning on mipmaps for the textures.

    --Eric
     
    E-wan15 likes this.
  3. AssembledVS

    AssembledVS

    Joined:
    Feb 23, 2014
    Posts:
    248
    Thanks for the reply.

    How would I use mipmaps with 2D sprites?
     
  4. Eric5h5

    Eric5h5

    Volunteer Moderator Moderator

    Joined:
    Jul 19, 2006
    Posts:
    32,401
    Turn on mipmaps in the texture settings.

    --Eric
     
  5. AssembledVS

    AssembledVS

    Joined:
    Feb 23, 2014
    Posts:
    248
    I've searched around and others have said that to use mipmapping with sprites as of Unity 4.3, and "advanced import mode" must be used. Where is this option?
     
  6. zombiegorilla

    zombiegorilla

    Moderator

    Joined:
    May 8, 2012
    Posts:
    9,052
    Click on your texture. Look in the inspector.
    Change "Texture Type" to Advanced, toward the bottom there is a check box for generate mip maps.
     
  7. Eric5h5

    Eric5h5

    Volunteer Moderator Moderator

    Joined:
    Jul 19, 2006
    Posts:
    32,401
  8. AssembledVS

    AssembledVS

    Joined:
    Feb 23, 2014
    Posts:
    248
    Eric, mipmaps make my sprites look sharper. Thank you.
    Zombie, thanks for pointing out directly where this option is.

    I will experiment with the settings a bit more to get the ideal combination.
     
  9. AssembledVS

    AssembledVS

    Joined:
    Feb 23, 2014
    Posts:
    248
    Actually, the sharpness depends on the sprite. Some smaller, more detailed sprites look worse with mipmapping enabled.

    Let me back up to my previous question:

    What do Unity developers usually do? I see that Unity rescales everything down to the selected resolution when running the build. Do I need to include Photoshop re-scaled assets for every supported resolution? This does not seem to be the case, as I've looked at Unity games like Shadowrun Returns that only include a "high-res" and "low-res" sprite asset and they look great in every resolution up to 1920 x 1080.

    As this will be a PC/Mac game, the possible resolutions will be very varied. Since I am supporting 4K as the maximum size, and will thus start with 4K-sized assets as my base, is there a way to easily downscale while preserving the sprites' sharpness and quality? What are my options? What is the best route to take?
     
    Last edited: Jul 30, 2014
  10. Polys

    Polys

    Joined:
    Jul 13, 2014
    Posts:
    25
    Well if you click your main picture imported as a sprite you'll see max size:1024 (default I think) you can crank that up to 2048 (which seems to be the max). If you don't do that it shrinks your pictures down and can introduce jitter from algorithm used to shrink (ie. removing pixels means the lines didn't always end up perfectly in the same spot). The characters are more fuzzy too. You may have found this already, but it was a important find for me (via building a 2d character in unity on there youtube).

    I would assume a downgrade from 4k to 2k (max size?) would be less jittery and blurry than a downgrade from 4k to 1.
     
  11. Eric5h5

    Eric5h5

    Volunteer Moderator Moderator

    Joined:
    Jul 19, 2006
    Posts:
    32,401
    4096 is the max.

    --Eric