Comprender cómo se representan y manipulan los datos en el editor de materiales es uno de los conceptos esenciales de la creación de materiales en Unreal Engine. Las entradas del nodo de material principal, que definen los atributos físicos de un material, están programadas para aceptar un tipo específico de datos. De forma parecida, muchos de los nodos de expresión de material que se utilizan para construir materiales no se pueden compilar a menos que sus entradas reciban un tipo de datos específico.
Esta página proporciona un resumen de los cuatro tipos de datos disponibles en el editor de materiales y ejemplos de cómo se utilizan con frecuencia.
Tipos de datos float
En gráficos de ordenador, un float es un tipo de datos que almacena un único valor, positivo o negativo. El nombre float es una forma corta de denominar un número con coma flotante (en inglés), lo que significa que el número contiene decimales y no es necesariamente un número entero. Ejemplos de valores float pueden ser 1.0, -0.5 o 2.0.
En última instancia, todos los tipos de datos del editor de materiales son variaciones de float. La diferencia reside en la cantidad de valores que pueden almacenar. Mientras que un float representa un solo número, un float2 almacena dos valores con coma flotante distintos. Por ejemplo: (1.0, 0.5).
La tabla siguiente desglosa los cuatro tipos de datos disponibles en el editor de materiales.
| Tipo de datos | Expresiones de materiales | Estructura de datos | Usos habituales |
|---|---|---|---|
| Float | Constante, parámetro escalar | (r) | Metálico, Rugosidad, operaciones aritméticas |
| Float2 | Constant2Vector | (r, g) | Coordenadas UV o XY, Escala |
| Float3 | Constant3Vector | (r, g, b) | Color (r, g, b) o coordenadas 3D (x, y, z) |
| Float4 | Constant4Vector, parámetro vectorial, texturas | (r, g, b, a) | Color con canal alfa, texturas (r, g, b, a) |
Float
Como se ha descrito anteriormente, un float almacena un único valor con coma flotante. Puede ser positivo o negativo y contiene un punto decimal. Hay dos expresiones de materiales que se pueden utilizar para definir un float.
Expresión de material constante
Un nodo de expresión de material constante almacena un solo valor constante con coma flotante. Puesto que se trata de una constante, este valor no cambia después de compilar el material. La imagen siguiente muestra un nodo constante que almacena el valor 1.0.
Parámetro escalar
Un parámetro escalar también almacena un valor con coma flotante. A diferencia de una constante, un parámetro escalar también se convierte en una variable con nombre que es posible modificar en una instancia del material después de haber compilado el material, o incluso en tiempo de ejecución. La imagen siguiente muestra un parámetro escalar llamado Rugosidad con valor predeterminado de 0.6. Podrías utilizarlo para definir el atributo de rugosidad del material y, con él, proporcionar a los artistas una forma de sobrescribir el valor en una instancia específica del material.
Para obtener más información sobre cómo y dónde utilizar parámetros escalares en lugar de constantes, lee la documentación sobre materiales instanciados.
Ejemplos
Ciertas entradas del nodo de material principal se definen mediante floats. Por ejemplo, las entradas Metálico, Especular y Rugosidad aceptan un valor float entre 0 y 1. Por este motivo, es posible pasar una expresión de material constante o un parámetro escalar directamente al nodo de material principal para definir estos atributos.
Con frecuencia, se utilizan constantes y parámetros escalares para controlar la magnitud de algún efecto. A continuación, se multiplica el parámetro escalar llamado Potencia emisiva por un color sólido y se pasa hacia la entrada Color emisivo. Al cambiar el valor del parámetro Potencia emisiva, la emisión se intensifica o se atenúa.
Float2
Un float2 guarda dos valores numéricos. Por ejemplo: (2.0, 3.0).
En el editor de material, se utiliza la expresión de material Constant2Vector para definir un float2. A continuación, se utiliza Constant2Vector con valores 2.0 y 3.0 en cada uno de sus dos canales.
Constant2Vector
Constant2Vector resulta útil siempre que se desea definir o modificar un atributo que requiere datos en dos canales. En el panel de detalles, los dos valores están etiquetados como R y G, que hacen referencia a los canales rojo y verde de un color RGB, pero esta es solo una posibilidad de uso. Coordenadas (UV, XY) y escala (ancho, alto) son otros atributos que se pueden definir con Constant2Vector.
En el ejemplo siguiente, se añade Constant2Vector a un nodo Coordenadas de textura para modificar la posición de la textura en un plano. En la primera diapositiva, los valores de Constant2Vector son (0, 0), de modo que la posición de la textura permanece sin cambios.

Los valores de Constant2Vector controlan la posición de la textura.
Al cambiar el valor R a 0.5, la textura se desplaza a lo largo del eje horizontal porque se añade a la coordenada U de la textura. Esto hace que la textura se envuelva alrededor de los bordes izquierdo y derecho del plano. Al cambiar el valor G a 0.5, la textura se desplaza a lo largo del eje vertical. El centro de la textura ahora aparece en las cuatro esquinas del plano.
Float3
Un float3 guarda tres valores numéricos. En el editor de materiales, el nodo Constant3Vector define un float3.
Constant3Vector
In Unreal Engine, el color de un píxel se expresa mediante tres valores que representan los canales de color rojo, verde y azul. Por este motivo, uno de los usos habituales de un float3 es definir un color sólido.
Al hacer doble clic en un nodo Constant3Vector, se muestra un selector de colores que permite seleccionar un color con la ruedecilla o la herramienta del gotero. El selector de colores también dispone de campos para introducir valores RGB, HSV o Hex, por si es necesario crear un color específico. También se puede acceder al selector de colores haciendo clic en la muestra de color del panel de detalles.
A segundo caso de uso de un float3 es definir coordenadas (x, y, z). Por ejemplo, la entrada Desplazamiento de posición en el mundo acepta tres valores, que definen cuántas unidades está desplazado el material en las direcciones de los ejes x, y, z en el espacio del mundo.
En las cuatro diapositivas siguientes, los valores de Constant3Vector se cambian a 800. Puedes ver cómo cambia la posición de la esfera: primero, sobre el eje x, después sobre el eje y, y sobre el eje z en la tercera diapositiva.

El desplazamiento de la posición en el mundo utiliza tres valores para desplazar el material a lo largo de los ejes x, y, z.
Parametrizar un Constant3Vector
Es posible parametrizar un Constant3Vector haciendo clic con el botón derecho del ratón en él y seleccionando Convertir en parámetro en el menú contextual. Esto convierte el nodo en un parámetro vectorial. En realidad, el nodo Parámetro vectorial almacena cuatro valores (r, g, b, a), de modo que es un float4.
Sin embargo, cualquier entrada que requiera un float3 utiliza, simplemente, los tres primeros valores y descarta el último. Por ejemplo, la entrada Color de base acepta un float3. Si se conecta un parámetro vectorial a Color de base, este utilizará los canales R, G y B y prescindirá del cuarto (el canal alfa). Puesto que Unreal Engine sabe qué canal debe descartar, se puede utilizar un parámetro vectorial de forma segura para parametrizar un float3 aunque, técnicamente, el nodo sea un float4.
Float4
Un float4 almacena cuatro valores con coma flotante. Por ejemplo: (50.0, 0.0, 100.0, 0.5). Existen dos expresiones de material de uso frecuente para definir un float4.
Constant4Vector
Constant4Vector guarda cuatro valores constantes. En la mayoría de los casos, Constant4Vector se utiliza para representar colores RGBA, es decir, colores con un canal alfa. Igual que sucede con Constant3Vector, es posible hacer doble clic en el nodo o hacer clic en la muestra de color del panel de detalles para acceder al selector de colores.
Parámetro vectorial
Un parámetro vectorial es un float4 parametrizado. Es posible crear un parámetro vectorial directamente desde la paleta. El uso más frecuente de un parámetro vectorial es crear parámetros de color en un material que los artistas puedan sobrescribir fácilmente en instancias del material. Por ejemplo, multiplicar un parámetro vectorial por una textura es una forma de añadir un control del tinte sobre algún aspecto de un material (color de base y emisividad, por ejemplo).
Además de su utilidad en un flujo de trabajo de materiales parametrizado, los parámetros vectoriales presentan ventajas adicionales. A diferencia de todos los ejemplos anteriores de esta página, cada canal de datos individual de un parámetro vectorial es accesible mediante los cinco pines de salida a la derecha del nodo. Tal como se han etiquetado arriba, son los siguientes:
- RGBA - Devuelve todos los valores del float4. En el ejemplo anterior: (0.0, 1.0, 0.5, 0.0).
- R - Devuelve el valor del canal R solamente.
- G - Devuelve el valor del canal G solamente.
- B - Devuelve el valor del canal B solamente.
- A - Devuelve el valor del canal A solamente.
Esto hace hincapié en un aspecto importante de la creación de materiales. En última instancia, la información que fluye por el grafo de un material es solo un conjunto de valores con coma flotante empaquetados y representados de distintas formas. Aunque los canales de un parámetro vectorial estén etiquetados como RGBA en el panel de detalles, esto no significa que el material deba usarlos de este modo.
Más allá de representar colores, es posible utilizar un parámetro vectorial para parametrizar cuatro valores discretos pero relacionados. El material padre Megascans utiliza el nodo de este modo, utilizando un parámetro vectorial para parametrizar el teselado UV y el desplazamiento del material.
En este ejemplo, se han renombrado los canales RGB por Teselado X, Teselado Y, Desplazamiento X y Desplazamiento Y. Puedes renombrar los canales de un parámetro vectorial en el panel de detalles, dentro de Personalización del parámetro > Nombres de canal. Estos nombres son visibles en el editor de instancias de materiales cuando un artista sobrescribe los valores de los parámetros.
Puedes encontrar más información sobre el nodo de parámetro vectorial aquí y más información sobre la parametrización de materiales en estas páginas.
Más información
Los cuatro tipos de datos presentados en esta página son la base de toda la información que circula por un grafo de un material. Es importante comprender que los tipos de datos no son necesariamente inmutables. Por ejemplo, es posible combinar dos floats para formar un float2. De forma parecida, se puede extraer o aislar un solo float procedente de un tipo de datos mayor.
Sigue leyendo sobre la manipulación de tipos de datos y las reglas para efectuar operaciones aritméticas en un grafo de material aquí: Manipulación de datos de materiales y aritmética.