¿Qué estás buscando?
E-Book

Cómo trasladar su proyecto Built-in Render Pipeline al Universal Render Pipeline (URP)

Jul 31, 2024|12 minutos
Fantasy Kingdom - Made with Unity, Assets by Synty Studios
Esta página se ha traducido automáticamente. Para ver la versión original para comprobar su exactitud y como fuente confiable

El Universal Render Pipeline (URP) es el pipeline de renderizado por defecto en Unity 6. En esta guía, le explicaremos por qué estamos convirtiendo URP en la opción predeterminada, cubriremos las características y ventajas clave de esta Scriptable Render Pipeline (SRP), compartiremos ejemplos de estudios que han trasladado sus proyectos a URP y le explicaremos paso a paso cómo puede hacer lo mismo con los suyos.

Si desea profundizar más en el PRU, consulte el libro electrónico completo, Introducción al PRU para creadores avanzados.

Evolución del renderizado: De Built-in Render Pipeline a Scriptable Render Pipelines

El alcance de la plataforma es uno de los mayores puntos fuertes de Unity. Lo ideal para casi todos los estudios de juegos es crear un juego una vez y desplegarlo de forma eficiente en cualquier gama de plataformas que elijan, desde los PC de gama alta hasta los móviles de gama baja.

La tubería de renderizado incorporada fue desarrollada para ser una solución llave en mano para todas las plataformas soportadas por Unity. Ofrece una mezcla de funciones gráficas y es cómodo de utilizar con rutas de renderizado hacia delante y diferidas.

Sin embargo, a medida que Unity continúa añadiendo soporte para más plataformas, hemos percibido las siguientes limitaciones en la tubería de renderizado incorporada:

  • La mayor parte del código está escrito en C++ y no puede modificarse, lo que lo convierte en un sistema de caja negra.
  • El flujo de renderizado y los pases de renderizado están preestructurados.
  • El algoritmo de renderizado está codificado.
  • La personalización sin restricciones dificulta la consecución de un buen rendimiento en todas las plataformas.
  • Expone retrollamadas en el código de renderizado que activan puntos de sincronización en el pipeline. Esas devoluciones de llamada evitan las optimizaciones de renderizado multihilo, permitiendo cambios para la inyección de estado en cualquier punto del fotograma de forma dinámica mediante una llamada a C#.
  • Es difícil almacenar en caché los datos para gestionar el estado de persistencia de la inyección de usuario.

La solución: Pipelines de renderizado programables

Tanto el conducto de renderizado de alta definición (HDRP) como el URP son conductos de renderizado programables (SRP). Los SRP de Unity se desarrollaron para soportar un flujo de trabajo multiplataforma eficiente proporcionando:

  • Escalado inteligente y fiable para el máximo número de plataformas de hardware, desde dispositivos de gama alta a baja
  • La posibilidad de personalizar los procesos de renderizado utilizando C#, no C++, lo que significa que no es necesario compilar un nuevo ejecutable para cada cambio.
  • Flexibilidad para apoyar la evolución de la arquitectura
  • Capacidad para crear gráficos nítidos que rindan en muchas plataformas

La imagen siguiente ilustra el funcionamiento de los PRS. Utilizan C# para controlar y personalizar los pases de renderizado y el control de renderizado, así como los sombreadores HLSL que pueden crearse con herramientas aptas para artistas como Shader Graph. Los sombreadores le dan acceso incluso a la API de nivel inferior y a las abstracciones de la capa del motor.

El nuevo modelo gráfico programable para los Scriptable Render Pipelines
El nuevo modelo gráfico programable para los Scriptable Render Pipelines

Un desarrollador avanzado puede crear un nuevo SRP desde cero o modificar el URP o el HDRP. La pila de gráficos es de código abierto y está disponible para su uso en GitHub.

Aunque ambos SRP ofrecen ventajas únicas, el URP está diseñado para un alcance máximo de la plataforma, por lo que podrá llevar gráficos de gran aspecto a cualquier parte. Echemos un vistazo más de cerca.

Muestras URP de Unity, Cosecha Feliz, El Oasis y Partida de Cazagemas
Proyectos de muestra URP recientes: Cosecha feliz / El jardín / Partida Cazagemas

6 razones para trasladar su proyecto Unity a URP

  1. El PRU es accesible a una amplia gama de niveles de destreza.

    La URP es configurable tanto por los artistas como por los técnicos, lo que proporciona más flexibilidad para la creación de prototipos y el perfeccionamiento de las técnicas de renderizado para la producción de juegos completos.

  2. URP es extensible y personalizable.

    URP le permite modificar las capacidades existentes y ampliar el pipeline con otras nuevas, lo que lo convierte en una opción sólida para usuarios avanzados, incluidos los creadores de paquetes de la Tienda de Activos y de terceros, desarrolladores experimentados y equipos profesionales.

    Mientras que la API de renderizado de bajo nivel está escrita en C++ por motivos de rendimiento, un desarrollador de URP puede escribir un sencillo script en C# para que sea llamado durante el canal de renderizado, lo que permite una personalización de alto nivel sin sacrificar el rendimiento.

  3. URP ofrece múltiples opciones de renderizado.

    URP proporciona un renderizador universal que admite las rutas de renderizado Forward, Forward+ y Deferred, así como un renderizador 2D.

    Puede ampliar estos renderizadores con funciones adicionales y pases de renderizado con script.

    La función Renderizar objetos puede utilizarse para renderizar objetos de una determinada máscara de capa en diferentes eventos de la canalización de renderizado. También permite anular el material y otros estados de renderizado al renderizar esos objetos, lo que hace posible personalizar el renderizado sin código.

    URP puede ampliarse con renderizadores personalizados para adaptarse a necesidades específicas. Unity 6 introduce Gráfico de renderizado,una herramienta que le permite acceder y manipular los diversos búferes utilizados para renderizar un fotograma, y utilizando el flujo de trabajo de las características del renderizador significa que esto se puede añadir en cualquier etapa de la tubería de render..

  4. URP mejora el desarrollo de juegos 2D.

    La URP ofrece un rendimiento y una flexibilidad optimizados, por lo que es ideal tanto para plataformas móviles como de gama alta. Admite efectos avanzados de iluminación, sombras y posprocesamiento, mejorando la calidad visual de los juegos 2D sin comprometer el rendimiento.

    Además, los ajustes de renderizado personalizables y las capacidades de sombreado de URP le permiten ajustar con precisión la apariencia de sus juegos para conseguir un aspecto pulido y profesional. Esto convierte a URP en una valiosa herramienta para crear juegos 2D visualmente atractivos y de funcionamiento fluido.

  5. URP es compatible con la última tecnología para artistas.

    URP es compatible con las últimas herramientas para artistas, como Shader Graph, VFX Graph y el depurador de renderizado.

  6. Puede obtener un mejor rendimiento con URP.

    URP se ha construido pensando en el rendimiento y cuenta con numerosas herramientas para lograr un equilibrio entre fidelidad y velocidad de fotogramas en una amplia gama de dispositivos.

    - El URP evalúa la iluminación en tiempo real de forma muy eficaz. En el renderizado Forward, evalúa toda la iluminación en una sola pasada. Forward+ mejora el renderizado Forward estándar al eliminar las luces espacialmente en lugar de por objeto. Esto aumenta el número total de luces que pueden utilizarse para renderizar un fotograma. En el renderizado diferido, es compatible con la API Native RenderPass, lo que permite combinar los pases de búfer G y de iluminación en un único pase de renderizado.

    - URP hace un uso más eficiente de la memoria de los azulejos en los dispositivos móviles, lo que se traduce en un menor consumo de energía, una mayor duración de la batería y, por tanto, la posibilidad de sesiones de juego más largas.

    - URP viene con una pila de post-procesamiento integrada que permite un mejor rendimiento en comparación con el Render Pipeline incorporado. Utilizando el marco Volume, puede crear efectos de posprocesamiento que dependan de la posición de la cámara sin necesidad de escribir ningún código.

    - La vista previa de Unity 6 introduce diversas actualizaciones de la URP, como mejoras en la CPU y la GPU al dibujar mallas; el SRP Batcher, que garantiza menos llamadas de dibujo y mejoras en el manejo de la profundidad; y el GPU Resident Drawer y el GPU Occlusion Culling, que pueden reducir significativamente las llamadas de dibujo de algunas escenas.

    Mientras que la mayoría de los proyectos Unity se construyen ahora sobre URP o HDRP, el Built-in Render Pipeline sigue estando disponible en Unity 6.

3 estudios que trasladaron sus proyectos de Built-in Render Pipeline a URP

Kluge Interactive - Jinetes sintetizadores

Kluge Interactive lanzó su juego de ritmo inmersivo Synth Riders en Steam VR y Meta Quest en 2019. Desde entonces, ha sido portado a numerosos dispositivos, incluido el Apple Vision Pro. Mantenerse al día con la última tecnología ha sido esencial para ayudar al estudio a llegar a más y más jugadores en las plataformas de VR.

"Los últimos 12 a 18 meses de desarrollo del juego han consistido en saldar la deuda técnica y acercar nuestros conjuntos de herramientas al 2022 LTS", explica AnnMarie Wirrel Bartholomaeus, productora técnica de Kluge Interactive. "Ya hemos pasado del canal de renderizado incorporado al canal de renderizado universal (URP) y hemos cambiado a un backend OpenXR. Eso nos ha ayudado a situarnos en una posición técnica mucho mejor para trabajar con las nuevas tecnologías."

Leer el caso de estudio completo

Subcult Joint - Cortador de galletas

Subcult Joint's Cookie Cutter es un metroidvania beat-em-up de alto octanaje disponible en PC y consolas. Todos los activos del juego están dibujados a mano y animados con técnicas tradicionales. Para añadir profundidad a estos impresionantes personajes y entornos, Subcult Joint necesitaba la configuración de iluminación perfecta, una que pudiera optimizarse y mantener su rendimiento en todas las plataformas.

Al cambiar a URP y actualizar el proyecto a la última versión de Unity, Subcult Joint desbloqueó todo el potencial de Cookie Cutter. Han añadido más de 10.000 luces 2D y las han optimizado utilizando el Memory Profiler actualizado. Y la última versión de Sprite Atlases les permitió enviar cientos de animaciones dibujadas a mano a diferentes plataformas de destino con mayor facilidad y eficacia.

"Cada luz del juego ilumina nuestros sprites en tiempo real, creando una sensación de densidad y cohesión entre los personajes, las animaciones y los entornos", afirma el fundador de Subcult Joint, Stefano Guglielmana. "En los lugares oscuros, los personajes están a la sombra, y bañados de luz cuando se exponen a las saturadas y contaminadas claraboyas de las zonas exteriores. Me encantan estos detalles".

Leer el caso de estudio completo

more8bit - Espada Desolada DX

El desarrollador en solitario Luis Moreno Jiménez, también conocido como more8bit, lanzó originalmente su Soulslike de 8 bits Bleak Sword en Apple Arcade en 2019. Tras el éxito del juego, los editores Devolver Digital sugirieron a more8bit que llevara el juego a PC y consolas para llegar a aún más jugadores. more8bit aprovechó la oportunidad para ampliar el concepto original de Bleak Sword, en lugar de recrear un calco de la versión para móviles.

Bleak Sword DXevocan los juegos de arcade retro. Entre los efectos de postprocesado se incluyen la floración de la luz con una textura sucia, la curvatura de la pantalla, filtros tipo VHS, efectos de profundidad de campo y mucho más. Para Luis, el mayor reto era conservar el sabor visual de Bleak Swordpero mejorando los gráficos de DXpara aprovechar la potencia de procesamiento adicional. Creó la mayor parte de los VFX utilizando el Built-in Render Pipeline y el Shader Graph de Unity antes de optimizarlos en URP.

"El paso de Built-in a URP fue realmente suave. Sólo me llevó un fin de semana, y luego una semana arreglar pequeños problemas", dice more8bit.

Leer el caso de estudio completo

Cómo añadir URP a un proyecto Built-in Render Pipeline existente

En esta sección, le mostraremos cómo convertir un proyecto existente que utiliza el Canal de renderizado incorporado a URP.

Importante: Asegúrese de hacer una copia de seguridad de su proyecto utilizando el control de código fuente antes de seguir los pasos de esta sección. Este proceso convertirá los activos, y Unity no proporciona una opción de deshacer. Si utiliza el control de fuentes, podrá volver a versiones anteriores de los activos en caso necesario.

Si está actualizando un proyecto existente de canalización de renderizado incorporado, tendrá que añadir el paquete URP a su proyecto.

Vaya a Ventana > Package Manager, y haga clic en el desplegable Paquetes para añadir URP a su proyecto. Asegúrese de seleccionar el Registro de Unity, seguido de Universal RP. Haga clic en Descargar en la esquina inferior derecha de la ventana si el paquete URP aún no está instalado en su ordenador de desarrollo. A continuación, haga clic en Instalar una vez que se haya descargado.

Instalación de URP a través del Package Manager
Instalación de URP a través del Package Manager

Para crear un activo URP, haga clic con el botón derecho del ratón en la ventana del proyecto y seleccione Crear > Renderizado > Activo URP (con Renderizador Universal). Nombre el activo.

Creación de un activo URP
Creación de un activo URP

Recuerde: Si crea un nuevo proyecto utilizando las plantillas del conducto de renderizado universal o 3D (URP), estos activos URP ya estarán disponibles en el proyecto. En lugar de crear un único Activo URP, URP utiliza dos archivos, cada uno con una extensión de Activo.

Dos activos en URP, uno para los ajustes URP y otro para los datos del renderizador
Dos activos en URP, uno para los ajustes URP y otro para los datos del renderizador

Uno se llama UniversalRP_Renderer,un Activo de Datos de Renderizador que puede utilizar para filtrar las capas sobre las que trabaja el renderizador e interceptar el conducto de renderizado para personalizar cómo se renderiza la escena. De este modo, podrá facilitar la creación de efectos de alta calidad.

Además, el UniversalRP_Renderer controla la lógica de renderizado de alto nivel y los pases para URP. Admite trayectorias hacia delante y diferidas, así como un renderizador 2Dque permite funciones como luces 2D, sombras 2D y estilos de mezcla de luces. Incluso puede ampliar URP para crear sus propios renderizadores.

El Inspector para el Activo de Datos UniversalRP_Renderer
El Inspector para el Activo de Datos UniversalRP_Renderer

El otro Activo URP sirve para controlar los ajustes de Calidad, Iluminación, Sombras y Postprocesado. Puede utilizar diferentes Activos URP para controlar los ajustes de calidad.

Este activo de configuración está vinculado al activo de datos del renderizador a través de la lista de renderizadores. Cuando cree un nuevo activo URP, el activo de configuración tendrá una lista de renderizadores que contendrá un único elemento: el activo de datos del renderizador creado al mismo tiempo, establecido como predeterminado. Puede añadir activos de datos de renderizador alternativos a esta lista.

El renderizador predeterminado se utiliza para todas las cámaras, incluida la vista de escena. Una cámara puede anular el renderizador predeterminado seleccionando otro de la Lista de renderizadores. Esto puede hacerse utilizando un script, según sea necesario.

Un activo URP en el Inspector
Un activo URP en el Inspector

A pesar de seguir estos pasos para crear un Activo URP, una escena abierta en la vista Escena o Juego seguirá utilizando el Canal de renderizado incorporado. Debe completar un último paso para realizar el cambio a URP: Vaya a Edición > Configuración del proyecto y abra el panel Gráficos. Haga clic en el pequeño punto situado junto a Ninguno (Render Pipeline Asset). En el panel abierto, seleccione UniversalRP.

Aparecerá un mensaje de advertencia sobre el cambio, pero puede pulsar Continuar. Dado que aún no hay contenido en su proyecto, el cambio del canal de renderizado será casi instantáneo. Ya está listo para utilizar el URP.

Conversión de las escenas de un proyecto existente

Después de completar los pasos anteriores, comprobará que sus bellas escenas se tiñen de repente de color magenta. Esto se debe a que los sombreadores utilizados por los materiales en un proyecto Built-in Render Pipeline no son compatibles con URP. Afortunadamente, existe un método para devolver a sus escenas su calidad original.

Los materiales de una escena aparecen en magenta porque sus sombreadores basados en Built-in Render Pipeline deben convertirse para su uso en URP.
Los materiales de una escena aparecen en magenta porque sus sombreadores basados en Built-in Render Pipeline deben convertirse para su uso en URP.

Vaya a Ventana > Renderizado > Convertidor del conducto de renderizado. Elija Convertir incorporado a 2D (URP) para un proyecto 2D, o Incorporado a URP para un proyecto 3D. Suponiendo que su proyecto sea 3D, tendrá que seleccionar los convertidores adecuados:

  • Ajustes de renderizado: Seleccione esta opción para crear varios activos de configuración del conducto de renderizado que se ajusten lo más posible a los ajustes de calidad del conducto de renderizado incorporado. Esto le permite probar diferentes niveles de calidad de forma más eficaz.
  • Mejora del material: Utilícelo para convertir materiales del canal de renderizado incorporado al URP.
  • Conversor de clips de animación: Convierte clips de animación. Se ejecuta una vez que finaliza el convertidor de actualización de material.
  • Conversor de material de sólo lectura: Esto convierte los materiales preconstruidos y de sólo lectura incluidos en un proyecto Unity. Indexa el proyecto y crea el archivo temporal .index. Tenga en cuenta que puede llevar un tiempo considerable.

Conversión de sombreadores personalizados

Los sombreadores personalizados no se convierten con el convertidor de actualización de materiales. El uso de Shader Graph suele ser la forma más rápida de actualizar un sombreador personalizado a URP.

Existen varios sombreadores URP diferentes, entre los que se incluyen:

  • Tubería de renderizado universal/Lit: Este sombreador de renderizado basado en la física (PBR), similar al sombreador estándar incorporado, puede utilizarse para representar la mayoría de los materiales de la vida real. Admite todas las funciones de los sombreadores estándar con flujos de trabajo metálicos y especulares.
  • Tubería de renderizado universal/Simple Lit: Éste utiliza un modelo Blinn-Phong y es adecuado para dispositivos móviles de gama baja o juegos que no utilizan flujos de trabajo PBR.
  • Tubería de enlucido universal/lit. horneada Utilice este sombreador para juegos estilizados o aplicaciones que sólo requieran iluminación bakeada mediante lightmaps, sondas de luz y los volúmenes de sonda adaptativos de Unity 6. Este sombreador no utiliza el sombreado basado en la física y no tiene iluminación en tiempo real, por lo que todas las palabras clave y variantes del sombreador relevantes para el tiempo real se eliminan del código del sombreador, lo que hace que su cálculo sea más rápido.
  • Tubería de renderizado universal/Complex Lit: El sombreador de iluminación complejo contiene toda la funcionalidad del sombreador de iluminación y añade funciones avanzadas de material. Algunas funciones de este sombreador podrían consumir muchos más recursos y requerir hardware Unity Shader Model 4.5.
  • Tubería Universal de Renderizado/Unlit: Se trata de un sombreador de alto rendimiento en la GPU que no utiliza ecuaciones de iluminación.
  • Render Universal Tubería/Terreno/Lit: Es adecuado para utilizarlo con el paquete Terrain Tools.
  • Tubería de renderizado universal/Partículas/Lit: Este sombreador de partículas utiliza un modelo de iluminación PBR.
  • Tubería de renderizado universal/Partículas/Sin iluminación: Este sombreador de partículas sin iluminación es ligero en la GPU.

Aunque Simple Lit sustituye a muchos sombreadores heredados o móviles, el rendimiento no es el mismo. Los sombreadores heredados/móviles sólo evalúan parcialmente la iluminación, mientras que Simple Lit considera todas las luces tal y como se definen en el activo URP.

Consulte esta tabla en nuestra documentación URP para ver cómo se asigna cada sombreador URP a su equivalente Built-in Render Pipeline.

Una vez que haya seleccionado uno o varios de los conversores anteriores, haga clic en Inicializar conversores o en Inicializar y convertir. Sea cual sea la opción que elija, el proyecto se escaneará y los activos que necesiten conversión se añadirán a cada uno de los paneles de conversión.

Si elige Inicializar conversores, puede limitar las conversiones deseleccionando los elementos mediante la casilla de verificación prevista para cada uno. En este punto, haga clic en Convertir activos para iniciar el proceso de conversión.

Si elige Inicializar y convertir, la conversión se inicia automáticamente después de inicializar los convertidores. Una vez completado, es posible que se le pida que vuelva a abrir la escena que está activa en el Editor.

El convertidor del conducto de renderizado
El convertidor del conducto de renderizado

Obtenga el libro electrónico completo

Aprenda Universal Render Pipeline (URP) para creadores avanzados de Unity
Aprenda el conducto de renderizado universal (URP) para creadores avanzados de Unity (edición 2022 LTS)

Saque el máximo partido a URP con nuestra completa guía de 140 páginas, Introducción al Universal Render Pipeline para creadores avanzados de Unity. Escrito por el experto en Unity Nik Lever, este manual cubre las mejores prácticas para crear gráficos escalables en Unity. Entre los aspectos más destacados se incluyen:

  • Ajustes y convertidores URP
  • Comparación de pipelines de renderizado y rutas de renderizado
  • Iluminación en URP
  • Sombreadores y pipeline callbacks
  • Post Processing
  • Consejos de rendimiento y optimización y mucho más

Estas actualizaciones están presentes en casi todas las secciones de esta última edición de la guía, por lo que puede confiar en que se ajustará a su experiencia de uso de URP en Unity 2022 LTS con la mayor precisión posible .

Cree su juego, a su manera

Consiga un mayor control sobre el aspecto de su juego a la vez que maximiza el rendimiento de renderizado con URP. Este SRP será más potente que nunca cuando se lance Unity 6 a finales de este año. Cree escenas ricas en detalles y escale fotogramas de baja resolución sin perder fidelidad visual, todo ello minimizando la necesidad de optimización manual en sus plataformas de destino.

Empiece a utilizar Unity 6 Preview

Cómo trasladar su proyecto Built-in Render Pipeline al Universal Render Pipeline (URP)

Aprenda a actualizar su proyecto Unity Built-In Render Pipeline al Universal Render Pipeline, y vea cómo 3 estudios llegaron a más plataformas pasándose al URP.