Sounds about right. You don’t actually have to calculate stuff, but do keep the idea of fill rate in mind. So, let’s say your smoke effects layer 4 particles at a time over each other (and once for the background), and they each take up 5 times as many pixels on-screen as an explosion particle that hardly ever overlaps another. Well, that’s now 20x as many pixels that have to be written. (At least on a non-iDevice GPU, anyway. I honestly don’t know if there is an optimization for the iThings that prevents actually having to write these pixels to the framebuffer multiple times.)
With that in mind, also note that you can’t completely forgot about the poly count situation; it’s just not the most important thing to worry about with particles - I think maybe I brushed over that too much, seeing your 300 figure. And it’s really not the polygons, but rather, the vertices that matter. If you have 300 particles, that’s 1200 vertices, which is getting high, especially considering the screen is small and you won’t physically be able to see them all if you keep them to a reasonable size on-screen.
From what I’ve read from Apple, it sounds like z-sorting is supposed to be highly efficient using the iGPUs, and should take a load off of Unity. I don’t have a great understanding of the interactions, however. I mean, it sounds to me like the hardware is supposed to sort depth per pixel, which would be awesome, but that’s not what has happened in my experience. I’d love more details about this myself.
Well, Steve Jobs said that he expects the Retina Display to be the high-end for the next 7 years. It could be true. If so, then we should be seeing GPU improvements, without resolution increase, which theoretically means that fill rate becomes less of a problem with each GPU revision. Judging historically, we’ll see improvements in 2011, 2013, and 2015, and then we’ll hit that 7-year mark. However, if the Nintendo 3DS and 3D Blu Ray takes off, then the iPhone may go the same way. So it’ll be like another iPad situation, just not quite as bad. Instead of needing to fill 5.12x as many pixels, we’ll only need to fill 2x as many pixels (one frame for each eye.)