Saltar al contenido principal

Descripción General

Gecarsa es un proyecto arquitectónico donde cliente busca mostrar sus departamentos  con ayuda de la Realidad Virtual. El proyecto incluye dos departamentos y un Penhouse, donde se tiene la opción de quitar una pared para agrandar el espacio de la sala. El tipo de iluminación que se requiere es realista de día.

Alcances

Esta ficha muestra el proceso de iluminación que se siguió para los departamentos 1 y 2 (la diferencia entre ambos son las dimensiones y la posición del espejo del baño) sin embargo se uso la misma iluminación para ambos casos, solo ajustando posiciones de algunos elementos y luces.  Como nota adicional, esta guía cubre el proceso a a partir de cuando la iluminación general ya estaba hecha así que se entró a apoyar en pulir y solucionar problemas de bake. Estas fueron las conclusiones que surgieron a partir de la  revisión del proyecto.

Proceso de Desarrollo

Requerimientos y validaciones del modelo 3D:

  • Usa grosor en la estructura. En estructuras con ventanas, puertas abiertas, tragaluz u otra fuente de luz exterior, donde se ocupará luz direccional (u otras luces del exterior) es mejor tener las paredes, techos y pisos con grosor. Esto para evitar filtraciones de luz (Las uvs de las paredes exteriores pueden estar más pequeñas en el mapa de UVs para que no ocupen espacio innecesario) .
  • Cuida como despliegas las UVs del modelo, Es mejor evitar despliegues en "L"  rectángulos muy largos o "cuadrados" con bordes delgados en forma de "marcos cuadrangulares". Ya que pueden ocupar mucho espacio desaprovechado en los lightmaps, ya que no se puede poner uvs dentro de esos espacios . NOTA: Unity al generar los mapas de luz encierra cada isla en un cuadrado que corresponde al tamaño de la isla y no pone nada dentro, por ejemplo en este mapa se esta desperdiciando un 40% de espacio aproximadamente**.**

  • Desplegar las paredes y los techos largos en secciones cortas ayuda a organizarlos mejor, ej. Rec 1, en una uv la parte del techo que le corresponde, techo de la Sala- comedor en otra uv isla, Pared frontal, pared lateral, pared trasera, en islas diferentes separadas.  En el siguiente ejemplo las paredes se seccionaron, aunque quedan huecos, esta justificado ya que es donde están las puertas y ventanas.

  • Trata de no dejar objetos que sobrepasen el piso o el techo. Para evitar filtraciones de luz en las orillas del objeto. Así como cerrar las estructuras. (Hacer merge de los vértices).   En este ejemplo se filtra la luz del exterior
  • No dejes caras empalmadas, pueden producir errores de bake como sombras negras o problemas de Z-Fighting (flickering).

Trata de modelar los cuartos en "cubo" en lugar de hacer bloques de paredes. En caso de usar bloques de paredes, evitar dejar las uvs de las paredes largas completas y cortar donde se intercepta otra pared.

Por ejemplo, si se tiene una planta baja, que tiene 4 cuartos a lo largo, y se modeló la pared completa ( que mide 10 metros de largo y la uv  se deja en un corte largo de toda la pared, en un lightmap  puede verse asi (A) y a pesar de que este espacio que se deja se puede llenar con otros modelos, también es cierto que al ocupar un menor espacio se le restringe el tener una mejor resolución)  En cambio si se secciona la pared en 4 partes de 2.5 metros justo donde se intercepta la pared que delimita cada cuarto, las uvs podría tener un mejor acomodo en conjunto con otros assets (B) y si se sube la escala en los lightmaps del objeto, podrían aumentar su tamaño teniendo una mejor resolución (C).

****

  • abordar tema del piso con ejemplos de cuando si y cuando no cortar en secciones.
  • Abordar ejemplo de seccionar el techo

Ejemplo de una lightmaps bien aprovechado.

En su mayoría todos los cortes son en secciones para la estructura lo que facilito su acomodo, Para los muebles, Unity los agrupa y a pesar de tener muebles (los cuales fueron de un package) que no tienen los mejores UVs el impacto no es tan grande como lo tendría el desplegar mal las uvs de la estructura (paredes piso)  Aquí aprox solo quedo vacío un 10-15 % . No siempre se podrá llenar al 100 el mapa pero evitar dejar espacios vacíos muy grandes como en el caso anterior puede ayudar a reducir el tamaño en MB de los lightmaps generados.

Consideraciones en cuanto a materiales:

  1. Considera que **entre mas lisa una superficie (glossy) rebotará más luz (**color) así que cuida el nivel de smoothness, a menos que sea necesario mucho glossy mantenlo bajo ya que niveles altos también produce problemas de aliasing.  Ejemplo, si tienes una tala y un pared blanca, y dicha tela tiene mucho glossy, en la pared se verá  muy marcado el color azul.
  2. No hagas bake de objetos 100% metálicos, como espejos, estas superficies en realidad no muestran un cambio  si se les ilumina por lightmaps o con lightprobes, ya que dependen en su mayoría de los reflejos, es decir, del reflection probe.  Para hacer su sombra puedes hacer una copia del objeto y ponerle un material opaco, sin glossy y no metálico,  o si es algo simple usar las primitivas de Unity (cubos, cilindros, capsulas, etc.) y marcarlas como Only Shadows, en la sección de lighting en el inspector.
  3. No olvides cambiar el render face a both los materiales cuyos objetos no tengan grosor, ejemplo, carteles, hojas, plantas,etc. para evitar  sombras borrosas en el bake.
  4. Los materiales emisivos ayudan a generar iluminación. Usa el modo bake, y de preferencia, usa un material emisivo independiente si la iluminación varia entre las lámparas. De igual manera, trata de mapear los objetos emisivos juntos. Ej. Un departamento tiene 3 tipos de luces. Y varían entre si en intensidad, puedes crear el mapa de textura donde se incluyan los tres, y en unity, crear tres materiales que usen el mismo mapa pero con la intensidad que necesitas.

Proceso de iluminación   (aquí empieza la práctica de iluminación)

Nota : Yo no comencé la iluminación de este proyecto por lo que mi primer paso fue revisar y analizar que hacia cada luz en escena, es decir, fui prendiendo las luces y haciendo bakes para ver su impacto y si realmente aportaban o estaban de más.

  • Lighting Settigns  para bakes de prueba: map size en 1024 px, progressive updates desactivado, resolución en 40- 50px , filtering en auto. Y settings de environment (En la opción environment lighting cambie de skybox a Color porque no quería que el skybox afectara la iluminación).

  • Bake sin luces, sin skybox, solo con  materiales emisivos de las lámparas en baked. (nota: el piso verde es una geometría que me olvide de apagar pero en realidad no hace nada ni esta con bake)

 

  • Luz direccional que genera sombras y que actuará como el sol, esta es mi luz principal

  • Luz direccional que no genera sombra, y en menor intensidad, pero va en dirección contraria para aportar más luz general.

  • Área lights en ventanas para añadir luces suaves (Nota: el cuadro negro es porque use un cubo para dar la sombra del espejo)

  • Bake con muebles y reflection probes

  • Bake final + post processing ( se uso bloom, se jugo con el contraste para hacer la escena mas iluminada)

TIP:  Las point lights que estaban a la mitad de las luces en realidad no aportaban mucho a la iluminación y estaban causando problemas por la alta intensidad que tenían. Si no están seguros de si las luces que estaban antes en realidad funcionan, siempre pueden apagar el resto de las luces y hacer bake para ver  cómo están actuando.

Lighting settings de pruebas

Se inicio con los settings por default (resolución en 40, map size 1024, y con el GPU ), los bakes tardaban entre 30 s y 3 min si se hacía con los muebles encendidos. Luego se cambiaron a estos, se subió los samples pero se mantuvo la resolución en 40-60 , en un bake donde ya se tenia la iluminación general, se subió a 100 la resolución. Para checar la calidad de las sombras y que no hubiera artifacts (errores en lightmaps).

Como los errores de puntos se presentaban más en las paredes, se apagaron los muebles y se dejaron solo la estructura para los bakes. Y de esa forma se hicieron las pruebas

(fotito de los artifacts) Esto se solucionó dándole grosor al techo.

  • Lighting Settings Finales (una resolución de entre 250-300 es buena ) pon atención en como se ven las marcas del sol en la pared y las sombras de las ventanas, se usaron esas áreas de referencia para definir la resolución.

Departamento chico : Se subieron los samples para aclarar los mapas especialmente en los pasillos donde no llegaba tanta luz y evitar banding

Se usaron los filtros en A-trous para definir mejor las sombras, aquí no use gaussian, de por si las area lights generan sombras más suaves y difuminadas y usar gaussian las iba a difuminar más.

Se subió el Indirect Intensity para que tuviera más luz el interior. (cuidado con este valor, solo subir un par de decimas de ser necesario)

Tiempo de bake 1hrs 40m - 2hrs , tamaño de lightmaps 320mb (sin usar la compresión llego a pesar 1.5GB pero en realidad no note diferencia asi que active la compresión a High Quality )

Cómo arreglar áreas quemadas

  • Poner cubos con material transparente y marcar como Only shadows

  • Marcar como Shadows Only (también recuerda apagarlos después del Bake Final)

  • tenia tres materiales para las sombras, dependiendo de que tan intensa la quería, sólida para el techo y transparentes para los pilares, pues quería mantener las sombras duras del barandal. Asi que use un negro con un alpha en 0.1

  • En elementos muy blancos puede llegar a haber filtraciones de luz en las esquinas, para esto se pueden usar cubos a modo de hacer una "tapa" que de sombra, en este caso solo quedo un hueco destapado y se ve como se quemó la esquina.

Reducción de tamaño en área lights Las luces estaban del mismo tamaño de la ventana pero esto provocaba que se quemara la pared en la derecha, lo cual no tenia sentido porque la luz direccional (la mas intensa) apuntaba al lado contrario, y esta parecía más una mancha, por eso se redujo el tamaño y se alejó la luz de esa pared.

  • Eviten hacer bake de espejos, como son 100% metálicos y reflejantes a veces hacen manchitas de colores en los bordes alrededor. Para hacer su sombra hagan un cubo del tamaño y márquenlo como shadows only, o hagan un duplicado, pero pónganle un material sin metallic y poco reflejante.

Setup de lightprobes Se evitó poner lightprobes en lugares de alto contraste como las áreas de las ventanas donde entraba la luz direccional para evitar quemar los elementos. Para las pruebas puedes guiarte de objetos nativos de Unity, asignándoles un material blanco, así puedes ver cómo reaccionan con las lightprobes.

  • No agregue lightprobes tan cerca de las ventanas para no quemar esas áreas, use de referencias la malla verde que es el área por donde podrá moverse el usuario.

  • En este proyecto habia pequeños errores de bake por lo que se decidió editar los lightmaps en lugar de buscar corregirlo con bake.

Edición de lightmaps (asegúrate de subir el ultimo bake al repo antes de editar los LM)

Da clic en el objeto, en el inspector, en la sección de Lightmapping, aparecerla el mapa, da un clic  para ubicar el archivo en el tab de proyecto. Y doble clic para ver donde se ubican las uvs del objeto en el lightmap.

  • Abre el lightmap en Photoshop, aparecerá una ventana, elige la opción 1.

  • Edita el mapa y da clic en guardar, se actualizará en su misma ubicación en Unity, en caso de que no y abra una ventana de guardar , elige la misma ubicación en Unity para reemplazar el archivo. Se debe guardar como un .EXR

Nota: la mayoría de los problemas son sombras marcadas, por lo que basta con usar la herramienta de desenfocar (gotita)

En los D1 Y D2, aparece esta sombra marcada.

  • Por el despliegue de UVs es algo dificil aclarar el area, asi que opté por oscurecer esa area.

  • Estas son las áreas que se oscurecieron (en todos los mapas, tienen este mismo grupo de uvs)

  • en este asset el despliegue no era muy bueno, así que como tip, puedes pintar algunas islas de colores para identificar las partes en el modelo. Después descartas el cambio ,en el repositorio, de ese mapa y abres y editar el mapa de nuevo. Sombra fina en cuarto de lavado en D1 y D2. Este error es porque el pilar no está completamente pegado al techo. Si se sigue presentando el problema, lo que se edito fue esta parte. (varía entre el con y sin modulo, pero la isla es esta, se ve un rectangulito negro en la esquina

  • Linea marcada en D1 - sucede en la pared opcional.

Enlaces de descarga

Los enlaces de descarga ya sean plugins o Assets.

Archivos Adjuntos

Comentarios

Comentarios generales o extras de la investigación.

Ventajas

Desventajas

  • Los bakes arquitectónicos suelen llevar más tiempo de bake por la cantidad de elementos que tiene (muebles/vegetación).

  • Se pueden presentar problemas de bake como el que se marquen las costuras, especialmente en los assets descargados (muebles) ya que al ya estar configurados en Unity, no tiene activados parámetros necesarios como el Stitch seams o el generate uv lightmap. Además que en algunos casos no tienen un buen despliegue de UVs que prevengan esas problemáticas.

Ubicación Proyecto

La ubicación del proyecto en el servidor.

Elaboró

Diana Delfino