Basically, I’m currently messing around in Unity trying to get a hold of how the program works and I’ve come across this issue that’s been really stumping me. The issue is that my pixel art is being distorted on different parts of the screen, where some parts of the screen work fine and others stretch or shrink my pixel art.
(Images resized so you can see them)
And here’s what the original art is:
The distortion on the character’s face changes as they move around the screen (I’d show more but can’t upload more images).
I’ve tried everything I could find online, from disabling anti-aliasing to fitting everything onto a pixel grid to changing the orthographic size (import setting is on point filter). If anyone could help me out here that would be great!
Edit: I should make note that the size I’m working with and the size the art is made for is 1920 x 1080, the screen sizes available are locked to 16 x 9 and this issue happens with every resolution I try.
The scale factor of your “distorted” image is not an integer multiple of your source image, so it is necessarily going to be distorted… pixels are atomic, so you can’t scale an image up by 1.5x withot distortion.
Try importing your sprite at native size with 1 pixel = 1 unit.
Since the question was bumped already. It’s pretty clear that your original image is not a power of two. The “original” image has a size of 150x160 (where 10x10 pixels seems to represent “one pixel”. So the original may be 15x16 pixels?).
By default Unity stores all textures in the next power of two size. That means images are rescaled to fit into the actual texture space. In this case here, assuming the source image is 15x16 pixels, it would be stretched to 16x16. So you get some weird aliasing since you need to fit 15 pixels into 16 pixels. If the source image is actually 150x160 a similar thing would happen. Though in this case the target image size would probably be 256x256.
The general solution is that your source images should have power of two resolution to begin with. If, for some reason that’s not practical, you can switch the texture importer to advanced and select non-power-of-two (NPOT). This allows the texture to have any size. However this is not supported on all devices and may have performance implications. Also certain features like Mipmaps or anisotropic filtering will not work properly if the image is not a power of two.