Equilibrar la fidelidad y el rendimiento con las limitaciones del hardware móvil puede ser un reto. Las siguientes secciones detallan los ajustes y las herramientas que proporciona Unreal Engine (UE) para ajustar el rendimiento, incluidas las variables de consola que puedes establecer en los perfiles de los dispositivos y consejos sobre cómo usarlas.
Plataformas de previsualización
La plataforma de previsualización es la plataforma de destino que quieres que Unreal Editor imite en los visores. La plataforma de previsualización integrada en el editor es una aproximación al aspecto que tendrá la aplicación en una plataforma de destino. It is important that you test on the actual device, the Android emulator in Android Studio, or the iOS emulator in Xcode for more accurate testing. Sin embargo, la plataforma de previsualización te dará una idea más rápida del aspecto que deberían tener los elementos visuales directamente desde el editor.
Para establecer la plataforma de previsualización, sigue estos pasos:
Click the Performance and Scalability button in the editor's main toolbar.
Selecciona el submenú Plataforma de previsualización.
Select the platform whose rendering you want Unreal Editor to emulate.
Unreal Editor tardará un tiempo en recompilar los sombreadores para la nueva plataforma, pero una vez hecho esto, los elementos visuales deberían reflejar el perfil del dispositivo destinado a la plataforma de previsualización seleccionada. También puedes cargar un archivo .json de tu dispositivo de prueba para obtener una vista previa aún más precisa con la configuración y el perfil de dispositivo específicos de ese dispositivo.
Para obtener más información sobre cómo configurar la plataforma de previsualización, consulta la documentación Mobile Previewer.
Para los desarrolladores de Android y HMI, UE es compatible con los niveles de función de renderizado de Vulkan. Consulta la página Android Vulkan Mobile Renderer para obtener más información sobre la compatibilidad de Vulkan en UE.
Configuración de renderizado
Esta sección detalla los ajustes de renderizado que puedes usar para ajustar el equilibrio de tu aplicación entre rendimiento y fidelidad. Esto supone un gran sacrificio en la calidad del renderizado, pero puede suponer grandes mejoras en la tasa de fotogramas y la estabilidad, ya que pueden reducir la sobrecarga del renderizado.
Porcentaje de pantalla
El porcentaje de pantalla controla qué parte de la resolución nativa del visor se usa para renderizar fotogramas.
Por ejemplo, imagina que el visor se está renderizando en una ventana de 3840x2160:
Si estableces el porcentaje de pantalla en 100, se usará la resolución completa de 3840x2160 del visor.
Si estableces el porcentaje de pantalla en 50, solo se usará el 50 %, es decir, 1920x1080.
Porcentaje de pantalla al 15 %, 50 % y 100 %.
Al reducir el porcentaje de pantalla, la aplicaciones se renderizan más rápido, pero se verá notablemente menos detallada que cuando se usa la resolución máxima.
No se puede establecer el porcentaje de pantalla en el modo Editor al ejecutar Unreal Editor. Sin embargo, puedes establecerlo al usar Reproducir en el editor o al ejecutar una compilación empaquetada.
Para cambiar el porcentaje de pantalla en el editor, abre el menú de escalabilidad mientras juegas y usa el control deslizante Porcentaje de pantalla para cambiarlo. Para configurarlo en tiempo real con la consola, usa la variable r.ScreenPercentage. Un valor de 100 para esta variable equivale al 100 %.
Cada ajuste de escalabilidad tiene un porcentaje de pantalla predeterminado. Puedes anular en tiempo de ejecución según sea necesario para mejorar el rendimiento o la fidelidad del renderizado.
Tasa máxima de fotogramas
Puedes fijar una tasa máxima de fotogramas si modificas la variable CVar t.MaxFPS. La aplicación solo renderizará fotogramas por segundo hasta el valor que establezcas. Por ejemplo, con un t.MaxFPS de 30, la tasa máxima permitida de fotogramas para la aplicación será de 30 fotogramas por segundo.
Puedes cambiar este valor en tiempo de ejecución para variar la velocidad de renderizado. Por ejemplo, si la aplicación está inactiva y la pantalla está apagada, puedes fijar t.MaxFPS en 5 hasta que el usuario empiece a interactuar con la pantalla y después volver a fijar una tasa de fotogramas más alta. Si la aplicación muestra principalmente información que llega lentamente, como los datos de GPS, puedes limitar MaxFPS a 30 o menos sin que afecte demasiado a la experiencia del usuario. Te animamos a que pienses de forma crítica sobre cómo y cuándo la aplicación requiere una mayor frecuencia de fotogramas en lugar de cuándo puedes reducirla estratégicamente.
Configuración de escalabilidad
La configuración de escalabilidad proporciona ajustes preestablecidos para las funciones de renderizado en UE y ofrece la forma más sencilla de ajustar el rendimiento del proyecto en el editor. Cada ajuste de escalabilidad se puede cambiar a un preajuste que cambia un subconjunto de ajustes gráficos para favorecer una mayor o menor fidelidad. UE ya las tiene configuradas en función del hardware que existe en el momento de cada versión.
Para ver la configuración actual de escalabilidad en Unreal Editor:
Haz clic en el botón Configuración de la barra de herramientas principal del editor.
Resalta el submenú Configuración de la escalabilidad del motor. Elige tu grupo de escalabilidad preferido: Baja, Media, Alta, Épica o Cinemática.
La configuración de escalabilidad que se ajusta en el editor solo afecta al comportamiento del editor local, no a las compilaciones finales.
Puedes obtener más sobre los ajustes de escalabilidad en las secciones Introduction to Performance Profiling and Configuration y Scalability Reference.
Iluminación y sombreado
Los dispositivos móviles tienen recursos especialmente limitados para procesar iluminación y sombras, por lo que es importante elegir el modo de sombreado que mejor se adapte a los entornos del proyecto. La cuestión clave a tener en cuenta es si tu proyecto se basará en iluminación estática o dinámica.
Modos de sombreado para móviles
Los modos de sombreado para móviles proporcionan implementaciones alternativas para una variedad de efectos de iluminación y sombreado, optimizados específicamente para aprovechar la memoria de teselas en el hardware móvil.
Diferido para móviles: calcula la información de iluminación en su propio pase después de gestionar la geometría.
Esto proporciona funciones de iluminación superiores y un mejor rendimiento en proyectos que usan luces dinámicas, ya que reduce considerablemente la cantidad de instrucciones de materiales que maneja el renderizador.
Directo para móviles: calcula la información de iluminación al mismo tiempo que la geometría.
Esto proporciona menos flexibilidad con la iluminación, pero en proyectos que usan luces precalculadas, proporciona un rendimiento más rápido y menos sobrecarga.
Para obtener más información sobre los modos de sombreado para móviles, consulta Rendering and Shading Modes. Recomendamos Directo para móviles para la mayoría de los proyectos, ya que ofrece el mejor rendimiento y la mayoría de las funciones de renderizado de la opción Diferido. Deberías investigar qué modo de sombreado te dará el mejor rendimiento y cómo repercutirá en tu arte técnico.
Lumen e iluminación estática
El sistema de iluminación Lumen proporciona iluminación global de alto rendimiento destinada a consolas y PC gaming. Cuando se activa, usa una combinación de trazado de rayos y efectos de iluminación del espacio en pantalla para simular la luz en tiempo real.
Lumen está disponible para dispositivos móviles, pero se considera experimental debido a la gran demanda de recursos del hardware móvil. Puedes experimentar con él, pero desaconsejamos realizar envíos con Lumen en aquellos casos en los que el rendimiento sea una prioridad.
Para obtener más información sobre Lumen, consulta Lumen Global Illumination and Reflections. Consulta Lumen on Mobile para obtener información específica sobre el uso de Lumen en un entorno móvil.
Materiales y sombreadores
La cantidad de ID de materiales y su complejidad pueden afectar al número de llamadas de trazado de proyecto. Las llamadas de trazado son búsquedas de recursos que ocurren en cada fotograma. Un alto número de llamadas de trazado es lo que más contribuye a un rendimiento gráfico bajo.
En HMI, 100 llamadas de trazado es un buen objetivo en una Galaxy Tab S6, y menos de 50 es preferible. Puedes producir el recuento de llamadas de trazado con el comando de consola Stat RHI.
Ten en cuenta que el recuento de llamadas de trazado cambiará en función de si estás en PIE o en un dispositivo.
Las siguientes secciones describen los factores que afectan a las llamadas de trazado y cómo mitigarlas.
Cómo reducir el recuento de ID de materiales
Puedes reducir el recuento de ID de materiales de las siguientes maneras:
Con un programa externo, como Photoshop, Substance Painter o Substance Designer, puedes combinar varios mapas de renderizado basados en físicas (dureza, especular, metálico, etc.) en una sola textura. Esto a menudo se denomina empaquetado de una textura.
Cómo usar máscaras para indicar qué partes de los UV de una malla reciben distintos ajustes El enmascaramiento se puede realizar usando texturas alfa o colores de vértice. El color de los vértices suele ser más eficiente, pero solo ofrece control a nivel de vértice.
Para obtener más información sobre los distintos métodos de aplicar varios tipos de materiales a un mismo recurso, consulta el artículo Materials.
Cómo reducir la complejidad del material
La complejidad del material puede aumentar el coste en píxeles de un renderizado. Cuantas más instrucciones haya para cada píxel, más tiempo de renderizado se necesitará.
Puedes reducir la complejidad del material de las siguientes maneras:
Reduce el número de funciones matemáticas del material.
Reduce el número de nodos de coste alto.
Realiza un uso selectivo de ajustes de gran coste como la niebla, la niebla por píxel, el sombreado directo de la superficie, los dos lados, los reflejos del espacio en pantalla (SSR), las sombras, etc.
Realiza un uso selectivo de las propiedades de los materiales, los dominios de los materiales y los modos de mezcla de gran coste, como la traslucidez.
Puedes comprobar la complejidad de los materiales al hacer clic en la pestaña Estadísticas del grafo de material:
Para obtener más información sobre las propiedades de los materiales, consulta Material Properties.
Cómo reducir el tamaño de la textura
Las texturas de alta resolución requieren mucho espacio para almacenarse en un dispositivo y en su memoria de texturas. También requieren más píxeles para renderizar y procesarse. Por ejemplo, en función de la plataforma, los mapas normales de alta resolución pueden tener un coste de rendimiento superior al de un modelo con muchos polígonos. Lo ideal es comprimir las texturas de alta calidad en el motor para reducir la sobrecarga y conseguir la fidelidad deseada.
Para comprimir texturas con el tamaño máximo de textura, sigue estos pasos:
Abre la textura en el editor de texturas.
En el panel Detalles, bajo el encabezado Compresión, expande Avanzado.
Establece el tamaño máximo de textura en el número que quieras.
Un método para paliar este problema es usar una textura de depuración especial para determinar qué resolución es necesaria para los distintos componentes de un recurso.
Para obtener más información sobre este método, consulta la sección Optimización del renderizado para dispositivos móviles.
Cómo utilizar sombreados de precisión media y máxima
De forma predeterminada, los dispositivos móviles procesan las operaciones matemáticas en materiales con la mitad de precisión que los dispositivos de escritorio. Esto significa que hay menos decimales con los que trabajar al hacer cálculos. Esto ahorra memoria y procesamiento, lo que resulta en un renderizado más rápido, pero también puede generar artefactos visuales como bandas.
Para solucionar estos problemas, abre el material y, en el panel Propiedades de los materiales, habilita el ajuste Utilizar precisión absoluta.
Esto obligará al material a usar el mayor nivel de precisión disponible en el dispositivo móvil. Para garantizar que la aplicación no sacrifica demasiado rendimiento, solo deberías usar este ajuste con aquellos materiales importantes en los que los efectos vayan a tener un impacto notable en la experiencia del usuario.
Caché de PSO
La caché de PSO almacena en caché el estado de canalización de los objetos renderizados en el mundo para que los usuarios no tengan que recompilar sus sombreadores durante el tiempo de ejecución. Esto reduce que la experiencia de juego sufra tirones.
Para obtener más información sobre el almacenamiento en caché de PSO para Android, consulta PSO Caches.
Posprocesamiento
Unreal Engine es compatible con una amplia variedad de Post-Processing Effects que pueden mejorar el aspecto de la aplicación. Sin embargo, deberías evaluarlos y equilibrarlos con cuidado en un contexto móvil. Esta sección proporciona pautas sobre los posprocesados que suelen provocar una sobrecarga en el rendimiento.
Oclusión ambiental y oclusión ambiental con bake
Oclusión ambiental (OA) es una técnica que simula cómo la iluminación del ambiente crea sombras indirectas sobre un objeto. Aunque produce resultados de renderizado más realistas y atractivos visualmente, puede ser una operación de gran coste.
Una alternativa menos costosa es usar la oclusión ambiental procesada. Las herramientas de modelado como Maya, 3DS Max y Blender tienen la opción de producir mapas de oclusión ambiental. Puedes importar un mapa de oclusión ambiental en UE e incluirlo en tus materiales para añadir sombras de oclusión ambiental a un objeto sin tener que procesarlo en directo.
Cómo configurar la oclusión ambiental para móvil
Independientemente del método que utilices para la oclusión ambiental, puedes ajustar la configuración de oclusión ambiental específica para móviles con las siguientes variables de consola. Se pueden establecer en los archivos de configuración o en los perfiles de los dispositivos según sea necesario.
| Variable de consola | Descripción | Valores |
|---|---|---|
| Cuando está habilitado, usa otro muestreador más en el sombreador de píxeles del pase base para la oclusión ambiental. | 0: Deshabilitado (predeterminado) 1: Habilitado |
| Al habilitarse, la OA móvil usará los límites de profundidad para cribar los píxeles distantes durante el pase de la OA. Esta opción solo es válida cuando se usa la ruta del sombreador de píxeles (consulta | 0: Deshabilitado (predeterminado) 1: Habilitado |
| El nivel de calidad para la oclusión ambiental del espacio de la pantalla en plataformas móviles. | 0: Deshabilitada 1: Baja 2: Media 3: Alta |
| Selecciona el tipo de sombreadores que se usa por la oclusión ambiental para dispositivos móviles. | 0: Sombreador computacional 1: Sombreador computacional independiente 2: Sombreador de píxeles (predeterminado) |
| Elige entre oclusión ambiental real (GTAO) u oclusión ambiental del espacio en pantalla (SSAO). Aunque es más costoso computacionalmente, GTAO proporciona resultados de mayor calidad, mientras que SSAO es más simple y funciona más rápido. | 0: GTAO (predeterminado) 1: SSAO |
Antialiasing
Sin posprocesamiento, las imágenes rasterizadas tienen bordes marcados debido a la forma en que se muestran los píxeles en la pantalla. El resultado es un aspecto irregular, lo que se denomina aliasing. El antialiasing suaviza los píxeles y los bordes de los objetos renderizados. Este ajuste puede hacer que las imágenes parezcan más realistas.
UE es compatible con varios métodos de antialiasing, cada uno con sus propias ventajas, desventajas y ajustes de configuración. Para obtener más información sobre las opciones de antialiasing de UE, consulta la sección Antialiasing and Upscaling.
Las siguientes secciones son resúmenes de los tipos de antialiasing disponibles para las canalizaciones de renderización para móviles.
Antialiasing temporal
El antialiasing temporal (TAA) suaviza los bordes usando información de los fotogramas renderizados anteriores. Este enfoque emplea menos procesamiento que el antialiasing multimuestra (ver más abajo), pero requiere algo de memoria para almacenar fotogramas anteriores. Esto funciona de forma similar a un efecto de posprocesamiento de desenfoque de movimiento, por lo que puede añadir un ligero desenfoque a las imágenes (lo que se denomina ghosting o imágenes fantasma), especialmente si la tasa de fotogramas es baja. Cuantos más cambios se produzcan en pantalla, más probabilidades hay de que se vean imágenes fantasma. La implementación del TAA de UE puede usar algoritmos antighosting para limpiarlo, aunque con un coste de procesamiento adicional. También puedes usar varios ajustes para modificar el historial de fotogramas.
Puedes usar las siguientes variables de consola para configurar el TAA:
| Variable de consola AA temporal | DescriptionDescription | Valores |
|---|---|---|
| Calidad del pase de AA temporal principal. | 0: Deshabilitar el filtrado de entrada. 1: Habilitar el filtrado de entrada. 2: Habilitar más filtrado de entrada, así como el antighosting basado en el movimiento. (Predeterminado) 3: Filtrado de entrada de nivel 1, pero con antighosting habilitado. |
| Fuerza al AA temporal a usar solo uno de los fotogramas que ha muestreado. | Si hay un valor superior o igual a 0, se elige qué índice de fotograma muestreados se usa. El valor predeterminado es -1. |
| Tamaño en pantalla en porcentaje del historial temporal de AA. | 0-100, como |
| Si se activa, el AA temporal usa un sombreador informático para mejorar la calidad. Si se desactiva, usa el sombreador de píxeles para ahorrar ancho de banda para FBC en las GPU basadas en teselas. | 0: (desactivado) 1: (activado) |
| Indica si se debe aplicar un porcentaje de pantalla principal con AA temporal o no. | 0: Usa el pase espacial mejorado independientemente del AA. 1: El AA temporal realiza una mejora espacial y temporal como método de porcentaje en pantalla. (Predeterminado) |
| Selecciona el algoritmo de mejora que se usará con el AA temporal. | 0: Fuerza el escalador temporal predeterminado del renderizador. 1: Usa |
| Determina si usar o no la configuración del AA temporal para dispositivos móviles. Esto deshabilita el almacenamiento en caché compartido en grupo de los búferes de color y profundidad. | 0: Deshabilitado (predeterminado) 1: Habilitado |
| Si se activa, usa un kernel de filtro catmull-rom, que debería ser más nítido que el kernel de filtro gaussiano predeterminado. | 0: Deshabilitado (predeterminado) 1: Habilitado |
| Peso de la contribución del fotograma actual al historial. Los valores más bajos provocan desenfoque y efecto fantasma, los valores altos no logran ocultar las vibraciones. | 0-1. El valor predeterminado es 0.04. |
| Tamaño del kernel del filtro. | Coma flotante entre 0 y 1. Un valor de 1 es más suave, pero más desenfocado. Un valor de 0 es más nítido, pero con más alias. Coma flotante entre 0 y 1. Un valor de 1 es más suave, pero más desenfocado. Un valor de 0 es más nítido, pero con más alias. |
| Número de posiciones con fluctuaciones que se usarán para el AA temporal. | Valores enteros que son potencias de dos, entre 4 y 64. El valor predeterminado es 8. |
| Determina si escalar o no el número de posiciones con fluctuación para el AA temporal al sobremuestrear. Esto ayuda a mantener una densidad uniforme. | 0: Deshabilitada 1: Activado (predeterminado) |
Antialiasing de muestreo múltiple
El antialiasing de muestreo múltiple (MSAA) suaviza los bordes muestreando la imagen varias veces y luego promediando todas las muestras. Esto es más costoso, pero produce resultados de alta calidad. Puedes configurar el número de pases de MSAA con la variable de consola r.MSAACount, que toma valores entre 0 y 8. Cuanto mayor sea el número de pases del MSAA, mayor será la cantidad de memoria de la GPU que usará.
| Valor de r.MSAACount | Descripción |
|---|---|
0 | MSAA desactivado (AA temporal activo) |
1 | MSAA desactivado |
2 | Usar dos MSAA |
4 | Usar cuatro MSAA |
8 | Usar ocho MSAA |
El antialiasing de muestreo múltiple solo es compatible con el renderizado directo para móviles, no con el renderizado diferido para móviles.
Antialiasing aproximado rápido
El antialiasing aproximado rápido (FXAA) es una técnica de antialiasing solo espacial y un efecto de posprocesamiento. Utiliza un filtro de alto contraste para encontrar los bordes y suavizarlos mezclando (difuminando) entre los bordes de los píxeles. Como su nombre indica para esta técnica, es rápida de renderizar y muy adecuada para dispositivos de gama baja y ordenadores de sobremesa. Aunque esta técnica es rápida de renderizar, la imagen final puede perder fidelidad en comparación con otras técnicas de antialiasing.
| r.FXAA.Quality | Descripción |
|---|---|
0 | Consola |
1 | Difuminado medio para PC con 3 muestras |
2 | Difuminado medio para PC con 5 muestras |
3 | Difuminado medio para PC con 8 muestras |
4 | Difuminado bajo para PC con 12 muestras (predeterminado) |
5 | Difuminado extremo para PC con 12 muestras |