Aunque se puede usar cualquier material aleatorio con un actor de clase Paisaje, el sistema de materiales de Unreal Engine 5 (UE5) proporciona algunos nodos de materiales específicos de los paisajes que pueden ayudar a mejorar las texturas de los paisajes. En este documento, explicamos cómo funcionan estos nodos de materiales y cómo se pueden usar en los materiales del paisaje.
Es posible modificar los materiales para usarlos en un paisaje del mismo modo que se modifican otros materiales, en el editor de materiales.
Pesos y orden de las capas
Los paisajes utilizan la mezcla ponderada en lugar de la mezcla con alfa, de modo que los factores de mezcla de todas las capas en cualquier punto debe sumar 1.0. La mezcla con alfa resulta útil porque no depende del orden, así que se puede pintar cualquier capa en cualquier momento. Además, al utilizar la mezcla con alfa, el peso de la capa de alfa aumenta, mientras que el peso de las demás capas existentes disminuye.
Sin embargo, el inconveniente de usar la mezcla con alfa es que, cuando una capa está pintada al 100 %, el peso de todas las demás capas será del 0 %. Esto se puede observar al utilizar la herramienta Pintar para eliminar una capa que ya está al 100 %. Debido a que las demás capas están al 0 %, la herramienta no dispone de nada con que sustituir la capa al 100 % que estás eliminando, así que parece que la capa no haya cambiado.
Nodos de materiales específicos de los paisajes
Dentro del editor de materiales, hay seis nodos específicos que se pueden usar en un sistema de paisaje. Puedes encontrar todos esos nodos en el menú Paleta, dentro de la categoría Paisaje.
Haz clic en la imagen para verla a tamaño completo.
Nodo de mezcla de capa de paisaje
El nodo LandscapeLayerBlend permite mezclar varias texturas o redes de materiales para poder usarlas como capas de paisaje. LandscapeLayerBlend utiliza una matriz para almacenar información sobre las capas del paisaje. Para añadir capas a esta matriz, selecciona el icono del signo más.
Haz clic en la imagen para verla a tamaño completo.
Al añadir varias capas el nodo LandscapeLayerBlend, se rellenan los nombres de capas en el nodo LandscapeLayerBlend.
Haz clic en la imagen para verla a tamaño completo.
| Número | Propiedad | Descripción |
|---|---|---|
| 1 | Capas | Lista de las capas que el nodo contiene. Para añadir capas, haz clic en el icono del signo más ( |
| 2 | Capas adicionales | Así se ven las capas adicionales cuando están contraídas. |
| 3 | Nombre de la capa | Nombre único asignado a la capa. El Nombre de la capa corresponde al nombre de la capa que se utiliza en el modo Pintar de la ventana de la herramienta de paisajes. |
| 4 | Tipo de mezcla | Puede ser LB_AlphaBlend, LB_HeightBlend o LB_WeightBlend. Consulta Tipos de mezclas de capas en esta página. |
| 5 | Peso de previsualización | Este es el valor de peso de la capa para previsualizar la mezcla en el editor de materiales. |
| 6 | Entrada de capa constante | Sirve para indicar un valor numérico que se utiliza como color si no deseas utilizar una textura. Se utiliza principalmente para depurar una capa si surge algún problema. |
| 7 | Entrada de altura constante | Se utiliza para proporcionar un número como altura si no deseas utilizar una textura. |
La tabla siguiente muestra los detalles de las entradas y salidas del nodo Mezcla de capas.
Haz clic en la imagen para verla a tamaño completo.
| Número | Elemento | Descripción |
|---|---|---|
| 1 | Capa Nombre de la capa | Cada capa añade una entrada para la capa con la que se desee mezclar. Esta entrada solo está disponible después de añadir y nombrar las capas en el panel de detalles. |
| 2 | Altura Nombre de la capa | Aquí se proporciona un mapa de alturas con el que realizar la mezcla. Esta entrada solo es visible en capas cuya propiedad Tipo de mezcla es LB_HeightBlend. |
| 3 | Salida sin etiqueta | Resultado de las capas mezcladas. |
Mezcla de capas
Al utilizar ciertas combinaciones de modos de mezcla de capas, es posible que se generen manchas negras por todo el paisaje, allí donde se encuentran las distintas capas. Este problema es especialmente frecuente cuando se utiliza el modo LB_HeightBlend con varias capas de paisaje. LB_HeightBlend funciona modulando el factor de mezcla, o peso, de la capa utilizando el valor de altura especificado. Cuando hay más de una capa pintada en una zona y todas utilizan LB_HeightBlend, es posible que todas las capas pintadas en una zona concreta tengan el valor de altura 0 a la vez, de modo que el factor de mezcla deseado es 0 en todas las capas.
Puesto que no hay un orden implícito ni explícito, el resultado serán manchas negras, porque no hay ninguna capa que contribuya a aquella zona. La situación es peor cuando se mezcla un mapa Normal, ya que esto da lugar a un valor Normal (0,0,0), que no es válidos y provocará problemas de renderizado con la iluminación. La solución a este problema es utilizar LB_AlphaBlend en una de las capas, como en el ejemplo siguiente.
En la imagen de la izquierda, todas las capas son LB_HeightBlend, lo que hace que algunas zonas aparezcan en color negro. En la imagen de la derecha, se ha modificado la capa "1" para utilizar LB_AlphaBlend, lo que resuelve el problema.
Haz clic en la imagen para verla a tamaño completo.
A continuación se muestra un ejemplo de las propiedades del nodo Mezcla de capas de paisaje para todas las capas mezcladas. Como verás, la capa Tierra tiene el modo de mezcla LB_AlphaBlend, mientras que las demás utilizan LB_HeightBlend. Esto sirve para evitar el problema mencionado anteriormente (que aparecen manchas negras allí donde las capas coinciden).
Haz clic en la imagen para verla a tamaño completo.
Si necesitas eliminar una capa, haz clic en la flecha desplegable a la derecha del número de elemento de la capa para abrir el menú y selecciona Eliminar.
Haz clic en la imagen para verla a tamaño completo.
Nodo de coordenadas de capa de paisaje
] El nodo LandscapeLayerCoords genera coordenadas UV que se pueden utilizar para mapear redes de materiales sobre terrenos de paisaje.
Haz clic en la imagen para verla a tamaño completo.
| Número | Propiedad | Descripción |
|---|---|---|
| 1 | Tipo de mapeado | ELandscapeCoordMappingType que especifica la orientación que se debe utilizar al mapear el material (o la red) encima del paisaje. |
| 2 | CustomUVType | Lugar de mapeado que se debe utilizar sobre el terreno. CustomUVType envía las coordenadas UV para mapear el material sobre el paisaje teniendo en cuenta los valores de definidos para cada propiedad. |
| 3 | Escala de mapeado | Aplica una escala uniforme a las coordenadas UV. |
| 4 | Rotación del mapeado | Aplica la rotación, expresada en grados, a las coordenadas UV. |
| 5 | Desplazamiento del mapeado [U] | Aplica el desplazamiento en la dirección [U] a las coordenadas UV. |
| 6 | Desplazamiento del mapeado [V] | Aplica el desplazamiento en la dirección [V] a las coordenadas UV. |
| 7 | Salida sin etiquetar | Devuelve las coordenadas UV para mapear el material al paisaje sobre la base de los valores de propiedad indicados. |
Nodo de conmutador de capa de paisaje
El nodo Conmutador de capa de paisaje Permite excluir algunas operaciones de materiales cuando una capa específica no contribuye a una región del paisaje. Esto permite optimizar el material eliminando cálculos innecesarios cuando el peso de una capa específica es cero.
Haz clic en la imagen para verla a tamaño completo.
| Número | Propiedad | Descripción |
|---|---|---|
| 1 | Nombre del parámetro | Nombre único que se asigna al parámetro. |
| 2 | Utilizar previsualización | Con esta opción activada, se utiliza la previsualización. |
| 3 | Capa utilizada | Indica si la capa especificada en las propiedades del nodo está en uso en la región actual del paisaje. |
| 4 | Capa no utilizada | Indica si la capa especificada en la zona actual del paisaje no se utiliza y tiene peso cero. |
| 5 | Salida sin etiquetar | Equivale a las entradas Capa utilizada o Capa no utilizada, según si la capa contribuye a la región específica del paisaje o no. |
Nodo de peso de capa de paisaje
La expresión LandscapeLayerWeight permite mezclar redes de materiales en función del peso de la capa asociada obtenido del material del paisaje. El peso de la capa se utiliza como valor de alfa para mezclar las dos redes de entrada.
Haz clic en la imagen para verla a tamaño completo.
| Número | Propiedad | Descripción |
|---|---|---|
| 1 | Nombre del parámetro | Nombre único que se asigna al parámetro. |
| 2 | Peso de previsualización | Peso que se debe utilizar con fines de previsualización en el editor de materiales. |
| 3 | Base constante | Permite especificar el color de base deseado para el paisaje. |
| 4 | Base | Red con la que se desea mezclar la capa. Generalmente, esta es el resultado de cualquier mezcla de capas anterior, pero también puede estar vacía si se trata de la primera capa. |
| 5 | Capa | Red con la que se debe mezclar para crear esta capa. |
| 6 | Salida sin etiqueta | Envía a la salida el resultado de la mezcla entre las entradas Base y Capa sobre la base de los pesos de las capas implicadas. |
Nodo de máscara de visibilidad del paisaje
El nodo LandscapeVisibilityMask elimina las partes visibles del paisaje para poder crear agujeros en el paisaje, por ejemplo, para crear cuevas.
Haz clic en la imagen para verla a tamaño completo.
| Número | Propiedad | Descripción |
|---|---|---|
| 1 | Salida sin etiqueta | Envía a la salida las propiedades de la máscara de visibilidad. |
Asegúrate de que la salida esté conectada al espacio Máscara de opacidad del material y que Modo de mezcla de material esté configurado como Enmascarado. De lo contrario, es posible que el nodo no funcione correctamente.
Haz clic en la imagen para verla a tamaño completo.
Tipos de mezcla de capas de paisaje
El nodo de material Mezcla de capas de un paisaje tiene tres modos de mezcla distintos entre los que elegir. Cada tipo de Mezcla de capas se utiliza para obtener un resultado distinto.
| Tipo de mezcla | Función |
|---|---|
| LB Mezcla con pesos | Utiliza esta opción si tienes capas que proceden de un programa externo, como World Machine, o si quieres poder pintar cualquier capa de forma independiente de las demás sin tener que preocuparte por el orden de las capas. |
| LB Mezcla con alfa | Utiliza esta opción si pintas con detalle y quieres un orden determinado para las capas. Por ejemplo, pintar nieve encima de rocas y hierba las ocultará, pero al borrar la nieve se mostrarán las rocas y la hierba que hay por debajo de ella. |
| LB Mezcla con altura | Funciona del mismo modo que LB_WeightBlend, pero añade detalles en la transición entre capas en función de un mapa de alturas. Esto permite, por ejemplo, que aparezca tierra en los espacios entre rocas en el punto de transición entre capas, en lugar de mostrar una mezcla lisa entre roca y tierra. |
Aquí se muestra un ejemplo de LB Mezcla con altura en acción. Como se puede ver, aparece tierra en los espacios entre rocas en el punto de transición entre capas. Así, se obtiene una transición bien terminada allí donde las capas se encuentran.
Información técnica sobre la mezcla de capas en paisajes
Entre bastidores, estos nodos de capas se comportan como un nodo de Parámetro de conmutador estático, que permite cambiar de utilizar una parte del material a utilizar otra. Cada componente del paisaje tiene su propia MaterialInstanceConstant, creada a partir del material del paisaje principal, aplicado solo a ese componente. Si no se utiliza una capa concreta en un componente específico del paisaje, se descarta el subárbol de nodos conectados con la capa. Esto reduce la complejidad del material en conjunto, ya que permite que el material aplicado al paisaje contenga cualquier número de muestras de texturas, siempre que el número de muestras que se utilizan en un componente específico no supere nunca el número máximo establecido por las especificaciones del modelo del sombreador (16 para SM 3.0).
Esto significa que es posible establecer un material maestro que contenga todas las texturas o redes utilizadas en cualquier parte del paisaje. Este puede terminar siendo una colección muy compleja de redes y, a la vez, mantener los materiales finales aplicados a los componentes del paisaje dentro de los parámetros permitidos por el hardware.
Cualquier red de expresiones de material se puede conectar a las entradas de capas en lugar de una muestra de textura simple. Esto permite lograr efectos más complejos, como transiciones de texturas detalladas a texturas macro mayores en función de la distancia a la cual se visualiza la capa.
Teselación y desplazamiento
Los Multiplicadores de teselación y los canales de Desplazamiento del mundo del material se pueden utilizar junto con los terrenos del paisaje para proporcionar detalles adicionales y deformaciones cuando el paisaje está cerca de la cámara. Estos funcionan exactamente como lo harían con cualquier otro material estándar y es posible utilizar la mezcla de capas junto con estos elementos igual que con Color de base, Normal o cualquier otro canal. El paisaje solo renderizará la teselación de hardware en el nivel de detalle (LOD) mayor, que se atenuará a medida que el paisaje se acerque al segundo LOD. Los LOD siguientes ya no tendrán la teselación activada, lo que mejora de forma notable el rendimiento cuando se activa la teselación para el desplazamiento en el terreno del paisaje.
Estas características están limitadas al uso con DirectX 11 activado. Por este motivo, solo se deben utilizar como efectos de pulido secundarios a menos que tu objetivo sea hardware con DirectX 11 específicamente. Puedes obtener más información sobre cómo activar y utilizar la teselación en un proyecto en la página Multiplicador de teselación.
En la visualización anterior, el LOD mayor (blanco) se ha renderizado con la teselación activada, mientras que los demás LOD (colores) se han renderizado sin ella.
Materiales de paisaje para móvil
Los paisajes móviles ya no están limitados a solo tres capas de paisaje. Aunque tres es un caso optimizado, se admite cualquier número de capas siempre que haya muestreadores de texturas suficientes. La asignación de capas del paisaje ahora utiliza un nodo de material conmutador de nivel de resolución, lo que permite que un material de paisaje de consola o PC también tenga una versión móvil. La imagen siguiente muestra el aspecto del paisaje que se utiliza en las versiones para PC y para consola de Fortnite Battle Royale cuando se utiliza en dispositivos móviles.
Usar la mezcla de capas
La posibilidad de mezclar distintas texturas y redes de materiales en capas de paisaje pintables es la base del texturizado de los terrenos de los paisajes. Para mezclar capas, puedes utilizar varios nodos LandscapeLayerWeight o uno o dos nodos LandscapeLayerBlend en función de si se va a utilizar un mapa Normal o no.
Usar nodos de peso de capa de paisaje
Configurar y utilizar nodos LandscapeLayerWeight es un proceso bastante sencillo que se describirá a continuación.
Todos los nombres de capa deben ser únicos, así que te recomendamos que nombres las capas con un nombre descriptivo que indique lo que la capa contiene. Esto te ayudará a recordar dónde está el contenido de la capa y a navegar por las capas más rápidamente.
-
En el editor de materiales, añade un nodo LandscapeLayerWeight al grafo del material. De forma predeterminada, tendrá el Nombre de parámetro "Ninguno".
Haz clic en la imagen para verla a tamaño completo.
- En el panel de detalles, cambia el Nombre del parámetro por un nombre descriptivo de la capa, como "Roca". Después de introducir un Nombre de parámetro, se actualizará en el propio nodo.
Haz clic en la imagen para verla a tamaño completo.
-
Añade nodos LandscapeLayerWeight adicionales hasta que tengas uno para cada una de las capas que quieras que haya en el material. En este ejemplo, vamos a usar solo dos nodos LandscapeLayerWeight.
-
Añade y conecta Muestras de textura, u otras expresiones de red de materiales, a tus nodos LandscapeLayerWeight.
-
Añade un nodo LandscapeLayerCoords, establece su teselado UV a lo que desees y conéctalo a los nodos Muestra de textura.
-
Arrastra el pin de salida de cada nodo Capa hasta el pin de Base del nodo de la capa siguiente con un conector (dejando el pin de Base del nodo de la primera capa sin conectar).
-
Arrastra desde el pin de salida del nodo Capa final hasta la entrada de Color de base en el nodo Base del material.
Al terminar, deberías tener algo similar al ejemplo siguiente utilizando nodos LandscapeLayerWeight:
Haz clic en la imagen para verla a tamaño completo.
Puedes previsualizar los efectos de distintos pesos en el material cambiando las propiedades Peso de previsualización de los nodos LandscapeLayerWeight.
Usar nodos de mezcla de capas de paisaje
Como alternativa a la mezcla manual de las capas con el nodo LandscapeLayerWeight, el nodo LandscapeLayerBlend mezcla varias capas utilizando la mezcla con alfa o la mezcla con alfa con un desplazamiento basado en la altura. El desplazamiento basado en la altura permite mezclar una capa con otras en función de una entrada de mapa de alturas.
-
En el editor de materiales, añade un nodo LandscapeLayerBlend.
-
En el panel de detalles, junto a Capas, haz clic en el icono del signo más (
) para añadir una capa.Haz clic en la imagen para verla a tamaño completo.
- Expande la capa para ver sus propiedades.
-
Cambia el Nombre de la capa por un nombre descriptivo de la capa, como "Nieve".
Haz clic en la imagen para verla a tamaño completo.
-
Determina si deseas que la capa se mezcle con alfa o por altura y establece Tipo de mezcla de forma acorde.
-
Añade tantas capas adicionales como desees para el material del paisaje. Renómbralas y establece sus Tipos de mezcla de forma acorde.
-
Conecta la salida LandscapeLayerBlend del nodo a la entrada Color de base del nodo de base del material.
-
Añade nodos Muestra de textura y conecta sus salidas principales a las entradas Capa de los nodos LandscapeLayerBlend. Alternativamente, puedes crear una red de materiales más compleja y conectarla a la entrada Capa de Mezcla de capas del paisaje. Para todas las capas mezcladas por altura, conecta la salida de alfa de Muestra de textura a la entrada Altura de LandscapeLayerBlend.
Cuando hayas terminado, la red de materiales del paisaje tendrá el aspecto siguiente:
Haz clic en la imagen para verla a tamaño completo.
Puedes previsualizar los efectos de distintos pesos en el material cambiando las propiedades Peso de previsualización de los nodos LandscapeLayerBlend.
Crear materiales de agujero del paisaje
Crear agujeros en el paisaje se lleva a cabo en modo Gestión, pero solo eliminando componentes enteros del paisaje uno por uno. Para hacerlo, puedes utilizar un material de agujero en el paisaje para enmascarar la visibilidad y las colisiones en una ubicación determinada en el paisaje. Esto está muy bien si quieres hacer algo como una entrada a una cueva en la ladera de una montaña.
Puedes utilizar el mismo material como material del paisaje y como material de agujero del paisaje, pero ten en cuenta que los materiales que utilizan máscaras de opacidad son más costosos en rendimiento que los materiales que no lo hacen. Por este motivo, tienes la opción de crear un material de agujero en el paisaje.
-
Abre el editor de materiales y, en el panel de detalles, establece Modo de mezcla como Enmascarado.
Haz clic en la imagen para verla a tamaño completo.
- A continuación, añade un nodo LandscapeVisibilityMask en el grafo de material y conecta su salida a la entrada Máscara de opacidad.
Haz clic en la imagen para verla a tamaño completo.
-
Después de compilar el material, es hora de asignarlo al paisaje para poder utilizarlo. Esto se puede hacer en la sección Material de agujero del paisaje en el panel de detalles.
Haz clic en la imagen para verla a tamaño completo.
-
A continuación, puedes configurar el resto del material del paisaje como lo harías normalmente y, al finalizar, deberías tener algo similar a lo siguiente.
Haz clic en la imagen para verla a tamaño completo.
Ahora deberías poder enmascarar y desenmascarar la visibilidad del terreno como en el vídeo siguiente.
Para obtener información sobre cómo se utilizan las herramientas para crear un agujero en el paisaje, consulta Usar máscaras de opacidad para crear un agujero.
Asignar materiales a paisajes
Después de crear un material para un paisaje, debes asignar el material a un actor de clase Paisaje en el nivel para usar el material.
-
Busca el material del paisaje que desees utilizar en el explorador de contenido.
-
Selecciona el paisaje, ya sea en el visor o en el Esquema del mundo.
-
En el panel de detalles del editor de niveles correspondiente al paisaje, en la sección Paisaje, junto a Material del paisaje, haz clic en la flecha Asignar (
) para asignar el material seleccionado.Haz clic en la imagen para verla a tamaño completo.
Asignar un material de agujero en el paisaje a un paisaje
Puedes asignar un material distinto para actuar como Material de agujero en el paisaje, con ajustes de opacidad específicos.
Consulta la sección sobre Materiales de agujeros en el paisaje para obtener información sobre los materiales de agujeros. Para obtener más información sobre el enmascarado de opacidad, consulta Usar el enmascarado de opacidad para crear un agujero.
-
Busca el material de agujero en el paisaje que desees utilizar en el explorador de contenido y selecciónalo.
-
Selecciona el paisaje, ya sea en el visor o en el Esquema del mundo
-
Ve al editor de niveles, Detalles > Paisaje > Material de agujero en el paisaje. Selecciona la flecha (
) para asignar el material seleccionado.Haz clic en la imagen para verla a tamaño completo.