¿Qué estás buscando?
Engine & platform

Mejores prácticas del equipo Spotlight: Cómo crear imágenes creíbles en Unity

RINALDO TJAN / UNITY TECHNOLOGIESContributor
Mar 9, 2018|13 minutos
Mejores prácticas del equipo Spotlight: Cómo crear imágenes creíbles en Unity
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.

Al ser parte del equipo Spotlight, tengo la suerte de participar en algunos proyectos muy interesantes. El equipo Spotlight de Unity trabaja en juegos junto con nuestros clientes y una parte importante de mi función es ayudar a los desarrolladores a lograr el aspecto y la calidad deseados para sus proyectos. Escucho muchas historias de toda la industria y puedo identificar problemas comunes que enfrentan los creadores de contenido. Varios de los proyectos en los que he trabajado tenían como objetivo lograr imágenes bastante realistas. Dado el contenido artístico del proyecto, ¿cómo creamos una escena en Unity que parezca creíble?

Hay una multitud de temas que deben cubrirse para crear imágenes creíbles. En esta publicación voy a hablar sobre la iluminación y la configuración de renderizado. Más adelante en la publicación también compartiré nuestra escena de muestra del túnel Spotlight y explicaré cómo puedes usarla para aprender y experimentar.

Preparación de la configuración de renderizado de Unity

Comprender cómo se pueden utilizar las funciones de renderizado de Unity para imitar de manera realista el mundo real le ayudará a lograr el objetivo visual de su proyecto.

Modo de renderizado lineal
En términos simples, esto configura Unity para realizar cálculos de iluminación y sombreado utilizando matemáticas físicamente precisas antes de transformar el resultado final en el formato que funciona mejor para los monitores.

Para especificar un flujo de trabajo gamma o lineal,
Vaya a Editar > Configuración del proyecto > Reproductor y abra Configuración del reproductor.
Luego vaya a Otras configuraciones > Renderizado y cambie el Espacio de color a Lineal.

Definir su espacio de color debe ser una de las primeras decisiones de su proyecto, debido al impacto drástico en los resultados finales de sombreado e iluminación.

Modo de renderizado.
En la escena de muestra del túnel Spotlight, utilizamos una ruta de renderizado diferido. Esto permite a los creadores de contenido trabajar con múltiples luces dinámicas de manera eficiente, combinar múltiples mapas de cubos de reflexión y tener la capacidad de usar las funciones de reflexión de espacio de pantalla existentes en Unity 2017+.

Para configurar esto, vaya a Configuración gráfica > Ruta de renderizado o Cámara > Ruta de renderizado

Puede encontrar más información sobre los modos de renderizado en esta parte de la documentación de Unity.

Cámara de alto rango dinámico (HDR).
Al renderizar una iluminación creíble, como en la vida real, los creadores de contenido tendrán que lidiar con valores de iluminación y superficies emisoras que tienen un brillo superior a 1 (alto rango dinámico). Luego, estos valores deben reasignarse al rango de pantalla adecuado (esto se llama mapeo de tonos). Esta configuración es crucial para permitir que la cámara Unity procese estos valores altos y no los recorte.

Para habilitar esto, seleccione la cámara principal en la escena y asegúrese de que HDR esté marcado en la pestaña del inspector de la cámara seleccionada.

Codificación de mapas de luz HDR (opcional)
La escena de muestra Spotlight Tunnel no utilizó iluminación horneada; sin embargo, si planea trabajar con iluminación horneada de alta intensidad (HDR), le recomendamos que configure la codificación del mapa de luz en mapa de luz HDR para asegurarse de que el resultado de la luz horneada sea consistente.
La opción se puede encontrar en Editar > Proyecto > Configuración del reproductor > Otras configuraciones > Codificación de mapa de luz (solo Unity 2017.3+).
Puede encontrar información detallada sobre la codificación Lightmap en el manual.

Tonmapper para tu escena (parte de la pila de posprocesamiento).
Para mostrar la iluminación HDR correctamente, es necesario habilitar un mapeador de tonos en el proyecto.
Asegúrese de instalar primero Unity Post Processing Stack (versión 1) desde Asset Store.

Cree un activo de perfil de posproceso en su proyecto y configúrelo de la siguiente manera:

  • Habilitar gradación de color > Tonemapper > ACES
    (Estándares de codificación de colores de la Academia)
  • Habilitar tramado. El tramado permite que la escena alivie el artefacto de bandas introducido por la salida de 8 bits/canal de la escena HDR. Los motores modernos utilizan esta técnica para evitar la limitación de la salida de 16 millones de colores. Deje el resto de configuraciones en tonemapper por ahora.
  • Seleccione la “Cámara principal” y agregue el componente Comportamiento de posprocesamiento.
  • Asigne el perfil de post proceso creado previamente a la ranura del perfil. Si desea utilizar Post Processing Stack versión 2, consulte el archivo README del paquete, ya que actualmente se encuentra en versión Beta.
  • Habilitar efecto de imagen para la ventana gráfica.
    Esto le permite ver el mapeador de tonos todo el tiempo mientras trabaja con la vista de Escena.
    Observe las mejoras en la reproducción de luces y en la separación de valores del túnel oscuro en la escena con mapa de tonos. Si miras la escena sin mapa de tonos, puedes ver cómo los reflejos no convergieron en un color unificado (el sol ardiente y amarillento en este caso).

Esta configuración intenta esencialmente replicar cómo una cámara digital captura una escena con una exposición fija (sin funciones de adaptación de exposición/adaptación ocular habilitadas).

Imagen

En este punto, los creadores de contenido han logrado una configuración de renderizado de escena básica adecuada que debería brindar resultados creíbles con una amplia gama de contenido.

Iluminación y montaje

Unity se adapta a muchos sistemas/estrategias de iluminación y escenarios de proyectos diferentes. Le recomendamos que consulte nuestra extensa documentación sobre los modos de iluminación y configuración para comprender todas las diferentes opciones.

Sin embargo, para una iteración rápida y sencilla, es necesaria una retroalimentación visual reactiva.
Por este motivo, la escena de muestra del túnel Spotlight utiliza iluminación en tiempo real con iluminación global en tiempo real (GI). Esto nos dará un buen rango de respuesta especular, buena iluminación de rebote y nos permitirá cambiar nuestras luces sobre la marcha.

Iluminación en tiempo real con Realtime GI + Light Probe

Imagen
Imagen

Volviendo a la iluminación en sí, una escena típica, de día, con zonas al aire libre, se puede desglosar en 3 componentes de iluminación:

1) Hemisferio (Contribución del cielo).

2) Luces directas (Sol + Luces locales).

3) Iluminación indirecta (iluminación GI).

En esta etapa, se supone que los creadores de contenido tienen mallas con la textura adecuada y una escena ensamblada.

Iluminación exterior y montaje

Iluminación inicial del hemisferio
El primer componente para la iluminación exterior es la iluminación hemisférica, llamada iluminación ambiental en Unity. Esta es una palabra elegante para tragaluz. El cielo nocturno tiene una contribución mínima, mientras que el cielo diurno tiene una contribución muy brillante. La configuración del hemisferio se puede encontrar en la pestaña Iluminación (Ventana > Iluminación > Configuración > Entorno).
Para empezar, sería preferible el material de skybox procedimental en lugar del mapa cúbico HDRI. Cree un nuevo material en el proyecto, nómbrelo SkyMaterial y luego configúrelo como Skybox / Procedural.

Imagen

Asígnelo al Material de Skybox de entorno dentro de la pestaña Iluminación > Escena.

Imagen

En este punto la escena está algo iluminada. Hay una iluminación ambiental, pero no una iluminación hemisférica exactamente adecuada. Dejaremos esto así por ahora.

Luz direccional
La luz solar o la luz de la luna típicas son fuentes de luz cercanas al infinito y tienen direcciones de luz y sombras paralelas. Generalmente están representados por una luz direccional.

Imagen

Iluminación indirecta / Iluminación global.
La luz direccional más la luz ambiental por sí solas no crearán una iluminación creíble. Una iluminación hemisférica adecuada requiere la oclusión de la iluminación del tragaluz. También necesitamos simular la luz del sol rebotando en los sujetos de la escena. Actualmente el cielo muestra un único valor de color en la escena, lo que la hace plana. Aquí es donde se requiere la iluminación global en tiempo real o iluminación horneada para calcular la oclusión y la iluminación de rebote indirecto. Para lograrlo siga estos pasos:

  • Asegúrese de que todas las mallas que necesitan contribuir al GI en tiempo real o al horneado estén marcadas con Habilitar mapa de luz estático y Sonda de reflexión estática. Normalmente, estas serían mallas estáticas de gran tamaño.
  • A continuación, habilite la Iluminación global en tiempo real (déjela en la configuración media predeterminada) en la pestaña Iluminación > Escena > Iluminación en tiempo real.
  • Pulse Generar iluminación o marque Generar automáticamente.
Imagen

Vaya, la escena ahora está oscura después de que la generación de luz haya terminado. Para empeorar las cosas, algunos elementos de la escena están fuera de lugar: observe el tranvía y la puerta al fondo.
Los objetos estáticos en la Escena actualmente tienen una oclusión adecuada para el hemisferio y una respuesta de rebote indirecto de la luz direccional, sin embargo, el resto de los objetos carecen de una configuración de iluminación adecuada.

Sondas de luz y sondas de reflexión.
Para que los objetos dinámicos o los objetos que no son mapas de luz reciban iluminación global en tiempo real/horneada, es necesario que haya sondas de luz distribuidas en la escena. Asegúrese de distribuir los grupos de sondas de luz en la escena de manera eficiente cerca de las áreas donde se encuentran o pasarán objetos iluminados dinámicamente (como el jugador). Obtenga más información sobre Light Probe Group en el manual.
Presione Generar iluminación nuevamente o espere a que finalice el precálculo si Generar automáticamente está marcado.

Imagen

El tranvía y la puerta del fondo están mejor conectados a tierra, pero los reflejos parecen fuera de lugar. El reflejo del cielo está por todas partes y aparece dentro del túnel. Aquí es donde entran en juego las sondas de reflexión. Coloque sondas de reflexión de manera eficiente con la cobertura adecuada en la escena según sea necesario. En la escena de arriba, una sonda de reflexión para la sala principal es suficiente y dos para cada interior del túnel.
La resolución de mapa cúbico de 128 píxeles con proyección de caja suele ser una buena base para casos típicos y mantendrá felices los tiempos de horneado de la memoria y la reflexión.
Aquí encontrará más información sobre Reflection Probe.

Imagen

La escena ahora parecía debidamente fundamentada y cohesionada, una parte importante de una escena creíble. Pero todo es aún más oscuro que antes y no tiene una calidad creíble.

Valor de iluminación HDR
Muchos creadores de contenido no se dan cuenta de que, en realidad, la iluminación hemisférica y la luz solar son fuentes de luz muy brillantes. Son mucho más brillantes que el valor 1. Aquí es donde entra en juego la iluminación HDR.

Por ahora, apague la luz direccional y luego configure la exposición de SkyMaterial en 16.
Esto le dará una buena idea de lo que la iluminación hemisférica adecuada hace en una escena.

Imagen

Las cosas empiezan a parecer creíbles. Piense en este estado como un día nublado, donde la luz del sol está completamente difundida en el cielo, por lo que no hay luz direccional.

En este punto, puedes reintroducir la luz solar en la escena con un valor mucho más alto. Prueba la intensidad 5 para empezar. A pesar de que el sol parece casi blanco, es importante elegir correctamente el color de la luz direccional, ya que el impacto del color indirecto del sol fuerte puede cambiar drásticamente el aspecto de la escena.

Imagen

Ahora el sol (luz direccional) parece una luz de alta energía como se espera de la vida real. La escena parece bastante creíble en este punto.

Oclusión ambiental del espacio de la pantalla y reflexión del espacio de la pantalla
Si bien la iluminación de la escena se ve bastante bien en este punto, hay detalles adicionales que puedes agregarle para llevarla aún más lejos. Generalmente no es posible realizar una oclusión detallada debido a la resolución limitada establecida en el GI en tiempo real para un rendimiento razonable. Aquí es donde la oclusión ambiental de Screen Space puede ayudar. Habilite SSAO en el Perfil de posprocesamiento en Oclusión ambiental. Los ajustes para este ejemplo están establecidos en Intensidad 0,5, Radio 1, Cantidad de muestra media con reducción de resolución y Solo ambiente marcado para comenzar.

Imagen

Si bien SSAO se encarga de la oclusión de la iluminación ambiental adicional, la reflexión podría mejorar la precisión con algunas mejoras además de las simples sondas de reflexión.
Los reflejos trazados por rayos en el espacio de pantalla pueden ayudar a mejorar esta situación. Habilite la reflexión del espacio de pantalla en el perfil de posprocesamiento.

Imagen

Tenga en cuenta que el lado izquierdo de la pista húmeda ya no muestra reflejos brillantes, ya que SSR le otorga a la escena reflejos más precisos para los objetos en pantalla. Ambos efectos de posprocesamiento implican costos de rendimiento en tiempo de ejecución, por lo que debe habilitarlos inteligentemente y configurar los ajustes de calidad para que se ajusten a sus limitaciones de rendimiento en tiempo de ejecución.

Niebla
En esta etapa, los creadores de contenido han logrado una separación de valores exteriores e interiores bastante creíble en una exposición fija. El reflejo es visible en las áreas interiores oscuras en forma de fuertes reflejos y no como valores tenues y opacos.

Imagen

Sin embargo, los elementos del primer plano y del fondo de la escena no aparecen a pesar de tener fuertes elementos de perspectiva. Una niebla sutil en la escena puede crear una gran diferencia al darle a la escena una dimensión adicional.

Imagen

Observe que la barandilla del primer plano tiene una mejor definición en comparación con la escena sin niebla.
La niebla se habilita en la pestaña Iluminación > Escena > Otras configuraciones. Color de niebla n.° 6D6B4EFF: exponencial con una densidad de 0,025, habilitado aquí. En la representación diferida de Unity 2017, es posible que también debas habilitar la niebla en el perfil de posprocesamiento si no se activa automáticamente.

Iluminación interior y local

Foco / punto de luz
Los elementos básicos de la iluminación local en tiempo real son los focos y los puntos de luz. La iluminación de área solo se puede usar cuando se hornea iluminación, a menos que estés usando HD Scriptable Render Pipeline (SRP), introducido en la versión beta 2018.1. Hay nuevas luces de área que se pueden renderizar en tiempo real en modo HD SRP.

Básicamente, ambos tipos de luces emiten luz desde un punto en el espacio y están limitados por el alcance, mientras que el foco tiene un límite adicional por el ángulo. Encontrará más información sobre la iluminación en la sección correspondiente de la documentación de Unity.

Las grandes diferencias entre las dos luces tienen que ver con la forma en que proyectan sombras e interactúan con las galletas. El sombreado con un punto de luz cuesta 6 mapas de sombras en comparación con el mapa de sombra único de un foco. Por este motivo, los focos que proyectan sombras son mucho más caros y deberían utilizarse con mucha moderación.

NOTA: Las luces horneadas no necesitan preocuparse por este problema.
Otra diferencia es que una textura de galleta en un Spotlight es una textura 2D simple y directa, mientras que un pointlight requiere un mapa cúbico, generalmente creado en un software 3D.

Color e intensidad de la luz.
Para elegir el color y la intensidad adecuados para las luces es necesario seguir algunas pautas generales para obtener resultados plausibles.

Al seleccionar la intensidad de las luces interiores, intente asegurarse de que ninguna luz interior tenga una intensidad mayor que la del sol. Esto puede crear una apariencia desequilibrada dependiendo de la escena.

Imagen

Dada esta configuración de escena de muestra, es muy poco probable que haya luces de alta intensidad brillando desde el techo que excedan el brillo de la luz del día.

Al seleccionar el color, intente no omitir completamente ninguno de los canales de color. Esto crea una luz que tiene problemas para converger hacia el punto blanco.

Imagen

Si bien técnicamente es un color claro válido, el color claro en la imagen de la izquierda elimina todo el color azul del resultado final. Tener una paleta de colores final limitada en la escena como línea base no es una gran idea, especialmente si desea realizar la gradación de color más adelante.

Superficies emisoras
En Unity, las superficies emisoras pueden contribuir a la iluminación si se habilita GI en tiempo real o GI horneado, lo que genera el efecto de iluminación de área. Esto es especialmente útil si GI en tiempo real está habilitado. Los creadores de contenido pueden modificar la intensidad y el color de la superficie emisora y obtener la retroalimentación inmediatamente, asumiendo que el cálculo previo se haya realizado con anticipación.

Imagen

La imagen de arriba muestra la sutil iluminación difusa de las mallas en el techo.

Archivo de proyecto de muestra

El equipo Spotlight de Unity San Francisco ha creado la escena de muestra del túnel Spotlight para ayudar a los creadores de contenido a realizar experimentos y aprendizaje práctico.

Imagen

Obtenga el archivo del proyecto de muestra de Spotlight Tunnel aquí.

Simplemente extraiga el proyecto a la carpeta y abra el proyecto usando Unity.

El proyecto Spotlight Tunnel se realizó con Unity 2017.1.0f3.

Para abrir este proyecto en una versión más nueva de Unity será necesario reconstruir la iluminación, ya que podría haber incompatibilidad en el formato de datos de iluminación entre versiones.

Todos los recursos proporcionados en este proyecto solo pueden usarse en un proyecto desarrollado con Unity Engine.

Como se mencionó anteriormente, hay más cosas que debes saber para crear imágenes creíbles. Puedes aprender más sobre este tema en este tutorial. También agregaremos una Guía completa de mejores prácticas a los documentos de Unity. ¡Manténganse al tanto!

Ahora es tu turno de superar el límite.
Imagen

Esperamos que este blog ayude a los creadores de contenido a seguir adelante para lograr imágenes creíbles en Unity. Estamos ansiosos por quedar deslumbrados por todos los creadores de contenido de Unity.