Este documento está diseñado para proporcionar las pautas y mejores prácticas para trabajar dentro del sistema de materiales basados en la física de Unreal Engine. Se asume que tienes alguna familiaridad con el proceso de creación de materiales en Unreal. Si no tienes ninguna experiencia con los materiales en Unreal, te recomendamos comenzar con la página de conceptos básicos sobre materiales.
Esta página se centra solo en los atributos de los materiales que están relacionados directamente con el flujo de trabajo de sombreado basado en la física. Para ver con más detalle todos las entradas en el nodo del material principal, consulta la página Entradas de materiales.
¿Qué significa "basado en la física"?
La renderización basada en la física (PBR) significa que las superficies se aproximan a la manera en que la luz se comporta en el mundo real, en contraste con la manera en que nosotros pensamos intuitivamente que debería hacerlo. Los materiales que se adhieren a los principios de la PBR son más exactos y, por lo general, tienen un aspecto más natural que un flujo de trabajo de sombreado que depende por completo de la intuición del artista para establecer los parámetros.
Los materiales basados en la física funcionan igualmente bien en todos los entornos de iluminación. Además, los valores de los materiales pueden ser menos complejos e interdependientes, lo que resulta en un flujo de trabajo más sencillo para la creación de materiales. Estos beneficios también son aplicables incluso a la renderización no fotorrealista, como se evidencia en las películas de Pixar [4] y Disney [3].
Para echarle un vistazo técnico más profundo al modelo de sombreado y el material basado en la física de Unreal Engine, consulta esta presentación de SIGGRAPH 2.
Atributos del material PBR
Estos son los atributos de material que están directamente relacionados con el aspecto basado en la física de los materiales de Unreal.
Todas estas entradas están diseñadas para aceptar valores entre 0 y 1. Es en el caso del color base, significa una muestra de color o textura con valores RGB que caen entre 0 y 1.
Los valores basados en la física se pueden medir a partir de los materiales del mundo real. Abajo se dan algunos ejemplos.
Color base
El color base define el color general del material. La entrada "Color base" acepta un valor de Vector3 (RGB) donde cada canal se fija automáticamente entre 0 y 1.
Si se toma del mundo real, es el color cuando se fotografía usando un filtro polarizador (la polarización elimina el efecto especular de los materiales no metálicos cuando se alinean).
Valores del color base medidos para elementos no metálicos (solo intensidad):
| Material | Intensidad de color base |
|---|---|
| Carbón | 0.02 |
| Asfalto fresco | 0.02 |
| Asfalto desgastado | 0.08 |
| Tierra pura | 0.13 |
| Césped verde | 0.21 |
| Arena de desierto | 0.36 |
| Concreto fresco | 0.51 |
| Hielo oceánico | 0.56 |
| Nieve fresca | 0.81 |
Colores base medidos para metales:
| Material | Color base (R, G, B) |
|---|---|
| Hierro | (0.560, 0.570, 0.580) |
| Plata | (0.972, 0.960, 0.915) |
| Aluminio | (0.913, 0.921, 0.925) |
| Oro | (1.000, 0.766, 0.336) |
| Cobre | (0.955, 0.637, 0.538) |
| Cromo | (0.550, 0.556, 0.554) |
| Níquel | (0.660, 0.609, 0.526) |
| Titanio | (0.542, 0.497, 0.449) |
| Cobalto | (0.662, 0.655, 0.634) |
| Platino | (0.672, 0.637, 0.585) |
Rugosidad
La entrada "Rugosidad" controla cuán rugosa o lisa es la superficie de un material. Controla cuán nítidos o borrosos se ven los reflejos sobre el material.
Los materiales rugosos dispersan la luz reflejada en más direcciones que los materiales lisos, lo que resulta en reflejos difusos y, a veces, sutiles. Las superficies lisas reflejan la luz de manera más uniforme, lo cual resulta en reflejos claros y enfocados o reflejos especulares.
- Una rugosidad de 0 (liso) resultará en un reflejo de espejo.
- Una rugosidad de 1 (rugoso) resultará en una superficie difusa o mate.

Valores de rugosidad de 0 a 1. Superficie no metálica, fondo metálico.

Valores de rugosidad de 0 a 1.
Mapeo de rugosidad
La rugosidad frecuentemente se mapea sobre los objetos usando una textura de escala de grises para añadirle variedad física a una superficie. Las áreas oscuras en un mapa de rugosidad aparecen espejadas sobre el material, mientras que las áreas claras son rugosas y aparecen con menos reflexión.
El video de abajo muestra un valor de rugosidad que aumenta de 0 a 1, con una textura perlin que controla la distribución de los valores de luz (rugoso) y oscuridad (liso). En 0, la vista previa del material es completamente espejada. En 1, el material es perfectamente mate. Los valores intermedios son más interesantes, ya que partes de la superficie aparecen lisas y otras partes rugosas.
Los mapas de rugosidad se usan frecuentemente para añadir rayones, manchas y otras imperfecciones a materiales como el plástico y el metal.
Rugosidad vs. especularidad
La interacción entre la rugosidad y la especularidad es un punto importante para entender, particularmente si ya venías trabajando en Unreal Engine antes de que se adoptara el flujo de trabajo de PBR.
La Especularidad se refiere a la cantidad de luz especular reflejada por un superficie. Este valor es inherente al tipo de material, y, por lo general, el valor predeterminado de 0.5 es exacto. La entrada "Especular" no se usa para mapas de reflexión/especularidad ni para añadir variación de superficie. Esto debería manejarse en el mapa de rugosidad.
Metálico
La entrada "Metálico" acepta un valor entre 0 y 1, y define si el material se comporta como un metal o un no metal.
En la mayoría de los casos, deberías tratar la propiedad "Metálico" como binaria en Unreal Engine. Para superficies puras, como metal puro, piedra pura, plástico puro, y así, deberías poner la propiedad "Metálico" en 0 o 1, no en valores intermedios. Al crear superficies híbridas como metales corroídos, gastados u oxidados, puede que te veas en la necesidad de usar algún valor entre 0 y 1.
- Los No metales tienen un valor metálico de 0. Este es el valor predeterminado.
- Los Metales tienen un valor metálico de 1.
Valores metálicos de 0 a 1.
Es posible que al principio no te convenza mucho la idea de hacer que un material sea completamente metálico. Resiste el impulso de usar valores parciales, a menos que tengas un buen motivo.
Este ejemplo muestra cómo una superficie cambia cuando el valor metálico se aumenta de 0 a 1 en un material con una rugosidad relativamente baja.

Valores metálicos de 0 a 1.
Mapeo de propiedad metálica
A menudo, un mismo material tiene elementos metálicos y no metálicos. Piensa en un panel de metal con una capa de pintura que cubre todo el metal o partes de este.
La pintura no es metálica, de modo que el valor metálico debería ser 0 en cualquier región cubierta de pintura. En cualquier área que el panel de metal sea visible, el valor metálico debería ser 1.
Esto debería manejarse con una máscara de blanco y negro que se debe pasar a través de la entrada "Metálico". La pintura no se mezcla con el metal, se posa sobre este. Tu mapa metálico no debería contener valores de escala de grises intermedios, solo blanco y negro. También podrías usar capas de material para alcanzar resultados similares.
Especular
La entrada "Especular" toma un valor entre 0 y 1, y controla cuánta luz especular refleja la superficie.
- Un valor especular de 0 no refleja nada.
- Un valor especular de 1 es completamente reflectivo.
Unreal Engine usa un valor especular predeterminado de 0.5, que representa aproximadamente un 4% de reflexión especular. Este valor es preciso para la mayoría de los materiales.
Es probable que te veas tentado a poner este valor en cero para obtener materiales muy difusos. ¡No lo hagas! Todos los materiales tienen un valor especular, consulta esta publicación para ver ejemplos [5].. La manera correcta de hacer materiales muy difusos es usar un valor de rugosidad alto.
Mapas de cavidades
Una razón para modificar el valor especular es añadir microclusiones o sombreados de pequeña escala, como los que se ven en las grietas representadas en el mapa de normal. A estos elementos a veces se les conoce como cavidades. Las sombras en tiempo real del renderizador no recogerán la geometría de pequeña escala, sobre todo los detalles presentes solo en el conteo alto de polígonos y horneados en el mapa de normal.
Para capturar este sombreado, puedes generar un mapa de cavidad, que, por lo general, es un mapa de AO con una distancia de trazado muy corta. Esto se multiplica por el color base final antes de la salida y se multiplica con 0.5 (valor especular predeterminado) como la salida especular.
De manera más concreta, sería BaseColor = CavityOldBaseColor, Specular = Cavity0.5.
Como parte de sus usos avanzados, se puede utilizar para controlar el índice de refracción (IOR). Hemos visto que esto es innecesario para el 99% de los materiales. Abajo están los valores especulares con base en el IOR calculado.
Valores especulares calculados:
| Material | Especular |
|---|---|
| Vidrio | 0.5 |
| Plástico | 0.5 |
| Cuarzo | 0.570 |
| Hielo | 0.224 |
| Agua | 0.255 |
| Leche | 0.277 |
| Piel | 0.35 |

Valores especulares de 0 a 1
Ejemplo de materiales calculados. Arriba: Carbón, concreto fresco, asfalto desgastado. Abajo: Cobre, hierro, oro, aluminio, plata, níquel, titanio
Referencias
1. Lagarde, Feeding a physically based shading model
2. Karis, Real Shading in Unreal Engine 4
3. Burley, Physically-Based Shading at Disney
4. Smits, Reflection Model Design for WALL-E and Up
5. Hable, Everything is Shiny