¿Diferencia oculta entre la configuration de calidad Unity 3D?

Estoy trabajando en la optimization de mi juego para iOS, y me encuentro con un problema realmente extraño con la configuration de calidad en Unity3D que me tiene completamente atrapado.

Tengo 4 configuration de configuration de calidad en el juego a través de:

Edit -> Project Settings -> Quality 

Las cuatro configuraciones son: Simple, Bueno, Hermoso, Fantástico

La versión corta es que, independientemente de las opciones que establezca dentro del panel de configuration de calidad, Simple siempre funcionará mejor que Bueno.

Por ejemplo, si configuro Simple y Good para tener configuraciones idénticas para todas las opciones de renderizado, configurando todo al mínimo (sombra apagada, sin antialias, 1/8 Texturas, etc.) y probar el juego en un iPad comenzando con diferentes opciones de calidad pnetworkingeterminadas :

 Simple - ~26FPS Good - ~6FPS 

Si cambio Simple para usar 1/4 Textures y deje Good en 1/8 Textures, seguirá ejecutando casi lo mismo:

 Simple - ~24FPS Good - ~6FPS 

Puedo ver claramente que las texturas son mejores / más detalladas en el modo simple a 1/4, pero sin embargo es casi 20FPS más rápido que el modo bueno que usa texturas de 1/8 tamaño.

Puedo ver al adjuntar el perfilador de Unity iOS que cuando se ejecuta en modo Bueno, la CPU sufre una carga constante de "Overhead", que no está presente en el Modo Simple (con configuraciones de calidad idénticas). Así que algo está cambiando claramente cuando paso de Simple a Bueno, pero no parece ser nada que pueda cambiar del menu de configuration de calidad.

Al leer la página del manual de unidad, tengo la printing de que las diferentes configuraciones de calidad son simplemente marcadores de position, ya que puedes agregar / eliminar opciones. Pero de mis experimentos parece que hay algo más que cambia cuando empiezo en Simple Vs Good (u otras opciones).

He intentado iniciar el juego en Simple / Good como pnetworkingeterminado, y también cambiar manualmente el código (usando C # a través de QualitySettings.SetQualityLevel ) y obtengo el mismo performance.

Siento que me estoy perdiendo algo key, pero parece que no puedo entender esto.

Los niveles de calidad pueden hacer diferencias cuando usa características que existen en niveles de calidad y necesitan cálculos adicionales. Pero cuando no usa esas características, no hay diferencia entre los niveles de calidad. Si quieres mejorar tu FPS, hay algunos consejos.

  1. Haz atlas de texturas para networkingucir las llamadas de sorteo.
  2. Mejore los cálculos en las funciones de actualización y las transformaciones de caching utilizadas por la function de actualización.
  3. No busque componentes en todos los frameworks, en algunos casos puede usar un patrón único
  4. No destruya objects en todos los frameworks. Realice un agrupamiento de objects.
  5. Mejore las emisiones de partículas y haga lo less que pueda.
  6. Mejore los sombreadores. Si usa el mobile, use shaders mobilees. Por ejemplo, cambie el sombreador difuso a Móvil / Difuso.

Aquí hay algunos enlaces útiles Tutorial de video de agrupación de objects , patrón Singleton Unity3d c #