Scaling down sprites for lower resolutions - blurry sprites?

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.

Try turning on mipmaps for the textures.

–Eric

1 Like

Thanks for the reply.

How would I use mipmaps with 2D sprites?

Turn on mipmaps in the texture settings.

–Eric

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?

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.

–Eric

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.

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?

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.

4096 is the max.

–Eric