Android "Oto performance"

Hello!



I’m beginner at Jme3 and android development. So I have a problem with “Animation example” performance on my Android device (Samsung Galaxy R - Terga 2) and it’s strange. The code is equivalent to example code and I use debug build. At all the frame rate is about 20-21 (When skeleton is idle and animating). I tried to turn logging off and another tricks but it hasn’t improved fps. I don’t know what to do. May be it’s material or lightning problem?



P.S I was very pleased with the desktop performance and planned developing android game. But now I’m very upset because of it, and I do not know what to do. Please help me. Sorry for my bad English.



Best regards, Alexey

Well Oto simply isn’t made for mobile, way too many vertices, lighted material etc.

I’m suprised oto even works :slight_smile: good to know

@normen



Offhand, do you know how many polys Oto contains? Need accurate instructions for my modeller/animator.

@ancalagon said:
Offhand, do you know how many polys Oto contains? Need accurate instructions for my modeller/animator.

No but you can just load it in the SDK and check in the properties window.

off the top of my head, im gonna say around 100,000 polys. I use a shitty laptop, so i stick to < 1,000 for detailed models, but I try to make every object i do have < 300 polys, and a scene no more than 10,000 (incl models/particles/effects/backgrounds etc…). depends what platform your aiming for though (i try and make it compatible with android in the future). Some computers with a good GPU can do amazing things tho :), when i get my new desktop in a few weeks im gonna be one of these people <3333

The lighting material as it is has bad performances on android. A couple of enhancements may bump the fps a little bit.

i’m planning to do it.

Also activating vertex lighting on the material helps a lot (lighting quality is lower though…)



Oto is 15K poly, which is way too much regarding to its detail level. 15K poly for a character is what you would have for a one on one fighting game on desktop for example.

For android …IMO 2~3k is the max you should have for the same situation.

So if you’re planning to have several animated character on android…1k should be you max target.

is lighting compatible on most android devices now? i tried a simple lighting model on my friends tablet a few months ago and it wouldn’t run, but worked on my HTC sensation fine.

Statistic shows me that:

Objects = 15

Uniforms = 25

Triangles = 4452

Vertices = 4483



So… As you can see it is not big count of fragments. On the other hand, I have 30 fps on “static” scene with 100 spheres (50x50 fragments) without lightning. On top of all above, I play riptide gp (about 300k polygons with 8 light sources and physics) normally on 60 fps. Why? Given the fact that jme3 is well written and jvm speed is close to native code (c/c++).

Well Dalvik is not as performant as a hotspot based.

@alexey said:
Statistic shows me that:
Objects = 15
Uniforms = 25
Triangles = 4452
Vertices = 4483

So... As you can see it is not big count of fragments. On the other hand, I have 30 fps on "static" scene with 100 spheres (50x50 fragments) without lightning. On top of all above, I play riptide gp (about 300k polygons with 8 light sources and physics) normally on 60 fps. Why? Given the fact that jme3 is well written and jvm speed is close to native code (c/c++).

Probably optimisation and jME for android is still in the works. Do GeometryBatchFactory.optimise(rootNoode) and see if it improves it for ur spheres