I’m using large textures to store sprites in my iOS project. I noticed that the larger the texture I use and the uglier the sprite is displayed in the scene editor and in the build.
Actually, the larger the texture, the more degraded the quality seems. It’s like the texture was downscaled, despite the fact that if you look at the texture itself in any image editor, the quality is perfect. This issue doesn’t happen if you work on a PC/MAC build (build settings platform).
On the first attached screenshot, I created a large texture applied onto a plane. On the standalone platform, you can see the original quality. But when clicking on “Switch Platforms” in the build settings and choosing iOS gives me a more pixellated result.
I’m using Unity 3.5 (MAC OSX) but this issue was already there in Unity 3.4.2. Quality settings for both platforms are identical (full resolution…), point filtering, max texture size set to 4096. Orthographic cam set to 384 (half of the iPad height size)
On the second screenshot I used the same sprite on 3 different textures (1024, 2048 and 4096 pixels)? You can clearly see the ugly result in higher texture sizes on iOS platform.
Did I miss something or is there really a limit on the texture size we can use for iOS projects?
Edit: The issue is appearing on ANDROID too!
ISSUE SOLVED! (Read the 13th post from Thinksquirrel)
When using the GUI Texture Type, the sprite appears sharper than with “Texture” (because there is no mip-mapping I guess…), but it’s always pixellated. It still looks like the texture is smaller that the real one and zoomed in.
Already did all this, but it doesn’t change the fact that I still get an obvious loss in the quality of my texture if the texture is higher than 1024*1024. Switching back to PC/MAC platform (or even ANDROID) makes the sprite display perfectly.
The problem is not to get a pixel perfect sprite, my concern is that the sprite doesn’t display the texture as it should on iOS, whatever parameters I use!
There were restrictions on texture size in iOS. The earliest devices were limited to 1024, later came 2048, and then 4096. I’m not sure of the change over points, but 4096 was very recent. What devices are you seeing the limits on? Or is it in the editor?
Do you have Override for iPhone ticked on the textures? Are you using any compression?
This issue is appearing in the editor too. It’s not a device restriction but a weird behavior of Unity.
And no override for iPhone is ticked, neither compression!
I’m using a custom setting. But the problem is somewhere else because I got the same behavior even with the “Good” quality setting used by default for standalone builds.
Could anyone download the attached package and switch from standalone to iOS platform several times and tell me if you notice a difference in the quality?
Please give your results here.
I created a new project and now the quality seems worse than before. It’s really driving me crazy.
Thanks to all of you guys, who are trying to help me with your advices and suggestions.
Edit > Graphics Emulation > No emulation should do the trick.
This is due to having your textures at a size that is too large for the graphics emulation setting (which only takes 2048 for GLES 2.0 and 1024 for the MBXLite emulation).
I’ve run into this problem many times, Unity seems to keep switching the setting back (probably because I’m targeting armv6). It builds fine to devices (and looks correct), though.