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

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.
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.

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.

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.


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.

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.



• 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.


• 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.


• 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.


• 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.

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.


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.