Lumberyard Directrices de ajuste del rendimiento para Dispositivos móviles - Lumberyard Guía del usuario

Si proporcionásemos una traducción de la versión en inglés de la guía, prevalecerá la versión en inglés de la guía si hubiese algún conflicto. La traducción se proporciona mediante traducción automática.

Lumberyard Directrices de ajuste del rendimiento para Dispositivos móviles

Consulte las siguientes directrices para generar activos artísticos para juegos móviles con Lumberyard y cómo para afinar Lumberyard para dispositivos móviles.

Directrices de arte

Esta sección proporciona directrices para geometría, iluminación, mapeados de sombras en cascada y materiales.

Geometría Directrices

Siga estas directrices al crear geometría para su juego móvil:

  • Utilice menos objetos individuales para reducir significativamente las llamadas de dibujo. Nosotros recomendar 750 o menos llamadas de dibujo en dispositivos móviles.

  • Utilice las instancias de cuando corresponda. Para ello, cree un sector en Lumberyard Editor y, a continuación, cree instancias de varias instancias de ese sector en el nivel.

  • Añadir compatibilidad con el nivel de detalle de geometría ([EMPTY]). Cada NdD debe ser una reducción del 50% de la geometría.

    • Agrupe el modelo de NdD de alta resolución en _lod0_objectname.

    • Agrupe el siguiente modelo de NdD en _lod1_objectname_group.

    • Asigne el nombre al modelo de proxy de sombra como shadowproxy.

    • Exportar el modelo de proxy de sombra con el proxy de sombra del material.

    • Agrupe el modelo de proxy de sombra en el último grupo de NdD.

      ejemplo

      A continuación se muestra una configuración de NdD en Maya.

      
                                        Ejemplo de configuración de nivel de detalle (NdD) en
                                            de Maya.
    • Haga lo siguiente para ajustar el NdD:

      1. En Lumberyard Editor, seleccione una entidad en su nivel que tenga un Mesh componente.

      2. En la pestaña Entity Inspector, en la Malla componente, bajo Opciones, ajuste el control deslizante para Relación de distancia de NdD. El control deslizante ajusta la distancia a la que el NdD aparece en.

      3. Ajuste cada activo para ver solo el activo de alta resolución cuando necesario.

  • Restringe tu recuento de polímeros como se indica a continuación para cada vista de cámara en el paso del juego:

    • Para dispositivos de gama baja, utilice 300 k o menos.

    • Para dispositivos de gama alta, utilice 700 k o menos si la CPU es la cuello de botella.

    nota

    Para determinar el recuento de polímeros, establezca r_DisplayInfo de 1 en el Lumberyard Editor consola de. El los datos de depuración en la parte superior derecha de la pantalla mostrarán el polímero para cada fotograma de la escena.

  • En la pestaña Consola panel en Lumberyard Editor, establezca la consola de variable r_stats de 1 para imprimir el número de llamadas de dibujo y polígonos que representa la cámara actual.

Iluminación Directrices

Siga estas directrices cuando añada iluminación a su juego móvil:

  • Considere cuidadosamente la cantidad de luces en su escena que proyectan las sombras.

  • Haga lo siguiente para ajustar las luces:

    1. En Lumberyard Editor, seleccione una entidad en su nivel que tenga un Malla componente.

    2. En la pestaña Entity Inspector, en la Malla componente, bajo Opciones, ajuste el valor para Ver multiplicador de distancia. Especificar una base de bomba para apagar la luz y dejar de dibujar antes. Este ajuste es importante para el rendimiento.

  • Añada luces de área y proyector solo si es necesario. El pase de iluminación es caro.

  • Reduzca el área de luz si es posible. Sé frugal.

  • Evite superponerse con las áreas de luz.

  • Evite solapar las áreas de la sonda de entorno.

  • Evite cubrir grandes áreas con sondas de entorno, que pueden introducir Los artefactos de en el borde de las áreas grandes. Por ejemplo, 1000 x 1000 es también grande para que una sonda de entorno cubra. Recomendamos dividir un área que en cuatro áreas más pequeñas.

  • Simule la iluminación rebotada con luces que no proyectan sombras. Internacional la iluminación no se puede utilizar en dispositivos móviles.

    ejemplo

    La siguiente escena utiliza luces que no proyectan sombras para simular (GI) bounce (rebote de iluminación).

    
                                Ejemplo de escena que utiliza luces de proyección sin sombra para
                                    simular el rebote de la iluminación global (GI).

Cascada Directrices para el mapeado de sombras

Lumberyard utiliza variables de consola para especificar cómo generar mapeados de sombras en cascada y para mejore el rendimiento de la pasada de sombra. También puede establecer estas variables para que tengan impacto el motor globalmente o por nivel. Editar el level.cfg del archivo a establezca las variables para un nivel específico. Para obtener más información, consulte Uso de la ventana de la consola.

  • e_ShadowsCascadesDebug – Habilita la vista de depuración para los mapeados de sombras en cascada. Cada cascada del mundo se representa con un para proporcionar información visual del área cubierta por una cascada mapeado de sombras.

ejemplo

El siguiente mapeado de sombras global (GSM) tiene el e_ShadowsCascadesDebug variable de consola establecida en 1.


                        Ejemplo de un mapeado de sombras global (GSM) con la
                                e_ShadowsCascadesDebug variable de consola establecida en
                                1.

Utilice las siguientes variables de consola para especificar el tamaño y cómo generar la sombra en cascada:

  • e_GsmLodsNum – Especifica el número de cascadas de sombras para utilizar. El valor predeterminado es 5.

  • e_GsmRange – Especifica el tamaño de la primera sombra en cascada en unidades cuadradas del mundo. El valor predeterminado es 3, que cubre tres unidades cuadradas en el mundo. En el ejemplo anterior, la primera La cascada de sombras se dibuja en rojo.

  • e_GsmRangeStep – Especifica el multiplicador que se va a utilizar para calcula el tamaño de la siguiente cascada de sombras. El valor predeterminado es 3.

    Por ejemplo, si establece e_GsmRange de 3, la primera cascada de sombras cubre tres cuadrados unidades en el mundo. Para calcular el siguiente tamaño de cascada de sombras, Lumberyard multiplica la primera cascada de sombras y el valor de e_GsmRangeStep. Si el valor de e_GsmRangeStep es el valor predeterminado de 3, el la siguiente cascada de sombras cubriría nueve unidades cuadradas en el mundo. El siguiente La cascada de sombras cubriría 27 unidades cuadradas en el mundo, y así sucesivamente.

Cuando establezca variables de consola, intente equilibrar la reducción del tamaño y el número de de mapeados de sombras en cascada y mantenimiento de la calidad visual del juego. Puede establecer e_shadows de 0 para desactivar las sombras, que puede ser necesario para dispositivos de gama baja.

Las siguientes imágenes muestran cómo las variables de la consola de mapeado de sombras global (GSM) afectan al tamaño de la cascada de sombras y a la distancia de cobertura.

Ejemplo imágenes para el impacto de GSM en el tamaño y la cobertura de la cascada de sombras distancia
Establezca el parámetro e_GsmRange variable de consola a 1 para reducir el tamaño de la sombra en cascada. Establezca el parámetro e_GsmRangeStep variable de consola a 1.5 para reducir el área que cada uno la cascada consecutiva cubre. Establezca el parámetro e_GsmNodLods variable de consola a 3 para reducir el número de cascadas de sombras de que Lumberyard utiliza.

                                        Establezca el parámetro e_GsmRange variable de consola a
                                                1 para reducir el tamaño del
                                            en cascada de sombras.

                                        Establezca el parámetro e_GsmRangeStep variable de consola
                                            de 1.5 para reducir el área que
                                            cada cascada consecutiva cubre.

                                        Establezca el parámetro e_GsmNodLodvariable de consola de s
                                            de 3 para reducir el número de
                                            de las sombras en cascada que Lumberyard utiliza.

El material Directrices

Siga estas directrices al crear materiales para su juego móvil:

  • Menos objetos y materiales individuales para reducir significativamente llamadas de dibujo.

  • Utilice atlas de texturas para reducir el número de materiales o submateriales necesario, reducir las llamadas de dibujo y aumentar el rendimiento.

  • Reduzca el tamaño de textura a 1024 x 1024 o menos.

Ingeniería Directrices

Lumberyard proporciona cuatro niveles de archivos de configuración para admitir la activación y desactivación características y funcionalidad basadas en las características de rendimiento de los dispositivos móviles. Puede encontrar los siguientes archivos en la pestaña lumberyard_version/dev/Engine/Config/spec directorio:

  • ios_low.cfg

  • ios_medium.cfg

  • ios_high.cfg

  • ios_veryhigh.cfg

  • android_low.cfg

  • android_medium.cfg

  • android_high.cfg

  • android_veryhigh.cfg

Cada archivo incluye un conjunto de variables de consola en el que puede habilitar o deshabilitar El motor de incluye.

También puede editar los archivos de configuración en la pestaña Gráficos Configuración ventana en Lumberyard Editor.

Para editar archivos de configuración en Lumberyard Editor

  1. En Lumberyard Editor, elige [EMPTY]de del Editor Configuraciónde Configuración de gráficos.

  2. En la pestaña Configuración de gráficos , haga lo siguiente:

    1. Para Plataforma, seleccione su dispositivo como [EMPTY].

    2. Para el archivo de configuración preferido, ajuste los valores de la opción varias variables de consola. Por ejemplo, si selecciona [EMPTY], variables de consola y valores para cada aparecerá el archivo de configuración (ios_low.cfg, ios_medium.cfg, ios_high.cfg, y ios_veryhigh.cfg).

    Al editar las variables de la consola para el archivo de configuración, el representador muestra en pantalla cómo puede verse el nivel en un dispositivo móvil.

    
                        Ejemplo de la Configuración de gráficos ventana en
                            Lumberyard Editor.

Uso de archivos android_models.xml y ios_models.xml

Lumberyard usa dos .xml para determinar qué dispositivos móviles utilice los archivos de ajustes de configuración bajo, medio, alto o muy alto. Puedes encontrar el android_models.xml y ios_models.xml en el campo /lumberyard_version/dev/Engine/Config/gpu del directorio.

ejemplo archivo android_models.xml

La línea Samsung Galaxy S5 muestra que Lumberyard es compatible con el uso de Las expresiones al especificar el número de modelo del dispositivo. Si un modelo de dispositivo es listado más de una vez, la última instancia se lee y se utiliza con el correspondiente del archivo de configuración de.

<DeviceList> <Config file="android_low.cfg"> <Device model="KFTHWI"/> <!-- Amazon Kindle Fire HDX --> <Device model="Nexus 7"/> <!-- Nexus 7 --> <Device model="Nexus 5"/> <!-- Nexus 5 --> <Device model="SM-N910H"/> <!-- Samsung Galaxy Note 4 (Asia-Pacific)--> <Device model=“SM-G900\w{1,2}“/> <!-- Samsung Galaxy S5 --> </Config> <Config file="android_medium.cfg"> <Device model="SM-T217S"/> <!-- Samsung Galaxy Tab 3 --> <Device model="SM-N920C"/> <!-- Samsung Note 5 --> </Config> <Config file="android_high.cfg"> <Device model="Nexus 6"/> <!-- Motorola Nexus 6 --> <Device model="Pixel"/> <!-- Google Pixel --> </Config> <Config file="android_veryhigh.cfg"> </Config> </DeviceList>

Memoria de GPU (GMEM (Elemento de comunicación global)

La memoria de GPU (GMEM) es una clase de optimizaciones que utiliza memoria local en la GPU para reducir la transferencia de texturas grandes entre la CPU y la GPU. El GMEM puede funcionar en el siguientes modos, dependiendo de lo que el dispositivo móvil pueda admitir:

  • Modo de 256 bits – El motor puede almacenar tres destinos de representación GBuffer y de profundidad o plantilla en la memoria de píxeles de la GPU local, mientras se realiza la Z preliminar pasar, generar el GBuffer, diferir las calcomanías y diferir la lluvia y la nieve pasa. Este modo también almacena la acumulación de luz difusa y especular en la memoria de píxeles de la GPU local durante los pases de sombreado diferidos del de procesamiento.

  • Modo de 128 bits – Este modo almacena la luz difusa y especular texturas de acumulación en la memoria de píxeles de la GPU local durante el sombreado diferido pasa del representador. En comparación con el modo de 256 bits, el modo de 128 bits proporciona menos de un aumento de rendimiento. Sin embargo, con el modo de 128 bits puede activar ciertas características de renderización que no están disponibles si utiliza el de 256 bits modo.

  • Deshabilitado – Este modo significa que GMEM no es compatible o que se ha deshabilitado en los archivos de configuración.

El representador utiliza dos extensiones OpenGL para determinar el modo GMEM compatible con Dispositivos Android:

  • Recuperación de búfer de fotogramas (modo de 256 bits)

  • Almacenamiento local de píxeles (modo de 128 bits)

Para los dispositivos iOS que Lumberyard compatible, tanto el modo GMEM de 256 bits como el modo de 128 bits son compatible con.

Configuración del modo GMEM

Puede habilitar o deshabilitar GMEM con la r_EnableGMEMPath consola variable.

  • 0 = deshabilita GMEM en el representador.

  • 1 = Permite al representador utilizar GMEM en 256 bits modo. Si el dispositivo móvil no admite el modo de 256 bits, el representador use el modo de 128 bits. Si el dispositivo móvil no admite el modo de 128 bits, el el representador deshabilitará GMEM.

  • 2 = Permite al representador utilizar GMEM en 128 bits modo.

Solo puede habilitar o deshabilitar GMEM durante el arranque del motor. Debes añadir la r_EnableGMEMPath variable de consola a una de las siguientes archivos:

  • android_low.cfg

  • android_medium.cfg

  • android_high.cfg

  • android_veryhigh.cfg

  • ios_low.cfg

  • ios_medium.cfg

  • ios_high.cfg

  • ios_veryhigh.cfg

  • system_android_es3.cfg

  • system_ios_ios.cfg

nota

Para evitar artefactos visuales y problemas de rendimiento, no cambie el valor de el r_EnableGMEMPath variable de consola durante el tiempo de ejecución.

Características de representación y GMEM

El GMEM ofrece la flexibilidad de ajustar el modo y las funciones de renderización para satisfacer las calidad visual y rendimiento para una amplia gama de dispositivos móviles. Móvil más potente pueden utilizar el modo GMEM de 128 bits y seguir cumpliendo los requisitos los requisitos de rendimiento. Puede utilizar los archivos de configuración de su dispositivo móvil así como el android_models.xml o bien ios_models.xml para establecer sus requisitos.

Si habilita el modo de 256 bits de GMEM, no puede utilizar las siguientes características:

  • Desenfoque de movimiento

  • Suavizado de contorno temporal

  • Reflexiones de espacio de pantalla

  • Oclusión direccional del espacio de pantalla

  • Piel

  • Dispersión de subsuperficie diferida

  • Niebla volumétrica

  • Oclusión diferida de lluvia o nieve

Si habilita el modo de 128 bits de GMEM, no puede utilizar las siguientes características:

  • Piel

  • Dispersión de subsuperficie diferida

  • Niebla volumétrica

  • Oclusión diferida de lluvia o nieve

Si desea utilizar una función de renderización compatible con el modo de 128 bits de GMEM, pero no modo GMEM de 256 bits, el representador establece automáticamente el modo en 128. Esto es cierto incluso si el modo se establece en 256 en los archivos de configuración.

Para utilizar todas las características de representación disponibles, deshabilite GMEM.

Memoria y aplicación Tamaño

Dado que los dispositivos móviles tienen una cantidad limitada de memoria, debe tomar la para reducir el tamaño de la aplicación y la cantidad de memoria que necesita. Siga estas las directrices:

  • Incluya solo los recursos que utiliza el juego.

    • Habilite solo las gemas necesarias para el juego. Esto evitar que se agrupen en tu aplicación.

  • Incluya solo los activos que utiliza el juego.

    • Compruebe la Cache para su proyecto de juego para ver qué activos empaquetará el proceso de compilación en la aplicación paquete de.

    • En Windows, utilice WinDirStat para identificar qué activos utilizan más y determinar si se deben incluir los recursos en el paquete de aplicaciones o alojar los activos en línea como una descarga independiente.

    • Quitar activos de solo editor, que Asset Processor añade a la Cache del directorio. Esto reducirá el tamaño de el paquete final de la aplicación.

    • Elimine los recursos del directorio del motor. Estos activos pueden aumenta el tamaño del paquete final de la aplicación, incluso si el juego no úselos. El defaulttextures.xml El archivo contiene un lista de texturas que algunos proyectos de juegos podrían no utilizar. Puedes encontrar este archivo en el campo /lumberyard_version/dev/Engine/EngineAssets del directorio.

  • Evite utilizar asignaciones estáticas. Esto reducirá el tamaño del ejecutable y permiten una administración de memoria más segura en tiempo de ejecución.

  • Proporcione descargas para activos específicos de la región. Si la aplicación utiliza aplicaciones localizadas y planeas implementarlo en varias regiones, considera la posibilidad de dividir tu y alojar los datos de cada región en Amazon S3. Entonces puede utilizar la dinámica para descargar activos específicos de cada región.

Android

Si desea reducir el tamaño de una aplicación grande, puede utilizar las herramientas que están se incluye con el NDK de Android para examinar el ejecutable. Por ejemplo, puede utilizar objdump o nm. La herramienta nm puede desensamblar los archivos binarios y mostrar el tamaño de cada segmento de código. La herramienta nm también puede enumerar símbolos y detectar si el código es vinculado inesperadamente a su binario.

Partícula Renderización de características y rendimiento

Las partículas utilizan volúmenes de sol y luz para determinar cómo deben iluminarse en la escena. Dado que los volúmenes de luz son caros en los dispositivos móviles, no recomendamos utilizarlos característica en dispositivos de medio a bajo nivel. Para especificar cómo se encienden las partículas, puede utilizar la e_LightVolumes variable de consola con los siguientes valores:

  • 0 = Las partículas no se ven afectadas por el sol o el volumen de luz las luces.

  • 1 = Las partículas se ven afectadas por el sol y el volumen de luz las luces.

  • 2 = Las partículas solo se ven afectadas por la luz solar.