Bad performance in Android

Hello guys, i’m having a bad experience with android. After that I made some tests on desktop, the FPS was going nice, but when I tried in Android, the FPS dropped on the half!

Look, this is my scene:

I have fifty two soldiers models, and each one has 291 polys, totaling in 15.714 polys rendered by each frame. Running this on my Android, when the camera is not focused in them, I have around 70 fps, but when camera turns to them rendering all models, the FPS drops to 30 FPS. And not have anything, scripts, the animation is turned off, I’m using the Mobile/Diffuse shader, and the texture is just a diffuse with 512x512. Furthermore, I tried down the poly counts of models to 265 polys, totaliing a 14.310 polys rendered by each frame, but the FPS continues to drops to 30 fps.

I want to make a game like RTS, where have a lot models, with basic animations in loops, and crowds. But, while I’m having this problem with performance, gonna be hard.

What can I do about that??

I’m using a Genesis GT-7200. It’s have 512 ram, android 4.0, and the CPU is a Cortex A8 1.2GHz.

Thx

How many draw calls ?

Try to switch graphics level to OpenGL ES 1.x on Player settings, if you didn’t change it already

Yes jvil, I already did that, and it did not work. :frowning:

Poupi, I don’t knew about that, now I saw, and I have around 60 callbacks? This is a lot? How I can decrease this??

thx guys

I’m amazed you got 30fps with that many boned and skinned models. I’ve no advice for you because it’s clear you haven’t made effort to search. Yes I’m nagging you :slight_smile: the speed questions have been answered endlessly, and it doesn’t appear you’ve looked into it.

Yes, I did sir. But I don’t found anything about skinned models, and crowd animations in android, then my question was if the problem is in my android tablet configuration, or something that I forgot to do to increase the performance.

Now, about the callbacks, how I gonna know if have a nice callings?

Have you adjusted the animation blend weights? Less is faster
How many SkinnedMeshRenderers per character are you using? 1 per character is the recommendation
Are you using keyframe reductions?
Is dynamic batching enabled? Are your characters being batched?
Texture is compressed? To correct format? Mip-maps enabled?

There is alot you can do, not sure what you have done or read. Reading the Unity manual will help alot, make sure you’re not are missing anything. Also imo rendering 54 NPCs at 30 FPS on a tablet isn’t too shabby.
Documenation/Manual/ModelingOptimizedCharacters.html
Documentation/Manual/OptimizingGraphicsPerformance.html
Documentation/Manual/DrawCallBatching.html

try changing your shaders to mobile versions. The default PC-version shaders do not perform well on Android

The editor is capped at 30 FPS.
I get this to what ever I have.
But in the mobile it will be a lot higher. like 60 FPS.
So try it in the phone to and have an FPS counter all the time to see the true FPS value.
It will even get worse when you use android remote.
So the only thing is to use it on a device and see what the real FPS is.

Hello guys, sorry for the delay, I was reading and setting about you says.
Well, answering the questions:

  • I’m using shader mobiles.
  • The blend weights is setted to “1 bone”.
  • Some modelos are using just one SkinnedMeshRenderers, but have anothers that using two SkinnedMeshRenderes.
  • I’m using key frame reduction.
  • All batching is enabled, dynamic and statics.
  • All textures are using mipmaps, and using RGB Compression ETC 4bits.

DamianGto, I just putted a real counter on the mobile, and really give me around 30 FPS.

Have some more thing to do, or this is all?? :*(

Thankyou dudes.

Well what mobile do you use?
If you use a low end phone you can be sure you will have low FPS.
I try my stuff on a samsung Galaxy S and a Samsung Galaxy S3.
So I have both middle and high end phone.
I see you have reduced a lot of things, that I never do. Just for the game look very bad and I do not support low end phones. :wink:
Also you should look up the compression on the textures. Not all phone can handle that compression.
Also if you can reduce the textures to 256*256 you can also get more performance.

But are you sure you dont run any “bad” scripts that is the source for the huge drop down in FPS?

If I understand correctly you are using the Genesis GT-7200? That’s running a single core 1.2GHz with a Mali 400Mhz GPU?

Yeah, in my opinion it’s too low spec for what you are trying to do. I would not bother trying to support any single core devices if you are going to be using that many skinned meshes.

Hi Damian, I’m using a Genesis GT-7200 like I said in the first post, I begins to think about that, I gonna make some tests in more high end devices. I think that this device is a bit old for this stuffs.

I did not think about the texture, I don’t think gonna make a lot difference, but I gonna reduces to 256. thx!

HazeTI, yes, is that! Thankyou I gonna test with other devices.

I made a little test with Motorola Defy, and I had a better performance, not so great, but increase some FPS! Now I gonna try with some tablet more high end for this!

Thanks peoples!