Con las posiblidades de bakeo de texturas que incorpora nativamente Blender desde hace un par de versiones, y aprovechando la incorporación del QMC como algoritmo de cálculo de sombras en su render interno, me parecía una pena no poder realizar modelos nocturnos para Google Earth.
Pero Google nos ha dado la posiblidad, una vez más, de subir unos cuantos enteros en cuanto a interactividad se refiere. En la última versión de Google Earth, la 4.3, Google nos permite visualizar el día y la noche moviendo el slider de la hora del día.
Es una oportunidad que no se puede desaprovechar. Así que me puse a probar la manera de representar un mismo edificio con la iluminación diurna y nocturna dentro de un KMZ. Usando la etiqueta TimeSpan, podemos hacer aparecer un slider que representará el tiempo en el cual se mostrará nuestro modelo.
Para ello en el KML apunto una llamada al modelo .dae y le doy un TimeSpan como sigue:
<Placemark>
<name>Model en 3 dimensions del castell de Miravet</name>
<TimeSpan>
<begin>2008-01-01T08:00:00Z</begin>
<end>2008-01-01T16:45:00Z</end>
</TimeSpan>
De esta forma el modelo se mostrará entre las 8 y las 16:45 del día 1-1-2008. Ahora sólo falta añadir otro modelo igual, con texturas distintas, en el horario siguiente.
<Placemark>
<name>Model en 3 dimensions del castell de Miravet de nit</name>
<TimeSpan>
<begin>2008-01-01T16:40:00Z</begin>
<end>2008-01-02T00:40:00Z</end>
</TimeSpan>
Con esto, si activamos la opción de «Mostrar la luz del sol» en Google Earth, veremos que cuando llega la noche nuestro modelo cambia de iluminación.
El cambio de modelo, cargando un .dae distinto que tenga la misma geometría, hay que hacerlo porque si usamos el mismo modelo y le cambiamos las texturas especificándolo en el Resource Map la textura no se refresca puesto que la identidad del material es la misma y deberíamos estar refrescando la caché de Google Earth continuamente.
Por desgracia, como dice aquí, Google Earth no soporta las referencias geométricas externas que permite Collada. De hacerlo podríamos desmembrar el archivo .dae en geometría y materiales, dejando un fichero base con la malla y creando unos cuantos mucho más pequeños para definir los materiales. Las llamadas desde el KML cargarían los .dae con los materiales, los cuales llamarían todos al mismo .dae con la malla 3D, ahorrando así muchos bytes. Quizás en un futuro 😉
Para acabar os dejo para descargar aquí un KMZ realizado para el departament de Patrimoni Cultural de la Generalitat de Catalunya. Es el «castell de Miravet» y si lo abrís podreis ver el efecto del cambio de textura, el próximo reto es optimizarlo lo suficiente como para hacer una transformación más suave.
AVISO: Parece que hay algunos problemas, para visualizar este efecto correctamente, con algunas tarjetas gráficas, todavía no sé el motivo pero espero acabar averiguándolo 🙁