Familiarícese con la configuración de HDRP para un mejor rendimiento
Aprenda a aprovechar la configuración del canal de renderizado de alta definición (HDRP) para maximizar el rendimiento y lograr gráficos potentes a la vez.
Con el lanzamiento de la versión 10 de HDRP para Unity 2020 LTS y posteriores, el paquete HDRP siguió priorizando su interfaz fácil de usar, funciones flexibles, estabilidad y rendimiento general. Pero para configurar HDRP para un uso óptimo, es fundamental comprender todas las configuraciones principales, cómo funcionan y qué hacen. Es por eso que estamos viendo cómo funciona HDRP desde la perspectiva de las capturas del generador de perfiles de CPU/GPU, la vista de depuración del canal de renderizadoy el marco de sombreado de HDRP.
Desde la depuración de gráficos hasta la creación de perfiles y la optimización, este blog ofrece sugerencias para ayudarlo a personalizar HDRP para su proyecto utilizando la API Custom Passu otra parte local del paquete.
Antes de comenzar a analizar fotogramas, es importante conocer las características HDRP en cuestión. Le recomendamos ver nuestra presentación Unite Now, Cómo lograr gráficos de alta fidelidad para juegos con HDRP, el seminario web Ray tracing con el canal de renderizado de alta definición de Unity y la charla Nubes volumétricas, destellos de lente y anclaje de luz , que son excelentes guías para HDRP.
Los usuarios que pasan del canal de renderizado integrado a HDRP a menudo descubren que la migración requiere cierto tiempo de adaptación. Esto se debe a que:
- HDRP tiene un marco de renderizado unificado y basado en la física, lo que significa que sus atributos utilizan unidades del mundo real: El valor de exposición se utiliza para la sensibilidad a la luz de la cámara, mientras que Candela se utiliza para la intensidad de la luz. Nuestracharla Unite Now revela cómo pensar de manera física para obtener resultados consistentes al iluminar una escena.
- Hay muchos parámetros que puedes controlar en un proyecto HDRP y estos parámetros existen en muchos lugares. Esto se debe en parte a que HDRP tiene más funciones integradas, así como capacidades de personalización más profundas para que tanto los artistas como los ingenieros puedan afinar y optimizar su trabajo.
Para familiarizarnos con estas capacidades de HDRP, comenzaremos mirando su configuración global.
Configuración global
Para el canal de renderizado integrado, las configuraciones de gráficos cubren la mayoría de las configuraciones de gráficos por proyecto. También hay configuraciones de jugador , que contienen algunas configuraciones de gráficos generales en el contexto de una plataforma de destino particular, como Windows, Linux, Mac o Xbox.
Los proyectos HDRP también utilizan configuraciones de gráficos y reproductor, con el agregado de tres conjuntos más de configuraciones que brindan acceso a configuraciones predeterminadas avanzadas del flujo de renderizado.
- En la configuración de gráficos, por ejemplo, la configuración de Scriptable Render Pipeline (SRP) hace referencia a un recurso de HD Render Pipelinepredeterminado. Este recurso de canalización de renderizado HD contiene configuraciones que se pueden anular en cada nivel de calidad.
- La pestaña Configuración predeterminada de HDRP configura:
- Configuración de marco predeterminada, con propiedades predeterminadas que se pueden anular para cada cámara (incluidas las cámaras utilizadas para reflexiones planas o sondas de reflexión). Aquí puedes decidir si las cámaras renderizarán objetos transparentes de forma predeterminada.
- Componentes de volumen predeterminados, que contienen propiedades que se pueden anular para cada “posición de la cámara en la escena”. Por ejemplo, puedes definir intensidades de efectos de posprocesamiento predeterminadas, que se pueden anular y convertir en “fuertes en exteriores pero débiles en interiores” utilizando volúmenes específicos para tus escenas.
- La propiedad Activos del perfil de difusión predeterminado, que puede ser reemplazada por un componente Anulación del perfil de difusión en la sección Componentes de volumen de la pestaña Configuración predeterminada de HDRP. Esto, a su vez, se puede anular mediante la “posición de la cámara en la escena”. Actualmente también hay una “capa de anulación redundante” para el sistema de perfil de difusión, pero como buscamos constantemente mejorar la experiencia de usuario en HDRP, ya estamos trabajando en una solución para este problema.
- Otras propiedades, que son “configuraciones globales puras”, no se pueden anular.
- Por último, algunas configuraciones de bajo nivel que tienen menos probabilidades de requerir configuración se especifican en el paquete de configuración HDRP. Estas configuraciones también son “configuraciones globales puras”. Para cambiarlos es necesario volver a compilar el ensamblaje C# y el marco del sombreador HDRP. Por eso están colocados en un lugar diferente.
Niveles de calidad
Con el canal de renderizado integrado, puedes definir una serie de niveles de calidad en la pestaña Configuración de calidad . Para cada nivel de calidad, se pueden especificar algunas configuraciones gráficas, como el uso de textura anisotrópica, para que se utilicen menos recursos de hardware en plataformas de gama baja.
Para los proyectos HDRP, específicamente, se puede seleccionar un recurso de canalización de renderizado HD de anulación para cada nivel de calidad. Esto ofrece más capacidad de configuración en comparación con el canal de renderizado integrado, ya que el activo del canal de renderizado HD almacena varios parámetros, como la cantidad máxima de luces direccionales, puntualesy de área en pantalla, el tamaño de la LUT de gradación de colory el tamaño del atlas de cookies de luz, entre otros.
Algunas propiedades de la pestaña Configuración de calidad de un proyecto de canalización de renderizado integrado solo se aplican a la canalización de renderizado integrado. En un proyecto HDRP, estas configuraciones pueden desaparecer de sus ubicaciones originales y reaparecer en otro lugar como “configuraciones de reemplazo”.
En un proyecto de canalización de renderizado integrado, por ejemplo, la pestaña Configuración de calidad controla la propiedad Resolución de sombra . Sin embargo, en un proyecto HDRP, la sección Iluminación > Sombras de un recurso de canalización de renderizado HD controla la resolución de los mapas de sombras.
Configuración de cámara y marco
Para renderizar tu escena en HDRP, necesitas agregar cámaras tal como en el pipeline de renderizado integrado. HDRP también utiliza un componente adicional de datos de cámara HD adicionales (adjunto al mismo objeto de juego) para almacenar parámetros adicionales por cámara.
De hecho, HDRP ofrece muchos más parámetros de personalización por cámara. Hay varias configuraciones de cámara física y, si marca la propiedad Configuración de marco personalizado de una cámara, puede decidir cómo la cámara dibuja el marco a través del sistema Configuración de marco .
El sistema de configuración de marco es una pila de anulaciones de propiedades de la cámara. Puede especificar valores predeterminados para la configuración de marco en la pestaña Configuración predeterminada de HDRP. Además, cada cámara puede anular la configuración de marco predeterminada.
Los paneles de cámara de laventana de depuración del pipeline de renderizado ayudan a visualizar la pila de anulación de configuraciones de cuadro.
Uso del panel de la cámara
El siguiente ejemplo demuestra cómo funciona el panel Cámara de la ventana Depuración de Render Pipeline:
Hay una cámara llamada Cámara Principal en la Escena. La cámara principal solo dibuja objetos estáticos. La pestaña Configuración predeterminada de HDRP permite dibujar vectores de movimiento, mientras que la anulación de Configuración de cuadro de la Cámara principal deshabilita esta función para mejorar el rendimiento general.
La pila de anulación de vectores de movimiento muestra el estado de la configuración de OverriddenFrame a la izquierda de la configuración de DefaultFrame. Ver Figura 4, Resaltado A:
Además, la ventana Depuración de canalización de renderizado muestra el estado de la configuración de SanitizedFrame a la izquierda de la configuración de OverriddenFrame. La desinfección garantiza que las configuraciones del marco anulado permanezcan consistentes. Observando el mismo ejemplo, el movimiento de objetos opacos y el movimiento de objetos transparentes no se han deshabilitado explícitamente en la anulación de la configuración de marco de la cámara principal. Pero como Motion Vector está deshabilitado, estas funciones dependientes también quedan desactivadas por el sistema de desinfección, como se muestra en la Figura 4, Resaltado B.
Sistema de volumen
Como discutimos en nuestracharla deUnite Now, HDRP admite un sistema de volumen. De manera similar a la pila de posprocesamiento en el canal de renderizado integrado, el sistema de volumen HDRP controla el posprocesamiento. Pero aún más, determina la forma en que se representa el cielo, la intensidad de la luz indirectay algunos ajustes de sombras, entre otras características.
En pocas palabras, el sistema de volumen HDRP es un marco abstracto que se puede utilizar para alterar la configuración de renderizado a medida que la cámara se mueve por la escena. Hay un valor predeterminado codificado para cada propiedad de volumen. Para ver estos valores, utilice el panel Volumen en la ventana Depuración del pipeline de renderizado. Vea la columna más a la derecha en la Figura 5, donde la intensidad predeterminada de la distorsión de la lente es 0.
Estas propiedades predeterminadas codificadas se pueden anular mediante anulaciones de propiedades en la sección Componentes de volumen de la pestaña Configuración predeterminada de HDRP. Tenga en cuenta que estas anulaciones de propiedades también pueden ser anuladas por volúmenes en la escena.
Por el contrario, la cámara capta una combinación de valores de propiedad de los volúmenes de la escena. Si no hay ninguno, toma los valores de propiedad de la pestaña Configuración predeterminada de HDRP. De lo contrario, retoma los valores de propiedad predeterminados codificados.
Como se muestra en la Figura 5, el panel Volumen de la ventana Depuración de Render Pipeline es útil para visualizar la pila de anulación de propiedades de Volumen actual. Es especialmente eficaz durante la depuración, ya que muestra las propiedades de volumen actualmente en uso.
Mallas y superficies
Al igual que en el canal de renderizado integrado, las geometrías que se renderizarán generalmente se especifican mediante renderizadores de malla o renderizadores de malla modificados en la escena. Los datos específicos de HDRP se almacenan predominantemente en los materialespara que puedan usar los renderizadores o gráficos de sombreadoadecuados.
Iluminación
Al igual que en el canal de renderizado integrado, los proyectos HDRP tienen luces con almacenamiento de datos específico para HDRP para cada luz. Los componentes de datos de luz adicionales HD se conectan junto con los componentes de luz normales.
Tenga en cuenta que hay muchas configuraciones de iluminación que se derivan de lugares distintos a los objetos de juego con componentes de luz. A continuación se muestran algunos ejemplos:
- La iluminación indirecta está determinada por grupos de sondas de luz, sondas de reflexión (con datos de reflexión adicionales HD adjuntos), sondas de reflexión planasy configuraciones de iluminación. También se puede ajustar mediante el componente Volumen del controlador de iluminación indirecta .
- El sistema de volumen determina la iluminación del cielo.
- El sistema de volumen también controla los efectos relacionados con el espacio de la pantalla. Estos efectos actúan como una fuente de iluminación o sombra: Reflexión del espacio de pantalla, Refracción del espacio de pantalla, Iluminación global del espacio de pantalla, Oclusión ambiental del espacio de pantallay Sombra de contacto.
- La dispersión subsuperficial también simula la “iluminación de superficie a superficie”. La mayoría de las propiedades de dispersión del subsuelo están especificadas por los perfiles de difusión, que, a su vez, están determinados por los materiales. Mientras tanto, puedes aprovechar el sistema de Volumen para seleccionar la Anulación del Perfil de Difusión.
Ahora que hemos hecho un recorrido por la experiencia de usuario (UX) de HDRP, pasemos a algunas propiedades gráficas menos familiares para su próximo proyecto HDRP. La figura 7 ilustra un posible enfoque, comenzando con configuraciones generales en la parte superior y configuraciones de anulación en la parte inferior. Como puedes ver, el alcance se amplía a medida que avanzamos de arriba a abajo.
La configuración de gráficos de HDRP debe adaptarse a lo siguiente:
- El nivel de calidad del programa, como la plataforma en la que se ejecuta el programa.
- La cámara activa actual
- Ubicación de la cámara en la escena
- Los materiales de las geometrías renderizadas
- Las luces que afectan las geometrías renderizadas
Tenga en cuenta que la configuración de HDRP se adapta especialmente a las dimensiones de la configuración.
Conflictos entre las dimensiones de la configuración
A menudo surgen conflictos entre las dimensiones de las siguientes configuraciones:
- El nivel de calidad y la cámara activa actual podrían intentar controlar el mismo parámetro gráfico. Por ejemplo, si desea reducir el recuento de muestreo de dispersión de subsuperficie en dispositivos de gama baja, es posible que también desee reducir el recuento de muestreo de dispersión de subsuperficie para cámaras que renderizan en texturas de renderizado para efectos de imagen en imagen.
- El nivel de calidad y la ubicación de la cámara en la escena podrían intentar controlar el mismo parámetro gráfico. Entonces, si desea reducir la calidad de los efectos de posprocesamiento en plataformas con potencia de GPU limitada, debe tener en cuenta el hecho de que algunas ubicaciones de escena ya utilizan un tiempo de GPU significativo para una iluminación compleja. Como tal, debe esforzarse por reducir la calidad de los efectos de posprocesamiento en estas ubicaciones para recuperar algo de presupuesto de rendimiento.
- El nivel de calidad y las luces de la escena podrían intentar controlar el mismo parámetro gráfico. Entonces, si desea reducir la resolución del mapa de sombras en plataformas con RAM limitada, debe tener en cuenta que es probable que haya muchos pequeños focos que proyectan sombras en la escena que requieren mapas de sombras con menor resolución.
Para solucionar estos conflictos, HD Render Pipeline Asset admite configuraciones por niveles. En lugar de indicar solo un valor para una propiedad, se pueden atribuir varios valores a varios niveles: Bajo, Medio, Alto y, en algunos casos, un nivel Ultra.
Para las cámaras que reproducen el efecto de imagen en imagen, puede especificar un nivel tanto para los volúmenes que controlan los efectos de posprocesamiento como para los focos que solicitan los mapas de sombras:
Luego, HDRP puede buscar la propiedad desde el nivel apropiado en el recurso de canalización de renderizado HD activo. Esta es la propiedad que se utilizará.
Por supuesto, también es posible que las cámaras, los volúmenes y las luces ignoren el sistema de configuración escalonada y determinen directamente sus comportamientos deseados.
Dimensiones de tres configuraciones superpuestas
Veamos otro ejemplo donde las dimensiones de las configuraciones se superponen.
Imagine que hay algunos renderizadores de malla en la escena que utilizan un gráfico de sombreado con animaciones de vértices complejas. Podría resultar demasiado costoso realizar animaciones de vértices en dispositivos de gama baja. También hay que tener en cuenta la renderización de cámara adicional para la textura de renderizado cuando se trata de efectos de imagen en imagen, por lo que no necesitas esa cámara adicional para renderizar con ninguna animación de vértices.
En este caso, hay tres dimensiones de configuración superpuestas:
- Materiales de geometrías en la Escena
- Nivel de calidad del programa
- Cámaras en la escena
Para abordar casos como este, hay una palabra clave especial de Calidad de Material disponible en Shader Graph:
A diferencia de las palabras clave regulares de Shader Graph, que son controladas por los usuarios por material, esta es una palabra clave global, configurada internamente por HDRP. En el recurso de canalización de renderizado HD, puede controlar los niveles de calidad del material disponibles, así como el nivel de calidad del material predeterminado.
Para cada cámara, puede anular la configuración de marco predeterminada y especificar un nivel de calidad de material, anulando así el activo del canal de renderizado HD.
El HDRP tiene un enfoque sistemático para el manejo de las configuraciones de los artistas. Después de todo, mantener una excelente UX para los artistas es la clave para inspirar contenido de alta calidad.
Al iniciar un proyecto HDRP con una configuración simple, el proyecto puede costar una cantidad sorprendente de rendimiento. Esto se debe a que HDRP determina muchas de las funciones utilizadas de forma predeterminada. La mejor práctica es controlar la configuración de HDRP para pagar solo por lo que desea usar.
Para representar una carga de trabajo de renderizado minimalista, creemos una escena de 225 cubos usando el material predeterminado, iluminado por un foco, una luz puntual, una luz direccional y una iluminación ambiental.
¿Cómo funciona esta sencilla configuración? Construyamos un reproductor independiente con una resolución de 2880x1620, en el backend de scripting IL2CPP , con VSync desactivado. Al ejecutar el reproductor en una máquina Windows con GPU Intel i9-10980HK y GPU NVIDIA RTX2080, el Profiler muestra que el tiempo de cuadro promedio es de 4,6 ms.
Al observar la vista de la línea de tiempo del generador de perfiles, se gasta una cantidad significativa de tiempo en el marcador DXGI.WaitOnSwapChain, lo que indica que está limitado por la GPU.
Al tomar una captura de GPU con Nsight Graphics se muestra que esto ocurre porque el HDRP tiene varias funciones activas de forma predeterminada:
- Hay muchos efectos visuales adicionales activos, como SSAO, Dispersión del subsuelo, Exposición dinámica, Desenfoque de movimiento y Bloom.
- Hay varios pases de pirámide de color y un pase transparente de baja resolución de aumento de muestra en acción, todos los cuales admiten una representación transparente compleja.
Como puede ver aquí, puede controlar el activo HDRP, anular la configuración del marcode la cámara y agregar anulaciones de volumen, de modo que solo se habiliten las funciones mínimas absolutas. En otras palabras:
- Las calcomanías, la transparencia de baja resolución, la cara posterior transparente, el prepaso de profundidad, el pospaso de profundidad, SSAO, SSR, las sombras de contacto, la volumetría, la dispersión del subsuelo y las distorsiones están deshabilitadas en el activo HDRP.
- Las opciones Refracción, Posprocesamiento, Después del posprocesamiento, Transmisión, Sonda de reflexión, Sonda de reflexión planar y Prepaso de mosaico grande están todas deshabilitadas en la configuración de Marco de la Cámara.
- El volumen anula el modo de exposición a exposición fija.
Después de la modificación, el resultado tiene un tiempo de cuadro medio de solo 2,45 ms, lo que es significativo en comparación con la renderización de la misma escena en un canal de renderizado integrado.
En la práctica, no es necesario desactivar tantas funciones de la cámara principal en un juego real, aunque algunas cámaras adicionales sí requieren este tratamiento.
Si está interesado en cámaras aún más económicas, el paquete HDRP UI Camera Stacking en 2021.2 le permite apilar múltiples interfaces de usuario de renderizado de cámaras a solo una fracción del costo de una cámara estándar.
Este ejemplo no solo resalta el alcance del control que tiene sobre las características de rendimiento de HDRP, sino también la importancia de ajustar la configuración de su proyecto HDRP.
Comienza con luz: La guía definitiva para el flujo de trabajo de renderizado de alta definición
HDRP en Unity 2020 LTS te trae herramientas mejoradas para crear iluminación evocadora y de alta gama en tus juegos. Obtenga esta nueva guía detallada para aprender cómo aprovechar el poder de la iluminación basada en la física en HDRP.