I can’t get completely blur or bugfree graphics within the new gui system.
The sliced sprites (in my case the buttons) always make problems when i set the filter mode to point. In trilinear it works, but is all blurry.
Pixel perfect seems to just blur everything even more, in my case.
Here are the four example cases:
Filter Mode: Point (nice crisp results, nearly perfect, but with bugs at the sliced sprites).
Good to know that i’m not the only one…
I only tried png so far. Will test some others asap and report back.
EDIT:
Okay, so i tested tiff and targa as well, no differences.
What i did find out though is, these errors correlate somehow with 1stly, the position of the sprite and 2ndly, the size of the sprite. My button e.g. has 270 Width, if i change it to 271 Width or move it 0.5 units in Pos X, the errors disappear.
This leads me to the conclusion that unity does rounding-errors there. Anyway, until it is fixed, this will be my workaround.
Try going to Project settings → Player → Settings for PC, Mac, Linux → Other Settings and enable the Direct3D 11, if it’s possible for your project. It fixes blurry uGUI text, but it might just work with sliced sprites as well.
It’s the half-pixel offset thing; in D3D9 you have to offset all the content by 0.5 (half a pixel) in both X and Y to get it pixel-perfect again. OpenGL and D3D11 look correct without it. I think it’s something that Unity should be dealing with automatically, but you should be able to work around it by adding an empty child GameObject under your canvas with the anchors set to each corner of the screen, and the offsets set to -0.5, -0.5, 0.5, 0.5 (Left, Top, Right, Bottom) in its RectTransform. Doing this requires that the PixelPerfect option on the parent Canvas is not checked, otherwise it will ‘correct’ the half-pixel offset and look wrong again. Also make sure you only do this when the D3D9 renderer is being used.