So being between projects means I get to play around with random technology!
For some upcoming secret projects I’ve setup Flite TTS and Irrlicht as plugins in my iPhone engine to test out.
Flite
It’s a text to speech thingie that lets you make the iPhone talk. It’s uh… well, I actually don’t really have a problem with it except I’m having a hard time controlling pitch and inflection. Does anybody know of a better library? Here’s a sample I made of Flite using the Kal 16kz voice. (Flite 1.3)
First, I’m sorry about the content of the audio. Second, there is a problem where raising the pitch for the (loosely) female voice causes clipping. Maybe I shouldn’t be using “Kal” for that.
Irrlicht
This is a solid 3D engine that has been around forever but truly became appetizing after it went with the zlib license.
My tests on the iPhone have been a bit underwhelming, check these screenshots to see the FPS.
Conclusion
So.. yeah, slow.
Is anybody getting better speed than this? Am I doing something wrong?
If I export say, a squirrel as a solid mesh (no animation) I get 60 fps, so I guess the real bottleneck is in the animation math, not the triangles/texturing.
I have to say though, I really like how Irrlicht is laid out – it’s a great way to steal <ahem, borrow> a ton of easy to plug-in functionality. It can load nearly everything! (Except animated Collada..)
Random thoughts
I can think of some ways to speed this up, for instance, one way would be to write an irrlicht program that converts skinned mesh anims to a morph/frame based one, then optimize the renderer for the iPhone, should be way faster than even the .md2 renderer. (So, mem/filespace exchanged for rendering speed.. could even avoid frame interpolation if you output the anim with enough frames maybe)
On the 3GS you could probably do a skinned mesh shader and just fly, not sure. But I don’t even have a 3GS yet! Meh!
Could probably drop the geomipmapping for the terrain and just dynamically create the render list based on terrain sectors in the players view and do a fog thing to hide the edges and see a big performance improvement for iPhone.