Noticias

¡RECUERDA QUE SI ERES UN NUEVO USUARIO, DEBES PRESENTARTE PARA PODER PUBLICAR MENSAJES! | TENEMOS CANAL OFICIAL DE TELEGRAM: t.me/unity3dspain

Rendimiento malisimo en android "viejos"

Iniciado por Ben, Marzo 23, 2017, 09:49:48 AM

Tema anterior - Siguiente tema
Buenas, este post es mas que nada para verificar si es un problema mio o es "normal".
 
Tengo 3 dispositivos android para testear: Un Nexus5, Galasy S3 y tablet Lenovo Tab 2 10"
 
Estoy haciendo un juego y en el exus me va bien después de ciertas optimizaciones, pero en los demás me va horriblemente mal (por debajo de 30FPS), asi que me ha dado por actualizar a unity 5.5, y hacer un proyecto desde cero para testear:

- Nuevo unity, projecto 3D, sin adds, he agregado a la escena por defecto (cámara y una luz) un simple plano inclinado a 45º y he cambiado la geometría para que sea mas ancho y largo y ocupe toda la camara.

- He puesto la cámara en ortográfico y ajustado el view distance a 50.

- He agregado 10 cubos, por defecto sin shaders ni nada (blancos), a algunos les he cambiado el tamaño para que sean rectangulos.

- He puesto las opciones de exportación de android, seleccionado solo ARM, multithread y el rendering en 2.0 (quitando el automatico y de la lista el 3, he leido que mejora mucho el rendimiento)

- A uno de los cubos le he puesto una pequeña animacion con el animator para ver el "feeling" del movimiento, no solo los FPS.

- He agregado un canvas con un texto y he metido un script para ver los FPS
 
Cuando compilo esto, en los 3 dispositivos me da 59-60 constantemente.
 
Ahora.. pillo la luz de la escena (la de por defecto) Control-D y compilo nuevamente la escena. Bajada de 10 FPS... 49-50, el cubo animado pegando trompicones a veces, faltal.. desactivo la luz adicional, compilo y de nuevo 60 FPS.


He probado de todo:

- Toquetear las opciones de lighting para usar backed CI, sin backed, aumentando y reduciendo los caches de las luces, cambiando opciones del compilador de Android (CPU Skinning, y nosecuantas cosas mas) y no consigo que con 2 simples luces direccionales me valla a mas de 60 FPS con una escena tan simple.


Entiendo que son 2 (el S3 y la tab) dispositivos de gama baja, pero no se si es un problema de configuración o es el motivo que de que 80% de los juegos que veo para Android sean en 2D siempre, no me parece "normal" que el rendimiento sea tan malo.

Dos luces direccionales de simple nada en esos dispositivos. Como máximo una y el resto utiliza spotlight y sobretodo mucho baking.

Marzo 24, 2017, 04:51:28 PM #2 Ultima modificación: Marzo 24, 2017, 05:08:29 PM por Ben
Vamos que lo de que rasque es normal entonces, de usar partículas con iluminación ya ni hablamos...
 
He estado buscando mucho y ademas de muchas recomendaciones de bajar calidades en Project -> Quality y eliminar el "Sun" en Lighting por el shader que usa por defecto, (lo cual no me ayuda nada en el S3) lo que si he visto es que bajar la resolución con Screen.SetResolution(w, h, true) se nota una BURRADA, me refiero a que hacer una resolución del 90% en el S3 incrementa en mi ejemplo los FPS en 15... el problema ahora lo tengo con el UI que se me descojona al cambiar la resolución (los objetos de abajo se salen de la pantalla).
 
Al final optare por desarrollar para el Nexus (algo medio) y por dejar al usuario una pantalla de "settings" y que el usuario pueda ajustar la resolución entre un 50% y el 100% ademas de poder habilitar o quitar cosas como el Glow.

Marzo 26, 2017, 07:38:03 PM #3 Ultima modificación: Marzo 26, 2017, 07:59:52 PM por Challenger
Ben a mi lo que me "mataba" a mi movil (Nokie 4G LTE Segunda Generacion) eran las sombras, ya puse un post aquí sobre el rendimiento que obtenia, pero basicamente sin sombras se puede mover perfectamente alrededor millon de poligonos, pero con sombras...directamente se muere.
 
Al menos eso es lo que más me afectaba al rendimiento del movil, en cuanto a luces, una vez quitada las sombras podía usar 4 o 6 luces sin problemas. Y el tema de texturas llegue a usar 24 texturas 512x512 (si no recuerdo mal) y la verdad es que tambien iba muy bien (siempre sin sombras).
 
Como dice iRob tienes que hacer un baking de Unity, o llevartelo preparado del programa de 3D que uses, yo en este caso uso 3DMax y ya me llevo la malla preparada (sombras incluidas)
 
Edito: cuando digo medio millon de poligonos, me refiero a medio millon de poligonos en pantalla, no por frames, que es diferente.

Etiquetas: