Optimum Polygon Count for IPhone

I’m currently building my models for a game. My target platform is the iPhone for platform. I was wondering whether anyone has any experience with how many Polygons the iPhone can handle.

That is, how low should I keep the polygon count in my models?

Also - the Unity iPhone - doesn’t support terrains, is that correct? What is a good work around for this?

Thanks In Advance :slight_smile:

welcome, volpe. read Documentation/Components/Unity iPhone Basics.html

If you haven’t bought yet, then keep in mind 7000 vertices per scene, visible, but you can go higher than that if you use occlusion culling.

If you search around, you’ll see that it’s right around 7,000 tris in frame to get around 15-30fps.

As for terrains, no, terrains, as such, aren’t supported in Unity iPhone, so it is recommended that you do your own custom terrain meshes (extremely low-poly of course).

Can anyone point me to a place in the docs or on the forum that describes how to use occlusion culling?

TIA!

file:///Applications/Unity%20iPhone/Documentation/Manual/Using%20Occlusion%20Culling.html

Or click the “Manual” link at the top of the docs, then search the page for “Occlusion” (it’s under Advanced about 3/4th’s of the way down the page).

It doesn’t go into a bunch of detail though. Be sure to check out the occlusion culling demo project.

7,000 vertices is the soft limit… not tris. Two very different things.

Yeah, that warehouse demo was a big help.

Thanks, Brady!

So, just out of curiosity, when would you not want to use OC? I mean, virtually every 3D scene is going to stand to benefit from it at least occasionally, right?

Something like, for example, Splume would not make much use of occlusion culling at all.

Right, puzzle games, etc, that pretty much have everything in-frame all the time. Or perhaps other 3D style games that have geometry laid out in such a way that nothing would ever be occluded (just out of frame). I’m assuming I’m right here in thinking that objects, say, behind the camera, get frustum culled even without occlusion culling. Please, someone correct me if I’m wrong, and do it fast! :slight_smile:

I haven’t iPhone license yet, but here is no Occlusion page. Where can I find it?

Thanks for taking the time to help, I really apprciate it.

I was researching further and came across this site:
http://boards.polycount.net/showthread.php?t=40563

Nintendo DS:

suggested polygon count for performance (total visible): 2000
texture memory (per screen): 512kb
max texture size: 1024px x 1024px
screen colour depth: 18-bit (260,000 colours)
alpha blending: 5-bit (32 colours)
suggested texture size: under 128 x 128

Sony PSP:

suggested polygon count for performance (total visible): 50,000
texture memory: 2mb
max texture size: 128px x 128px
screen colour depth: 16-bit (65,536 colours)
alpha blending: 8-bit (256 colours)

Iphone:

suggested polygon count for performance (total visible): 7000
texture memory: 24MB
max texture size: 1024px x 1024px
screen colour depth: 16-bit (65,536 colours)
alpha blending: free! (use PNG)
suggested texture size: under 512 x 512

I want to prototype a low poly game in Unity then port it to iphone either by myself or partnering with some company (especially with regards to DS and PSP). I’m concluding I should make models around ~300-800 and keep scenes to 2000 polys on the screen at a time and just use 128x128 textures.

Regarding that “Alpha free! (using png)” part, I just spoke to someone in the know and thats actually not relevant to Unity, we are still good to go with a proper alpha channel:

“The PNG part is not relevant since it’s compressed into another format…that might be relevant in other engines, but not Unity…the key part is to use alpha blending instead of alpha testing-use the regular transparent shaders… not the transparent/cut-out”

HTH
AC

Nowhere actually. iPhone specific documentation comes with the Unity iPhone installation
Occlusion culling is not present on the desktop, thats why you don’t find it in the docs, as you won’t find the iPhoneSettings / iPhoneInput classes