Due to Apple taking forever to finalize my enrollment as an iphone dev, I’m currently unable to test out the iPhone for myself and see just how much graphical business is “too much” for the poor thing. I’ve been reading many threads on performance optimization, and I’ve gathered that keeping your draw calls and number of skinned mesh characters to a minimum is the top priority for maintaining a decent framerate, but there are still some mysteries in that area that hopefully someone with more understanding of unity and the iphone’s capabilities can illuminate for me.
I’m imagining a 2d game where the characters are made up of self-illuminated textured planes. The limbs/head of these characters would be animated with bones in maya, like a paper doll, and would share a single material, resulting in a single draw call, roughly 6 bones and no more than a dozen triangles. Would characters constructed in this way be extremely light? Or would having a large number (let’s say 10) on screen at a time probably cause issues just through the sheer volume of draw calls/bones?
I’d also like to be able to spawn a number of effects on screen at the same time as my characters as described above. Again, these would be VERY low-res textures, attached to planes and being rendered very small on screen. This is all assuming minimal use of other costly features such as physics.
In short, I’m wondering if 20-30 draw calls that are all extremely simple objects are just as bad as 20-30 of anything else.
Draw calls tax CPU, while complexity of the object (vertex counts and shader complexity) taxes GPU. CPU and GPU runs in parallel. So ideally you want to struck a balance.
In reality things are a little bit more complicated since vertex counts has additional cost on CPU (due to iPhone OpenGLES implementation peculiarities) and there is 3rd component to equation - memory bandwidth.
Morale - you need to experiment! On a real device. Though what you explained should work out just fine
Having recently went through the process of getting an apple dev acct through my company, I’d also advise you to contact Apple and see why they haven’t approved your acct yet. In my case it was a problem that wouldn’t be resolved until I contacted them. Apple didn’t tell me of the problem, they just said that the account was “pending approval.”
So I’d suggest trying to contact Apple to see why you haven’t been approved yet (if it’s more than 2 weeks).
I’m not sure how you’d go about getting the transform info out of the imported skinned mesh (though I imagine it’s not difficult, I’ve just never looked into it), but you should be able to use a solution similar to this and it should be extremely fast: http://forum.unity3d.com/viewtopic.php?t=17864
Since posting this I’ve begun work on my concept as described above and its working very well - 30 or fewer drawcalls is definitely producing acceptable results, and I’m currently working on converting some of my animated elements over to a particle based system similar to yours.