Este es el primero de una serie de artículos que explican cómo los desarrolladores y artistas técnicos pueden configurar y utilizar el canal de renderizado de alta definición (HDRP) en Unity para lograr un realismo gráfico de alto nivel. HDRP representa un salto tecnológico en el renderizado en tiempo real de Unity para que puedas trabajar con la luz tal como se comporta en el mundo real.
Asegúrese de leer los demás artículos de nuestra serie de procedimientos sobre iluminación de alta gama:
HDRP amplía el sistema de iluminación existente de Unity con una variedad de características para hacer que la representación de su escena se parezca más a la iluminación del mundo real:
- Unidades físicas de luz y exposición: HDRP utiliza intensidades y unidades de iluminación del mundo real. Haga coincidir las especificaciones de fuentes de luz conocidas y establezca exposiciones utilizando cámaras físicas.
- Iluminación avanzada: Tome el control sobre la ubicación de la luz con opciones de forma adicionales para luces puntuales y de área. Utilice capas de luz para limitar la influencia de las luces en mallas específicas. Aplique efectos en tiempo real como Screen Space Global Illumination (SSGI) y Screen Space Refraction.
- Paisajes celestes: Genera cielos de aspecto natural con técnicas variadas. Utilice el sistema Cielo basado físicamente para simular la atmósfera planetaria de forma procesal y agregue nubes volumétricas, capas de nubes o aplique HDRI para simular cielos estáticos.
- Niebla: Añade profundidad y dimensión a tus escenas con niebla. Habilite la volumetría para integrar efectos de niebla con sus objetos de primer plano y generar rayos de luz cinematográficos. Mantenga el control por luz de las luces y sombras volumétricas y utilice el componente Niebla volumétrica local para un control preciso de la densidad de la niebla con una textura de máscara 3D.
- Sistema de volumen: HDRP presenta un sistema intuitivo que le permite bloquear diferentes efectos y configuraciones de iluminación según la ubicación de la cámara o por prioridad. Superponga y combine volúmenes para permitir un control de nivel experto sobre cada metro cuadrado de su escena.
- Posprocesamiento El posprocesamiento HDRP está controlado por una serie de anulaciones de volumen además del sistema de volumen existente. Agregue suavizado, mapeo de tonos, gradación de color, floración, profundidad de campo y muchos otros efectos.
- Sombras avanzadas: HDRP ofrece control artístico y de rendimiento avanzado sobre las sombras. Modifique su tono, filtrado, resolución, presupuesto de memoria y modos de actualización. Acentúe los pequeños detalles y agregue profundidad con Contact Shadows y Micro Shadows.
- Reflexiones avanzadas: Las superficies reflectantes pueden utilizar varias técnicas para renderizar. Las sondas de reflexión ofrecen un enfoque de mapeo de reflexión tradicional, mientras que las sondas de reflexión planar le brindan opciones más avanzadas para superficies planas. La reflexión del espacio en pantalla (SSR) agrega una técnica en tiempo real utilizando el búfer de profundidad.
Unity 2021 LTS y versiones posteriores incluyen el paquete HDRP con instalación para garantizar que siempre esté ejecutando el último código de gráficos verificado. Cuando instala la versión más reciente de Unity, también instala la versión correspondiente de HDRP.
Versión del paquete HDRP Versión de Unity compatible 13.x 2022.1 12.x 2021 LTS (utilizado en esta guía)
Vincular los paquetes de gráficos HDRP a versiones específicas de Unity ayuda a mantener la compatibilidad. Sin embargo, también puedes cambiar a una versión personalizada de HDRP anulando el archivo de manifiesto.
Requisitos del sistema
HRDP es actualmente compatible con las siguientes plataformas de destino:
- Windows y Windows Store, con DirectX 11 o DirectX 12 y Shader Model 5.0
- Consolas modernas (mínimo Sony PlayStation 4 o Microsoft Xbox One)
- MacOS (versión mínima 10.13) con gráficos Metal
- Plataformas Linux y Windows con Vulkan
HDRP solo funciona en consolas y plataformas de escritorio que admiten sombreadores informáticos. No es compatible con dispositivos OpenGL u OpenGL ES. Consulte la documentación para obtener más detalles sobre los requisitos y la compatibilidad.
Consulte Realidad virtual en el canal de renderizado de alta definición para conocer las plataformas y dispositivos de realidad virtual compatibles.
Para configurar un proyecto HDRP, comience en Unity Hub:
Primero cree un nuevo proyecto y seleccione la plantilla vacía 3D (HDRP) o la escena de muestra 3D (HDRP) de las plantillas disponibles enumeradas (llamada RP de alta definición en versiones anteriores del Hub). Para importar el paquete HDRP con algunos ajustes preestablecidos de ejemplo, elija la plantilla más reciente.
Si crea su proyecto con 3D Coretemplate, Unity utiliza el canal de renderizado integradomás antiguo. Puede migrar el proyecto a HDRP manualmente desde el Administrador de paquetes (Ventana > Representación > Asistente HDRP).
Busque el paquete RP de alta definición en el Registro de Unityo utilice el campo Buscar para localizarlo e instalarlo.
Si hay un conflicto con la configuración actual del proyecto, aparecerá el Asistente de canalización de renderizado HDRP para ayudarle a solucionar el problema (también se encuentra en Ventana > Canalización de renderizado > Asistente HDRP). Tenga en cuenta que en Unity 2021.2/HDRP 12, se encuentra en Ventana > Representación > Asistente HDRP.
Vaya a Comprobación de configuración y haga clic en Reparar todo, o haga clic en Reparar para cada problema para repararlos individualmente. Esta lista de verificación puede ayudarle a migrar desde un proyecto de canalización de renderizado no programable (SRP).
Cuando finalice el asistente, un mensaje le pedirá que cree un nuevo activo de canalización. Este es un archivo en el disco que contendrá su configuración específica de canalización. Seleccione Crear uno para agregar un nuevo activo de canalización de renderizadoy asigne el archivo allí.
Una vez que HDRP esté funcionando correctamente, verifique que todas las casillas de verificación en la Verificación de configuración estén en verde. Es posible que notes que el entorno de fondo cambia de color.
Recuerde que la instalación manual desde un proyecto en blanco no importa automáticamente la escena de muestra 3D (HDRP). Utilice la plantilla Escena de muestra 3D si desea acceder a los recursos de ejemplo que se muestran en esta guía.
La escena de muestra 3D de Unity Hub es un proyecto de plantilla que le ayuda a empezar con HDRP y la iluminación basada físicamente. Este proyecto liviano pesa menos de 100 megabytes y ofrece un buen ejemplo funcional de HDRP que puede cargar rápidamente como referencia.
El pequeño entorno de varias habitaciones muestra tres áreas distintas con diferentes configuraciones de iluminación. La luz direccional que representa el sol tiene una intensidad real de 100.000 lux y cada ubicación corrige la exposición de la cámara para que coincida con el entorno de iluminación.
Utilice las teclas WASD y el mouse para conducir el controlador FPS por el nivel.
- La habitación 1 es una plataforma redonda iluminada por la luz del sol. Las calcomanías agregan suciedad y charcos de agua al piso de concreto.
- La sala 2 agrega rayos volumétricos de luz desde el tragaluz, así como materiales avanzados para el árbol dentro de la vitrina.
- La sala 3 muestra iluminación artificial interior y materiales emisores.
Para verlo más de cerca, consulte esta publicación de blog del artista técnico de Unity, Pierre Yves Donzallaz, que describe la escena de muestra 3D HDRP con mayor detalle.
Más contenido de muestra de HDRP
Es posible que otros proyectos le resulten útiles una vez que haya terminado de explorar la escena de muestra 3D HDRP.
Aunque originalmente no estaba destinado a juegos, el proyecto Auto Showroom muestra un vehículo muy detallado con iluminación realista. Cambie las luces del escenario, la pintura del automóvil, las texturas y el fondo en esta demostración interactiva disponible a través de Unity Hub.
Mientras tanto, la demostración de Spaceship muestra Visual Effect Graph, entre otras características de HDRP, en un entorno de ciencia ficción. Puedes descargarlo desde el repositorio GitHub de Unity o acceder a él en Steam.
Si está utilizando HDRP con realidad virtual, apreciará el VR Alchemist Lab. Este proyecto presenta efectos interactivos en un pequeño laboratorio medieval.
Para aprender a crear contenido cinematográfico o películas animadas, instale nuestra plantilla Cinematic Studio desde Unity Hub. Esta plantilla ilustra cómo configurar e iluminar las tomas de un cortometraje divertido llamado Mich-L, combinando renderizado estilizado y fotorrealista.
Hay algunas configuraciones esenciales en Configuración del proyecto (Editar > Configuración del proyecto), incluidos Gráficos, Configuración global HDRPy Calidad.
Tenga en cuenta que la configuración predeterminada de HDRP ahora se llama Configuración global de HDRP en Unity 2021.2/HDRP 12 y versiones posteriores.
Configuración de gráficos
La configuración del canal de renderizado programable en la parte superior de la imagen hace referencia a un archivo en el disco que almacena todas las configuraciones de HDRP. Puede tener varios activos de canalización por proyecto.
Piense en cada uno como un archivo de configuración independiente. Por ejemplo, puedes usarlos para almacenar configuraciones especializadas para diferentes plataformas de destino (Xbox, PlayStation, etc.), o también pueden representar diferentes niveles de calidad visual que el reproductor puede intercambiar en tiempo de ejecución.
La escena de muestra 3D comienza con varios recursos de canalización en la carpeta Configuración: HDRPAltaCalidad, HDRPLowQuality y HDRPMediumQuality. También hay una carpeta HDRPDefaultResources que contiene un DefaultHDRPAsset.
La Configuración de calidad le permite asociar uno de sus Activos de canalización a un Nivel de calidad predefinido.
Seleccione un nivel de calidad en la parte superior para activar un activo de canalización de renderizado específico desde las opcionesde renderizado . Puede personalizar los valores predeterminados o crear niveles de calidad adicionales, cada uno de ellos combinado con activos de canalización adicionales.
Un nivel de calidad representa un conjunto específico de características visuales activas en el proceso. Por ejemplo, puede crear varios niveles para gráficos dentro de su aplicación. En tiempo de ejecución, sus reproductores pueden elegir el nivel de calidad activo, dependiendo de su hardware.
Vaya a la subsección Calidad/HDRP para editar la configuración de canalizaciónreal. De lo contrario, vaya a la vista Proyecto para seleccionar el activo de canalización y editar su configuración en el Inspector.
Tenga en cuenta que habilitar más funciones en Pipeline Asset consumirá más recursos. En general, optimice su proyecto para utilizar sólo lo que realmente necesita para lograr el efecto deseado. Si no necesita una función en particular, puede desactivarla para ahorrar recursos y mejorar el rendimiento.
A continuación se muestran algunas funciones que puede desactivar si no necesita usarlas:
- En el activo HDRP: Calcomanías, transparencia de baja resolución, cara posterior transparente/paso previo/posterior de profundidad, SSAO, SSR, sombras de contacto, volumétrica, dispersión del subsuelo y distorsiones
- En la Configuración del marco de la cámara (Cámara principal) utilizada para efectos integrados como reflejos o cámaras adicionales utilizadas para efectos personalizados: Refracción, posprocesamiento, posprocesamiento, transmisión, sonda de reflexión, sonda de reflexión plana y prepaso de mosaicos grandes
Lea esta publicación de blog para familiarizarse con las funciones de HDRP para mejorar el rendimiento.
HDRP Global Settings
La sección Configuración global de HDRP , también conocida como Configuración predeterminada de HDRP (antes de la versión 12 de HDRP), determina la configuración básica de su proyecto. Puede anular estas configuraciones en la escena a través de los componentes de Volumen local o global, según la posición de la cámara.
Las configuraciones globales se guardan en su propio activo de canalización separado definido en el campo superior, donde puede configurar opciones predeterminadas de procesamiento y posprocesamiento.
A medida que desarrolla su proyecto, es posible que necesite volver a la configuración global de HDRP para activar o desactivar funciones específicas. Algunas funciones no se procesarán a menos que su casilla de verificación correspondiente en Configuración global esté habilitada.
Asegúrese de habilitar solo las funciones que necesita, ya que pueden tener un impacto negativo en el rendimiento de renderizado y el uso de memoria. Tenga en cuenta que ciertas configuraciones aparecen en Perfiles de volumen, mientras que otras funciones se encuentran en Configuraciones de marco (según el uso).
Mientras se familiariza con el conjunto de funciones de HDRP, utilice el campo de búsqueda superior derecho en Configuración del proyecto. Esto mostrará sólo paneles relevantes con los términos de búsqueda resaltados.
Habilitar una función en la configuración global de HDRP no garantiza que pueda ser renderizada por cualquier cámara en un momento dado. Debe verificar que el activo de canalización de renderizado, con su nivel de calidad especificado en Configuración de proyectos > Calidad, también admita esa característica. Por ejemplo, para garantizar que las cámaras puedan renderizar nubes volumétricas, debe alternarlas en Configuración global HDRP > Configuración de marco > Cámara > Iluminación y en el activo de canalización de renderizado activo, en Iluminación > Volumetría.
Si no está limitado a la CPU, la resolución puede afectar en gran medida el rendimiento. La resolución dinámica reduce la resolución de renderizado y escala el resultado a la resolución de la pantalla de salida. Los filtros que realizan esta mejora han mejorado considerablemente en 2021 LTS, lo que le permite renderizar a una resolución del 70% o menos con una pérdida mínima de calidad.
En Unity 2021 LTS, HDRP ofrece múltiples soluciones con algunas de las últimas tecnologías de Super Sampling:
- NVIDIA DLSS (Deep Learning Super Sampling) para GPU que lo admitan
- AMD FSR (FidelityX Super Resolución) en todas las plataformas
- TAA Upscale (Anti-Aliasing temporal) en todas las plataformas
Puede forzar la escala en el activo HDRP o codificar su propia lógica para ajustar la escala.
Para configurar la resolución dinámica en su proyecto y obtener orientación sobre cómo elegir el mejor algoritmo para sus necesidades, consulte esta página de la documentación.
Al configurar los ajustes HDRP en Pipeline Asset, normalmente comenzará con el modo Lit Shader en Renderizado, donde puede elegir entre Diferido, Adelanteo Ambos. Estos representan rutas de renderizado que puede seleccionar, cada una con una serie específica de operaciones que informan cómo la tubería representará e iluminará la geometría. Vea cómo personalizar su ruta de renderizado arriba.
Para configurar su ruta de renderizado predeterminada, vaya al modo Lit Shader y seleccione Adelante o Diferido. HDRP es flexible y también le permite elegir Ambos. Esta opción le permite usar una ruta de renderizado para la mayoría de los renderizados y luego la anula para cada cámara. Sin embargo, requiere más memoria de GPU, por lo que normalmente es mejor elegir Adelante o Diferido.
Para afectar a todas las cámaras de forma predeterminada, vaya a Configuración predeterminada de HDRP y busque Configuración de marco predeterminada. Su ruta de renderizado se puede aplicar a Cámaras, Reflexiónhorneada o personalizada y Reflexión en tiempo real. En el grupo Renderizado, establezca la ruta de renderizado en el modo Lit Shader.
Para afectar una cámara específica, verifique su Configuración de marco personalizado. Luego, en el grupo Renderizado, anule y cambie la ruta de renderizado del Modo Lit Shader.
En el renderizado directo, la tarjeta gráfica divide la geometría en pantalla en vértices. Esos vértices se dividen en fragmentos o píxeles, que se muestran en la pantalla y crean la imagen final.
Cada objeto pasa, uno a la vez, a la API de gráficos. El renderizado directo tiene un costo por cada luz. Cuantas más luces haya en tu escena, más tiempo llevará el renderizado.
La renderización directa dibuja luces en pasadas separadas. Si tienes varias luces iluminando el mismo GameObject, esto puede crear un sobregiro significativo y ralentizar las cosas cuando hay muchas luces y objetos presentes.
A diferencia del renderizado directo tradicional, HDRP agrega nuevas capacidades, como seleccionar y renderizar varias luces juntas en una sola pasada por material de objeto. Pero sigue siendo un proceso relativamente caro. Si el rendimiento es un problema, es posible que desee utilizar el sombreado diferido.
HDRP también puede aprovechar el sombreado diferido, donde la iluminación no se calcula por objeto. En cambio, el sombreado diferido pospone el renderizado intenso para una etapa posterior y utiliza dos pasadas.
Durante la primera pasada, o la pasada de geometría del G-buffer , Unity renderiza los GameObjects. Este pase recupera varios tipos de propiedades geométricas y las almacena en un conjunto de texturas (por ejemplo, colores difusos y especulares, suavidad de la superficie, oclusión, normales, etc.).
En el segundo paso, o paso de iluminación, Unity renderiza la iluminación de la escena una vez que se completa el G-buffer, posponiendo así el sombreado. La ruta de sombreado diferido itera sobre cada píxel y calcula la información de iluminación en función del búfer en lugar de en los objetos individuales.
Para obtener más información sobre las diferencias técnicas entre las rutas de renderizado, consulte Representación directa y diferida en la documentación de HDRP.