¿Qué estás buscando?
Engine & platform

Trabajar con sombreado basado físicamente: Un enfoque práctico

ERLAND KÖRNER / UNITY TECHNOLOGIESSenior Technical Artist
Feb 18, 2015|8 minutos
Trabajar con sombreado basado físicamente: Un enfoque práctico
Para tu comodidad, tradujimos esta página mediante traducción automática. No podemos garantizar la precisión ni la confiabilidad del contenido traducido. Si tienes alguna duda sobre la precisión del contenido traducido, consulta la versión oficial en inglés de la página web.

Durante el desarrollo de Unity 5, hemos utilizado nuestro proyecto Viking Village internamente como campo de pruebas para flujos de trabajo de sombreado e iluminación.

Si estás usando la versión beta de Unity 5, puedes descargar el paquete Viking Village desde Asset Store para obtener información sobre cómo puedes ensamblar e iluminar una escena en Unity 5. También presentamos a continuación algunos de nuestros aprendizajes.

Creación de un entorno de plantilla

Para garantizar que la configuración de texturas y sombreadores se comporte adecuadamente, le recomendamos que utilice una escena simple con una variedad de configuraciones de iluminación. Esto podría significar diferentes skyboxes, luces, etc., cualquier cosa que contribuya a iluminar su modelo.

Cuando abras Unity 5, notarás que cualquier escena vacía nueva tiene un cielo procedimental, así como configuraciones ambientales y de reflexión predeterminadas. Esto proporciona un punto de partida adecuado.

lightcond5fr640x480loop

Para nuestro entorno de plantilla utilizamos:

  • Representación de cámara HDR
  • Algunas sondas de reflexión dispersas (para reflexiones localizadas en objetos)
  • Un grupo de sondas de luz
  • Un conjunto de texturas y materiales de cielo HDR, así como cielos procedimentales. El cielo que viene con este proyecto fue creado a medida para Unity por Bob Groothuis, autor de Dutch Skies 360.
  • Luces direccionales de color blanquecino con intensidad combinada y color de cielo HDR

Ajuste de la textura del cielo en los panoramas

La mayoría de las texturas del cielo incluyen el sol (junto con llamaradas, etc.), por lo tanto, la luz del sol se refleja en las superficies. Esto tiene el potencial de causar tres problemas:

1) La luz direccional que utilice para representar el sol debe coincidir con la dirección exacta del sol pintado en el skybox o habrá múltiples puntos calientes especulares en el material.

2) El sol reflejado y el punto caliente especular se superponen, provocando reflejos especulares intensos.

3) El reflejo del sol no se ocluye cuando la superficie está en sombra y se vuelve excesivamente brillante en la oscuridad.

image11
El sol se borra de la textura del cielo y se vuelve a agregar usando una luz direccional y un destello de lente.

Como resultado, es necesario editar los reflejos del sol, los destellos, los rayos solares y los valores HDR de la textura del cielo y volver a aplicarlos usando luces direccionales.

Creación de materiales de sombreado basados en la física


Para evitar las conjeturas que implica emular materiales del mundo real, es útil seguir una referencia conocida y confiable. El sombreador estándar admite un flujo de trabajo de color especular y uno metálico. Ambos definen el color de los reflejos que dejan
La superficie. En el flujo de trabajo especular, el color se especifica directamente, mientras que en el flujo de trabajo metálico, el color se deriva de una combinación del color difuso y el valor metálico establecido en los controles del sombreador estándar.

Para el proyecto Viking Village, utilizamos el flujo de trabajo de color especular del sombreador estándar. Nuestra escena de calibración, que puedes descargar desde Asset Store, incluye algunos gráficos de calibración útiles. Hicimos referencia a los gráficos regularmente cuando
diseñando nuestros materiales.

Al abordar los materiales, puede elegir entre lo que llamamos flujos de trabajo especulares y metálicos, cada uno con su propio conjunto de valores y una tabla de referencia. En el flujo de trabajo especular, eliges directamente el color de la luz reflejada especularmente; en el flujo de trabajo metálico, eliges si el material se comporta como un metal cuando se ilumina.

La tabla del valor especular:
UnitySpecularChart
La tabla de valores metálicos:
UnityMetallicChart

Elegir entre flujos de trabajo especulares o metálicos es en gran medida una cuestión de preferencia personal; por lo general, puede obtener el mismo resultado independientemente del flujo de trabajo que elija utilizar.

Además de gráficos y valores, recopilar muestras de superficies del mundo real es muy valioso. Es de gran ayuda encontrar el tipo de superficie que estás intentando imitar y tratar de comprender cómo reacciona a la luz.

Configuración del material

Al comenzar, a menudo resulta útil crear una representación simple pero modificable de los materiales utilizando colores, valores y controles deslizantes derivados de las tablas de calibración. Luego, puedes aplicar texturas manteniendo el material original como referencia para confirmar que se conservan las características.

materialcompare_refl.1
Fila superior: sin textura. Fila inferior: texturizada. De izquierda a derecha: Rock, Wood, Bone, Metal.
El enfoque tradicional para crear texturas

Las texturas de la Villa Vikinga se crearon utilizando métodos manuales tradicionales (fotografías + ajustes), así como mediante imágenes escaneadas de mapas difusos/albedo, especulares, de brillo y normales que nos proporcionó Quixel.

Tenga cuidado al agregar detalles en los canales de textura del material. Por ejemplo, generalmente conviene evitar colocar iluminación (oclusión ambiental, sombras, etc.) en las texturas: recuerda que el enfoque de renderizado basado en la física proporciona toda la iluminación que necesitas.

Naturalmente, retocar fotografías es más exigente que utilizar datos escaneados, especialmente cuando se trata de valores compatibles con PBS. Existen herramientas que brindan ayuda para hacer el proceso más fácil, como Quixel Suite y Allegorithmic Substance Painter.

Datos escaneados

Las texturas escaneadas calibradas con PBS alivian la necesidad de edición, ya que los datos ya están separados en canales y contienen valores de albedo, especular y suavidad. Es mejor si el software que proporciona los datos calibrados por PBS contenga un perfil de Unity para exportar. Siempre puedes usar las tablas de referencia como comprobación de coherencia y como guía si necesitas calibrar los valores usando Photoshop o una herramienta relacionada.

Ejemplos de materiales

La escena de la Villa Vikinga presenta una gran cantidad de contenido mientras intenta mantenerse dentro de un consumo de memoria de textura razonable. Tomemos como ejemplo cómo montamos una grúa de madera de 10 metros de altura.

Tenga en cuenta que muchas texturas, especialmente las especulares y difusas, son homogéneas y requieren diferentes resoluciones.

image10
Ejemplo 1: Este objeto Grúa tiene 2 materiales: 2 texturas difusas, 1 textura especular-suave, 2 texturas de oclusión y 2 texturas detalladas.
image06
Ejemplo 2: El soporte del escudo tiene 1 material: 1 difuso, 1 suavidad especular, 1 oclusión y ninguna textura detallada.
Captura de pantalla del 17 de febrero de 2015 a las 17.12.23
A la izquierda: Inspector de grúas para ambos materiales. A la derecha se encuentra el material de apoyo del escudo.

• Albedo texture: En el flujo de trabajo especular, representa el color de la luz difusa que rebota en la superficie. No necesariamente necesita ser muy detallado como se ve en la imagen de la izquierda (grúa), mientras que la textura de la derecha (escudo) incluye detalles únicos y significativos.

vv-albedo-texture
Fragmento de mapa difuso de grúa pintada con color e intensidad de madera simple. Contiene una cantidad modesta de detalles. Imagen derecha: Textura difusa de escudo con mayor nivel de detalle (ppi) único.
image09
Valor difuso (sin textura) para material de grúa

• Especular: Los no metales (aislantes) son comparativamente oscuros y en escala de grises, mientras que los valores de los metales son brillantes y podrían estar coloreados (recuerde que el óxido, el aceite y la suciedad en un metal no son metálicos). La textura especular para la superficie de la madera no se benefició mucho de una textura especular, por lo que se utilizó un valor en lugar de ingresar un mapa.

image07
Grúa Valores especulares para madera.
Captura de pantalla del 17 de febrero de 2015 a las 17.40.23
Mapa especular de grúa para metal (sin utilizar sombreador metálico). Bien: Textura especular de escudo.

• La suavidad es un elemento clave en los materiales PBS. Aporta variación, imperfecciones y detalles a las superficies y ayuda a representar su estado y antigüedad. En el caso de la grúa, la suavidad resultó ser bastante constante en toda la superficie y, por lo tanto, fue sustituida por un valor. Esto proporcionó una ganancia de memoria de textura razonable.

image05
Valores de suavidad de grúa para madera. ¡No se requieren texturas!
Captura de pantalla del 17 de febrero de 2015 a las 17.51.13
Mapa de suavidad de grúa para metal (sin utilizar sombreador metálico). Bien: Mapa de suavidad de escudo con superficies mixtas de metal y madera. Mapa de suavidad de grúa para metal (sin usar sombreador metálico). Bien: Mapa de suavidad de escudo con superficies mixtas de metal y madera.

• La oclusión indica qué tan expuestos están los diferentes puntos de la superficie a la luz del entorno circundante. La oclusión ambiental resalta los detalles y la profundidad de la superficie al silenciar el ambiente y el reflejo en áreas con poca luz indirecta. Tenga en cuenta que también existe la opción de utilizar SSAO (Oclusión ambiental del espacio de pantalla) en su escena. El uso de SSAO y AO podría generar un oscurecimiento doble de ciertas áreas, en cuyo caso puede ser conveniente considerar tratar el mapa AO como un mapa de cavidad.


Un mapa AO que enfatice grietas y pliegues profundos puede ser la mejor opción si el juego usa SSAO y/o Oclusión Ambiental mapeada con luz.

image01
1 AO con mapa de luz, 2: Textura de oclusión, 3: Oclusión en difusa, 4: Efecto de imagen SSAO

Texturas secundarias y resolución


Se pueden utilizar texturas secundarias para aumentar el nivel de detalle o proporcionar variación dentro del material. Se pueden enmascarar utilizando la propiedad Máscara de detalle.

Debido a la baja resolución de la textura difusa de madera primaria en el ejemplo de Crane, el conjunto de texturas secundarias es crucial. Añade detalles finos a la superficie final. En este caso, los mapas detallados están en mosaico y tienen una resolución razonablemente baja. Se repiten en muchas otras superficies de madera, proporcionando así un importante ahorro de memoria de textura.

image20
Los mapas secundarios de albedo y normal compensan el mapa principal difuso y normal de baja resolución. Ambas texturas reducen la memoria de textura general al estar ampliamente “superpuestas” y colocadas sobre superficies de madera en todo el pueblo. Tenga cuidado al proporcionar información de iluminación a un mapa de detalles difuso, ya que esto tiene un efecto similar a agregar dicha información a un mapa difuso primario.
image16
Superficie de madera de grúa con (izquierda) y sin (derecha) mapas de textura secundarios.

Estos flujos de trabajo ciertamente nos ayudaron a la hora de diseñar el proyecto Viking Village. ¡Esperamos que también te resulten útiles y estamos deseando leer tus comentarios!

Expresiones de gratitud


El proyecto Viking Village se lanzó en asociación con el equipo creativo de Quixel, desarrollador de la tecnología de captura de superficies HDR y la biblioteca Quixel Megascans de texturas listas para PBS.

Muchas gracias a los talentosísimos Emmanuel “Manu” Tavares y Plamen “Paco” Tamnev por darle vida a esta escena.

Vaya y descargue el proyecto en Asset Store. Tenga en cuenta que está optimizado para Unity 5.0.0 RC2.