Tutorial “Realtime GI” parte 2

By Danilo Giardina, 20 diciembre, 2016

Resolución en tiempo real

Hola a todos aquí les traigo en español el tutorial oficial de Unity sobre “ realtime resolution”. Espero que les guste. De antemano les pido disculpa si en alguna ocasión la traducción no se entiende o es errónea. Si más para decir , vamos al tutorial:
(Para versión: 5.5 – Dificultad: Intermedio)

Se requiere haber leído la parte 1 de este tutorial : enlace

Cuando se configura una escena para la iluminación mediante “Precomputed Realtime GI”.Una de las primeras decisiones que se deben tomar. Es determinar la resolución en tiempo real predeterminada de su escena. Resolución en tiempo real es el número de texels de mapa de luz real (píxeles de textura) en tiempo real utilizados por el mundo de Unity.

Resolución en tiempo real se puede observar o establecer en la ventana de iluminación, de la siguiente manera:

  • Abra la ventana Iluminación (Window > Lighting) y, a continuación, seleccione la pestaña Scene.
  • Asegúrese de que la “Precomputed Realtime GI” esté activada marcando su casilla de verificación.
  • Observe la propiedad “Realtime Resolution” debajo de la casilla de verificación Precomputed Realtime GI.

Realtime GI

Ventana de iluminación de Unity que muestra la configuración global de la resolución en tiempo real de escenas.

 

Elegir una resolución en tiempo real adecuada

Al configurar una escena es importante tener alguna idea de la escala de unidad que su proyecto necesitará. Podría ser que en su proyecto una unidad es un metro, un pie o un centímetro. Las unidades Unity no tienen una equivalencia por defecto en la escala del mundo real. Por lo que depende del usuario decidir qué representa una unidad.
En nuestro proyecto de ejemplo hemos decidido que una unidad es equivalente a 1 metro. Ciertos conceptos de física asumen lo mismo. Por ejemplo, la gravedad se representa en unidades por segundo como un valor predeterminado en Unity. Suponiendo que una unidad es equivalente a 1 metro . Es por lo tanto una buena configuración para un escenario de juego del mundo real.

A menudo la resolución en tiempo real de tu escena puede determinarse a partir de la escala de tu mundo de juego. Por ejemplo, ¿es su escena pequeña, pero el interior ricamente poblado con un montón de variación en “bounced lighting”?. En este caso, las resoluciones de mapa de luz es más alta, como 2-3 texels por unidad .Podrían justificarse para capturar esta iluminación más detallada o de “alta frecuencia”.

Tal vez su escena es un gran ambiente al aire libre. Donde la escala mundial es considerablemente más grande. Usted puede tener superficies que son cientos o incluso miles de unidades en el área con poca variación para modificar el color de la “bounced lighting”. En casos como estos, una resolución que sea apropiada para capturar los detalles de iluminación presentes en una escena interior. Sería un desperdicio cuando se aplicara a través de las extensiones grandes y menos destacadas de un entorno al aire libre.

Estaríamos desperdiciando valioso tiempo de CPU y memoria disponible por tener que almacenar y actualizar texels de mapa de luz que no están contribuyendo mucho a la apariencia general de la escena. Lo que es más importante, para los propósitos de este tutorial, estaríamos aumentando el número de texels de mapa de luz que deben ser considerados durante el precomputo de iluminación. Esto puede tener un impacto enorme en tiempos precomputación.

En el caso de un entorno exterior, una resolución de mapa de luz apropiada puede estar entre 0.5 -1 texels por unidad para objetos grandes dentro de la escena, o 0.1 – 0.5 texels para el terreno.

 

Resolución GI en tiempo real  vs. mapas de luz tradicionales

Los valores de resolución en tiempo real requeridos por el “Precomputed Realtime GI” de Unity . Son órdenes de magnitud menores que las densidades de texels tradicionales de mapa de luz. Esto se debe a que sólo estamos captando la iluminación indirecta en estos mapas de luz. Y esto tiende a ser muy suave o “baja frecuencia”. Cuando se utiliza la “Precomputed Realtime GI”, las sombras nítidas normalmente se proporcionan por sombras en tiempo real en lugar de mapas de luz de alta resolución.
El uso de valores que parezcan apropiados en las técnicas tradicionales de lightmapping – digamos 30 texels por unidad – probablemente resultará fallos o de otra manera no completado. Los valores más adecuados son alrededor de 2 – 3 texels por unidad para escenas interiores, y 0.5 – 1 para ambientes al aire libre. Esto es suponiendo que estamos trabajando con una escena escala humana. Con un tamaño de unidad de 1 unidad = 1 metro. Si la escala mundial fuera sustancialmente diferente, estos valores tendrían que ser ajustados en consecuencia.

Scenario Realtime Resolution
Interiores 2 – 3 texels por unidad
Exteriores 0.5 – 1 texels por unidad
Terrenos 0.1 – 0.5 texels por unidad

Valores apropiados suponiendo un mundo de escala humana con 1 unidad que representa 1 metro.

Al configurar inicialmente la resolución en tiempo real de nuestra escena, estamos especificando la resolución predeterminada, para objetos estáticos dentro de nuestra escena. El nuevo GameObjects con un MeshRenderer marcado como Lightmap Static en la parte superior del Inspector. Usará este valor hasta que se modifique de otra manera.

Además de elegir la resolución en tiempo real para toda la escena. También tenemos la opción de cambiar la resolución del mapa de luz por objeto. En los casos en que necesitamos la fidelidad adicional ofrecida por resoluciones más altas, podemos aumentar selectivamente este valor. En general, es menos trabajo establecer la resolución más común como predeterminado de escena. Y, a continuación, aumentar manualmente la resolución en aquellos objetos que necesitan más detalles de iluminación. Discutiremos los enfoques para modificar la resolución por objeto más adelante en el tutorial.

 

Configuración de la resolución en tiempo real de nuestra escena

Si desea seguir adelante, estaremos trabajando en la escena LightingTutorialStart incluida con el Tutorial de optimización de iluminación vinculado en la parte superior de esta página.
En nuestro escenario de ejemplo, tenemos un ambiente al aire libre con un terreno de tamaño medio de un color razonablemente constante. Para ello, una baja resolución en tiempo real de 0,5 texels por unidad. Esto sería suficiente para capturar la iluminación rebotada de otros objetos en la escena.

Sin embargo, también hay una serie de casas de madera. Estos son mucho más detallados. Como hay muchas más casas que objetos de terreno en la escena, debemos establecer la resolución en tiempo real para que sea apropiada para las casas. Podemos entonces modificar la resolución utilizada por los objetos del terreno individualmente. Esto reducirá la cantidad de trabajo necesario al preparar nuestra escena. Con esto en mente, vamos a utilizar un valor de 1 texel por unidad mundial para nuestra resolución por defecto en tiempo real.

  • Abra la ventana Iluminación (Window > Lighting) y seleccione la pestaña Scene.
  • Establezca el valor de  “Realtime Resolution” en 1.

Teniendo en cuenta que hemos decidido que la escala de nuestra escena sea 1 unidad = 1 metro, esto significa que un único texel de mapa de luz creado por el “Precomputed Realtime GI” de Unity equivaldrá a 1x1m de tamaño. Esto puede parecer muy bajo, pero recuerde que sólo estamos captando la luz indirecta. Sombras nítidas y especularidad de la iluminación directa serán proporcionados por luces en tiempo real en la escena.

Bueno , eso seria todo por el día de hoy , si te ha gustado este tutorial no olvides subscribirte (aquí) para ser notificado por correo cuando publiquemos la siguiente parte de este tutorial. (Se publicará una parte por semana).
¿Te gustaría aprender más sobre Unity?

curso sobre desarrollo de videojuegos en unity

Pulsa en la imagen para ir al curso.

What do you think?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *