Quality settings on iPhone

I’m having a hard time getting my editor to look as close as possible to the real rendering on the iPhone.

By default, a new project loads with “editor quality” set to good, and “good” allows 2 pixel lights by default.
If I remove pixel lights (count = 0), it’s already much closer to my iPod touch 2nd gen (if I understand correctly, only 3G S models can do pixel lighting… I don’t have market share numbers, but this doesn’t seem very significant).

“Good” level also has aniso to “per texture” by default. My aniso-able textures look real good in the editor, but not on the device. So again if I set it to “disabled”: much closer.
… can the iPhone do anisotropy at all?

Regarding the shadows, there the editor is consistent: it doesn’t display them at all… but all the properties are there, on the renderers, on the lights, on the quality settings (again, “good” is set to “hard soft shadows” by default): this is all quite misleading.

And the last thing is the quality level: from my tests it seems that the level on the device is the same as the “editor quality” property… is that correct?
Again the inspector is very misleading: first the “default webplayer quality” property is there for no reason, as well as the “default standalone quality”, although it would seem like a better candidate than “editor quality”.

.… but in the end, are quality settings used at all by Unity iPhone, or are they completely ignored?

As far as I’ve ever seen - ignored.

You’re looking for top menu->Edit->Graphics Emulation->iPhone

Oh, this is on by default, don’t worry! some things are iPhone-friendly by default :wink:
But you still get anisotropy in the editor regardless.

The other possibility is that the pvrtc artifacts were forgotten

Errr… I don’t follow you sorry :sweat_smile:

If you set the textures to use pvrtc compression in the import dialog (by default) then they won’t remain pixel perfect on the iphone for example.

Hmm, the textures I tested are indeed PVRTC, but I don’t think that’s what it is.
If I set aniso level to 0, they clearly look ugly in the editor in the distance; if I set it to 1 or above, they look much better (I’m talking big difference here, not some small artifact).
And, I don’t see any difference on the device, they look the same regardless of the level.
I’m not on my Mac ATM, I’ll post screenshots on Monday.

Did you try to disable Mip Mapping when importing the texture?

I did: it looks good up close, but bad in the distance: artifacts appear when the camera moves (moiré patterns… translated from french! is there a better word?)

From what I understand, anisotropy allows to have the benefit of mipmaps, while sharpening in the distance… so I don’t think it’s applied to non-mipmapped. I’m fuzzy on the details though :slight_smile:

There’s no anisotropic filtering on iPhone. You can use trilinear filtering, which at least makes the mip transitions smooth even if it doesn’t help with the blurriness. Disabling mipmapping is rarely a good idea.

–Eric

Ah, thanks for a definite answer :slight_smile: !
Device or engine limitation? Is that anywhere in the Unity docs?

Hmm… I’ll have to check that out. Is the setting even there on Unity iPhone?

Yes, that’s what I figured as well, thanks for the confirmation.

I did not know that! How’d you find out?

Because it doesn’t work. :slight_smile: I don’t know about the hardware, but I’ve never seen a non-Unity iPhone game that uses it either, so I’m just assuming.

I hope so, because I use it. :slight_smile:

–Eric

Yeah, I’ll verify that this certainly makes things look better. Or I’ll at least verify that I’ve fooled myself into believing it. :wink:

Just wondering why this is so?

Because mipmaps are faster when textures are distant (e.g., only compute 16x16 instead of 256x256). Also the distant mipmaps result in much less shimmery pixels when objects are moving, since the optimum texture for that distance is already computed. The only time you wouldn’t want to use mipmaps is for GUI textures, where the texture only ever appears at one size so there’s no point using extra memory for the mipmaps.

–Eric

By the way, I’ve been meaning to do this for a while since the question has come up several times before… Here is a simple test to compare the results of having no mipmaps vs. having mipmaps. Scroll left/right with the arrow keys for a bit with mipmaps on, then toggle mipmaps off with the space bar and scroll left/right again. A typical response upon seeing the lack of mipmaps by comparison is “gack!” :wink:

–Eric

GORP!!! :shock:

Well…not exactly the response I was expecting, but close enough. :wink:

–Eric

OK, so I did my screenshots, for what it’s worth… good example of what aniso does, if nothing else.

So here are the different tests in the editor:
bilinear, aniso 0

bilinear, aniso 4

trilinear, aniso 0

trilinear, aniso 4

Next 4 are iPhone screenshots:
bilinear, aniso 0

bilinear, aniso 4

trilinear, aniso 0

trilinear, aniso 4

So… bilinear trilinear are slightly different (thanks for the tip Eric!), but the aniso doesn’t seem to do anything on the device, regardless of any quality or texture settings.
The weird thing is, we did a per-pixel comparison on Photoshop, and found one (!) different pixel, with super low contrast. Uh?