Experimenta las nuevas escenas de demostración de terreno de Unity para HDRP y URP

Crear entornos de alta fidelidad para tu juego puede ser una empresa enorme. Por eso introdujimos varias actualizaciones durante la versión 2021.2 TECH Stream, incluidos pinceles para estampado de terrenos nuevos, controles de pintura de materiales refinados, capacidades de creación de instancias de GPU para detalles del terreno e integración SpeedTree, entre otras mejoras en la experiencia de creación de terrenos. Incluso actualizamos el Terrain Sample Asset Pack gratuito para ayudarte a poner en marcha tu desarrollo. Detrás de todo esto, un equipo de artistas técnicos trabajó para crear y optimizar una escena de entorno creíble utilizando el canal de renderizado de alta definición (HDRP) de Unity para PC y consolas de alta gama, y migrándolo al canal de renderizado universal (URP) de Unity para que pudiera llegar a diferentes plataformas. Ahora te ofrecemos una colección de consejos, trucos y prácticas recomendadas para acompañar la nueva escena de demostración Unity Terrain y la escena de demostración HDRP.

Hola a todos. Mi nombre es Xiaoxi Liu y me uní a Unity en 2018 como artista técnico enfocado en mejorar las funciones y flujos de trabajo de artistas en Unity, desde el sistema Terrain hasta Shader Graph. En mi tiempo libre, disfruto de las actividades al aire libre con mi hijo de cuatro años muy activo.

Hola, mi nombre es Barrington Campbell. Me uní a Unity en 2019 como pasante y luego hice la transición a un puesto a tiempo completo como artista técnico en 2020. En Unity, he buscado mejorar el sistema Terrain, especializándome en el desarrollo de herramientas y flujos de trabajo de los usuarios. Fuera del trabajo, disfruto construir mi auto contrarreloj y correr los fines de semana.
Si bien el paquete de herramientas para terrenos se verificó inicialmente en la versión 2021.2 TECH, ahora está disponible para instalar en tu proyecto a través de Package Manager y Worldbuilding. El paquete incluye pinceles artísticos adicionales para pintar terrenos y herramientas útiles para potenciar tus procesos de construcción de mundos.

Ida y vuelta desde DCC
En la fase de preproducción del proyecto Terrain Demo, nuestro equipo de arte técnico redujo varios elementos clave a destacar, priorizando en última instancia el mapa de altura detallado del terreno y la cobertura de follaje denso.
Utilizamos una herramienta procedimental de generación de terrenos llamada Gaea para generar un mapa de altura y un mapa de splatmap de alta resolución, seguido de la caja de herramientas para importar estos mapas en el Editor. Para el mapa de altura del terreno, utilizamos la herramienta Import Heightmap para aplicarlo a un terreno con mosaicos de 4x4 en Unity a 4000 unidades de tamaño. Usando la herramienta Import Splatmap, aplicamos el splatmap al terreno con mosaicos. Este proceso se determinó durante la creación de nuestro proyecto, que proporcionó flujos de trabajo básicos de ida y vuelta desde Gaea hasta Unity Terrain.
Después de la importación inicial a Unity, teníamos una superficie de terreno muy sólida para empezar, pero, con ciertas áreas, queríamos pintar manualmente.
Pintura con sellos de heightmap
El pincel Stamp Terrain es una excelente herramienta para adaptar rápidamente la información de altura del terreno a fin de obtener resultados realistas. Publicamos algunos heightmaps listos para usar en el Terrain Sample Asset Pack, pero también puedes generar tus propios heightmaps a partir de DCC.
Pintura con materiales de la capa de terreno
Como ya sabrás, los materiales del terreno de Unity están construidos con assets de Terrain Layer. El pincel Paint Texture te permite seleccionar y cambiar el material en la vista de escena, mientras que los filtros de máscara y la interfaz de usuario recientemente mejorada del paquete Terrain Tools te permiten generar resultados asombrosos con menos esfuerzo.
Por ejemplo, puedes restringir el área de pintura agregando un filtro de pendiente. Primero, aplica la capa de material herbáceo sobre la superficie lateral del terreno y, luego, usa un filtro de concavidad para restringir la capa de suelo a las curvaturas. Puedes aislar un filtro desactivando los demás o incluso combinar filtros cuando sea necesario.
Hay pinceles de esculpido adicionales en el paquete, como los efectos de erosión y ruido, que también puedes integrar en el flujo de construcción de tu terreno para obtener resultados óptimos.
Desde el lanzamiento de la versión 2021.2, Unity Terrain aprovecha el poder de tu GPU para renderizar enormes cantidades de follaje con la compatibilidad de detalles instanciados. Esto es útil para las áreas de follaje que requieren una cobertura densa, como la hierba y los arbustos.

En la mayoría de las plataformas PC, puedes renderizar millones de detalles instanciados a más de 60 FPS. En la escena de demostración, por ejemplo, hay más de 50 millones de triángulos renderizados en algunos ángulos de visión. Para activar la creación de instancias, ve a la malla Edit Details y marca la casilla Use GPU Instancing.

Sombrado avanzado con detalles instanciados
Los detalles instantáneos te permiten usar materiales personalizados, lo que representa un gran beneficio si trabajas con HDRP o URP. Para obtener la mejor experiencia posible, te recomendamos crear materiales de césped con Shader Graph. Veamos con más detalle TerrainGrass.shadergraph.
Con el soporte de Custom Interpolators, una incorporación reciente a Shader Graph, ahora podemos realizar manipulaciones de vértices en la etapa de vértices con un mejor rendimiento general. En este proyecto, utilizamos el escenario Vertex para las animaciones de viento, así como la apariencia de césped que se desvanece a través del color y la oclusión ambiental, según la distancia de la cámara. Teniendo en cuenta la gran cantidad de instancias para la aleatorización, más la capacidad de agarrar y posicionar objetos de hierba individuales, puedes crear efectos geniales basados en la ubicación en tu shader, como ondas de viento y la mezcla de colores del terreno que está debajo.
Sin embargo, una cosa que vale la pena mencionar es que el componente LOD Group no es compatible con los detalles del terreno, aunque igualmente puedes usar Prefabs para los detalles y ajustar la distancia de eliminación en Shader Graph shader o mediante la configuración Detail Distance en el terreno.
Empoderado por SpeedTree

Naturalmente, los árboles son esenciales para crear entornos creíbles. Las escenas de demostración contienen una variedad de árboles personalizados de SpeedTree, un modelador que te permite crear vegetación de alto rendimiento con generadores procedimentales para casi cualquier proyecto, independientemente de la escala. Con la compatibilidad de la integración de Shader Graph, puedes aprovechar los shaders listos para usar que contienen todas las funciones de SpeedTree en Unity: viento, variación de matiz, renderizado de cartelera y mucho más. Los shaders Shader Graph son personalizables según las instancias de materiales editables, por lo que puedes guardar nuevos shaders dentro de tu proyecto y comenzar a editar libremente. Busca Extract Materials (extraer materiales) en Import Settings (Configuración de importación) para comenzar tu personalización.

Los árboles y los detalles suelen pintarse con el pincel Paint Trees y Paint Details, respectivamente, de manera muy similar a los flujos de trabajo de pintura que probablemente conoces. Puedes crear un pincel personalizado gracias a las API de pinceles disponibles en Terrain Tools. Luego, consulta el módulo de terreno para tu propio proyecto.
Con la compatibilidad de detalles instanciada y la integración SpeedTree, puedes crear follaje de terreno con personalización avanzada de Shader Graph. Hablamos de esto en Siggraph el año pasado y tratamos algunos detalles adicionales que podrían interesarte.

Con HDRP en Unity 2021.2, puedes crear cielos dinámicos y convincentes utilizando el nuevo sistema de nubes volumétricas. En particular, el sistema Physical Sky en HDRP proporciona parámetros estándar para generar una iluminación del cielo físicamente correcta.
Al observar el ambiente diurno que estamos tratando de lograr en la escena, la intensidad del sol se establece en un valor que esperaríamos fuera del efecto atenuante de la atmósfera: 130,000 lux, mientras que la temperatura del color se establece en un valor aproximado como un cuerpo negro a 5,800 K. Con el posprocesamiento, la temperatura de la luz se puede compensar, tal como lo haría una cámara física.
No es recomendable tener césped corto lanzando sombras cuando se coloca en un estilo de alfombra, ya que eso sería costoso en el hilo de renderizado, por no hablar de que no es realista y es menos atractivo visualmente. Por eso, empleamos algunas técnicas para iluminar y sombrear adecuadamente los objetos con detalles del terreno, como Contact Shadows para generar imágenes mucho mejores con menos costo.
Los objetos Terrain Detail, como la hierba y la vegetación baja, comparten la sonda ambiental de la escena para mejorar el rendimiento del renderizado. Dado que estos objetos reciben iluminación no ocluida del cielo, el resultado a menudo puede ser demasiado brillante. Para corregir esto, elegimos usar un volumen separado llamado "Bakeing Sky". Esto nos permitió reducir la exposición del cielo que se utiliza para generar la sonda ambiental, reduciendo la intensidad de iluminación del césped sin modificar la apariencia visual del cielo en la escena.
Nuestro objetivo ha sido demostrar Terrain en ambos canales de renderizado codificables, lo que resultó ser una gran oportunidad de aprendizaje para todo el equipo.
Como hemos demostrado, los assets de TerrenoData se pueden compartir entre proyectos HDRP y URP. Comenzamos construyendo el terreno en el proyecto HDRP e introdujimos los assets de TerrainData en el proyecto URP después de la fase de massout de materiales y follaje. Al convertir los mosaicos de terreno en un prefab, aceleramos el proceso de integración al URP.
Si bien la escala y las resoluciones del terreno comparten los mismos ajustes para ambos proyectos, elegimos el modo de mezcla de materiales basado en la altura en HDRP y el modo de mezcla alfa predeterminado en URP para obtener una fidelidad visual óptima. Ten en cuenta que HDRP permite combinar hasta ocho capas de terreno.
Diseñamos la iluminación y el posprocesamiento en ambos proyectos para maximizar las últimas funciones de renderizado disponibles. En el proyecto HDRP, configuramos las nubes volumétricas y el cielo procedimental como se mencionó anteriormente. Luego, integramos el cielo procedimental en texturas para utilizarlo como cielo HDRI en el proyecto URP.
La niebla se maneja de manera diferente en cada caso. Utilizamos la niebla volumétrica para poca niebla alrededor del lago en HDRP, pero hicimos efectos de partículas personalizados a partir de Visual Effect Graph en URP.
Este es un resumen de las características que utilizamos para comparar:

El rendimiento es crucial para las experiencias interactivas 3D en tiempo real. En este proyecto, utilizamos varios enfoques para mejorarlo. El asset del canal de renderizado disponible en HDRP y URP te permite crear ajustes personalizados para múltiples plataformas. Tomando como ejemplo la escena de URP Terrain, creamos assets de alta calidad y baja calidad, en los que los mapas de sombras de alta resolución y las funciones HDR solo se eligen para la versión de alta calidad. De esta manera, puedes configurar fácilmente los ajustes para cada plataforma de destino a través de los ajustes de calidad en la ventana Project Settings. De hecho, puedes cambiar y obtener una vista previa de varios ajustes de tu escena de trabajo directamente en el Editor. Solo cambia el asset del canal de renderizado desde los ajustes de gráficos.

Además de la configuración de Project Level para mejorar el rendimiento, hicimos algunas optimizaciones de contenido en Terrain. En la escena HDRP Terrain, por ejemplo, redujimos la distancia de resolución de los mosaicos exteriores del terreno. Sin embargo, solo debes realizar este cambio de resolución una vez que se complete el proceso de pintura del terreno. De lo contrario, pintar en mosaicos vecinos puede generar inconsistencias debido a la diferencia de resolución.
Los detalles densos son los delitos de rendimiento más comunes en las plataformas de gama baja. Es vital mantener el recuento de vértices de malla bajo. En la escena HDRP, establecimos la densidad de detalles en 0.75, con una distancia de eliminación más cercana de 145 metros en los mosaicos del terreno central. Puedes intentar aumentar o reducir los parámetros de densidad y distancia de eliminación para ver qué funciona bien en conjunto. También puedes modificar las distancias LOD en los árboles para que rendericen LOD y Billboard antes, con una ganancia razonable.
Si usas URP y creas para plataformas que no admiten instancias de GPU o tienen un ancho de banda de hardware muy limitado, puedes elegir el modo Vertex Lit para renderizar los detalles del terreno. Pero, a diferencia de los detalles instanciados, este modo no admite sombras, renderizado a doble cara ni recortes alfa.
¿Quieres obtener más información? Para obtener consejos y trucos adicionales sobre optimización del rendimiento, consulta esta entrada del blog y nuestros videos Unite Now.
Para acceder a las nuevas escenas de demostración de terreno de Unity para HDRP y URP, ve a la Asset Store e impórtalas directamente en tu proyecto Unity 2021.2. Cuando hayas tenido la oportunidad de explorar las escenas al máximo, cuéntanos tu opinión en los foros de Worldbuilding.
Para obtener más información sobre lo que está por llegar, visita la hoja de ruta Unity.
Por último, el equipo de arte técnico de Unity está contratando. Puedes consultar las posiciones abiertas en nuestro sitio web. ¡Esperamos conocerte!
