Un problema bastante tonto, pero que me
hizo perder casi dos días de trabajo. Cuando comencé a poner en
Unity los escenarios que había modelado en 3Ds Max encontré que
tenía unos artefactos extraños en las sombras.
Tal y como se ve en la imagen había
zonas mal iluminadas, cuadrados negros extraños. Bueno, Unity 5
trae iluminación indirecta, el motor de iluminación offline (beast)
va trabajando creando lightmaps con cada cambio, así que debía
ser alguna mala configuración. Así que empiezas a mirar todas las
opciones, repartidas entre la ventana de iluminación, las luces, el
modelo... Lo único que veo claro es que con luces en tiempo real se
ve bien y con luces pre-calculadas es donde surge el problema. Eso
descarta que el problema sea en el modelo, que haya hecho algo mal en
los mapas uv al crearlo.
Probaba a activar y desactivar cosas,
cambiar la resolución de los mapas de iluminación, aunque no estaba
convencido, en teoría una mala resolución me podría hacer que
fuera muy lento o que las sombras fueran cuadrados enormes, pero no
que salieran pequeños cuadrados al azar por todo el modelo. Pero
como uno es novato y no ve la razón, pues prueba de todo por si
hubiera algún problema oculto que todavía no conoce. Internet no
ayudaba, es difícil buscar este error y los problemas que había en
la red eran similares pero por causa diferente.
Finalmente di con ello. En las opciones
de importación del modelo (en la ventana de proyecto), hay un
checkbox que dice “generate lightmaps uv”, y en Unity 5 está por
defecto desmarcado. Los modelos que yo hago tienen mapeado uv para
textura pero no para mapas de luz. De hecho nunca me había
preocupado en ello, pensaba que era el mismo mapeado o lo hacía solo
el motor, en Unity 4 nunca tuve este problema. Una vez que se marca
ese check (y se aplican los cambios), el motor recalcula la
iluminación y se ve bien, y da igual los parámetros que elijas se
ve bien siempre. Puede ser mejor o peor según lo que te puedas
permitir, pero nada que ver con esa imagen tan fea inicial. Problema
sencillo, se soluciona con un click, si sabes donde... Si no lo
sabes, pues 2 días buscando y a aprenderlo para que no vuelva a
pasar.
Muchas gracias!
ResponderEliminarRealizando un proyecto de final de curso de programación he decidido meterme en la faena de hacer un juego para android y a varios días de presentar el proyecto no podía exportar este porque siempre se quedaba cargando y sabía que había un problema relacionado con la iluminación pero no veía cual y donde estaba el problema.
Gracias otra vez y buen trabajo!