Title Image

Blog

Creación de modelos 3D del terreno con Blender

  |   3D, Geovisualización, SIG

Blender es un software profesional utilizado para la generación de gráficos y modelado 3D con el que es posible la creación de películas de animación, la generación de efectos visuales, aplicaciones interactivas, videojuegos o la creación virtual de modelos 3D.

Logo de Blender

Es un software libre y multiplataforma que goza de relevancia en el sector de los gráficos 3D por ordenador desde que el desaparecido estudio holandés Not and Number liberase el programa y se creara en 2002 la Blender Foundation para mantener su desarrollo y promoción.

Desde su versión 2.61 incorpora Cycles, un motor de renderizado para la creación de escenas fotorrealístas que mejora notablemente estas capacidades y que en las últimas versiones ya soporta la simulación de físicas, lo que permite crear efectos visuales como líquidos, fuego, humo o partículas.

Modelo en Blender de un arco de entrada.

Modelo en oclusión ambiental de una portada neoclásica. La reconstrucción virtual del patrimonio es uno de los usos profesionales que ofrece Blender.

Blender de entrada no es en software sencillo de aprender para una persona que tiene su primer contacto con él. Requiere de una dedicación inicial para conocer su peculiar interfaz y su extenso uso de atajos por teclado. Pero una vez comprendes la forma de trabajar y su lógica distribución del entorno de trabajo valoras la rapidez  con la que se realizan muchas acciones.
La recompensa viene de las grandes posibilidades que Blender ofrece, y en concreto para el uso de datos GIS que es lo que a nosotros nos interesa en esta entrada.

Utilizar datos GIS en Blender

Blender está pensado para la creación de escenas tridimensionales fotorrealistas y el grueso de su activa comunidad de usuarios proviene del ámbito del arte y la animación. No obstante existe un buen número de profesionales que utilizan este software en entornos como por ejemplo la arquitectura, el urbanismo, la reconstrucción virtual del patrimonio o el modelado 3D de terrenos.

Es en este último donde ponemos ahora nuestra atención, ya que Blender es una herramienta con una notable capacidad para la generación de modelos topográficos tridimensionales a partir de datos geoespaciales. Sin duda, una referencia en software libre si deseamos generar entornos 3D fotorrealistas de gran calidad.

Una de las ventajas de Blender reside en la cantidad de add-ons o complementos desarrollados en torno a este software. De entre todos vamos a detenernos es uno de ellos: BlenderGIS.

BlenderGIS son un conjunto de complementos que hacen de puente entre Blender y los datos geoespaciales con el fin de poder trabajar con ellos desde del propio programa. BlenderGIS ha evolucionado bastante en los últimos años y facilita enormemente la generación de modelados 3D del terreno y la aplicación de texturas (ortofotografías), ya que nos permite importar archivos ESRI Shapefile, imágenes ráster georrefenciadas, generar mallas 3D del terreno, exportar datos georrefenciados e incluso realizar determinados análisis topográficos.

Creación de un modelo 3D del terreno

Para instalar BlenderGIS descargamos primero los archivo desde el proyecto alojado en GitHub y los descomprimimos en el directorio \2.xx\scripts\addons de la carpeta de instalación de Blender. Abrimos el programa y desde el cuadro de diálogo Blender User Preference (File → User preferences) marcamos sus add-ons.

Activación de los addons de BlenderGIS.

Activación de los addons de BlenderGIS.

Una vez activados se añade una nueva pestaña en la ventana de herramientas llamada GIS que incluye varios paneles con herramientas para la creación de mallas mediante triangulación de Delaunay, análisis altitudinal, pendiente y rugosidad del terreno o añadir una cámara a nuestra escena. Además, podemos importar archivos shapefile y aplicar ortofotos a nuestro TIN como si fueran texturas.

Abrimos Blender y eliminamos el cubo por defecto que aparece en nuestra escena. Es importante asegurarnos que estamos utilizando Cycles Render como motor de renderizado.

Lo primero que necesitamos será importar un conjunto de datos con los que poder generar una malla 3D de la escena. Vemos que desde el menú File → Import ya tenemos la posibilidad de importar un archivo shapefile. Si bien es posible trabajar con un shapefile de puntos, en este caso utilizaré uno con curvas de nivel cada 2 metros generado a partir de un Modelo Digital del Terreno  mediante GDAL. No obstante,  se puede utilizar cualquier otro software GIS como por ejemplo, gvSIG, QGIS, ArcGIS.

Importando un shapefile a Blender.

Importando un shapefile desde Blender.

Este shapefile debe contener una columna en su tabla de atributos donde se guarde la altura de cada curva de nivel. Blender se encargará de dar la tridimensionalidad a las líneas a partir de esa información.

Es importante fijarse en la esquina inferior izquierda ya que ahí debemos indicar al programa el nombre de la columna donde se almacenan esos valores z en la tabla de atributos. Si no se especifica se mostrarán las curvas de nivel sin cota, es decir, planas.

Indicamos cuál es el campo del shapefile que almacena los valores de altura.

Indicamos cuál es el campo del archivo shapefile que almacena los valores de elevación.

Además, es posible señalar otro campo que guarde valores de extrusión vertical respeto a la superficie del MDT, algo que puede ser útil para la representación de edificios o elementos subterráneos, por ejemplo.

Tras la importación veremos cómo las curvas de nivel se han añadido a nuestra escena en la Vista 3D como un único objeto mostrado también en la ventana de objetos y jerarquías.

Curvas de nivel en nuestra escena en Blender.

Curvas de nivel en Blender.

Desde la pestaña GIS en la ventana de herramientas creamos un modelo TIN mediante una triangulación de Delaunay. Pulsamos en el botón Triangulation y esperamos a que se genere la malla. Este proceso puede tardar unos minutos dependiendo de la extensión y complejidad del terreno de nuestra escena.

TIN generado a partir de las curvas de nivel y mostrado en Blender en Vista Sólido.

TIN generado a partir de las curvas de nivel y mostrado en Blender en Vista Sólido.

Llega el momento de importar una imagen georrefenciada con un fichero worldfile asociado para añadir una textura a la malla. Para ello vamos a realizar un mapeo UV, es decir, proyectar una imagen 2D en la superficie de un modelo 3D.

El mapeado UV.

El mapeado UV.

Desde el menú File → Import realizamos la importación de la imagen a la malla TIN como textura. Debemos indicar el modo de importación (On mesh) y el objeto sobre el que se aplicará la textura (TIN) en el momento de realizar la importación. Dependiendo de las dimensiones de la imagen y de la malla el proceso puede llevar un tiempo.

Importación de una imagen georreferenciada e integración en el modelo TIN.

Importación de una imagen georreferenciada e integración en el modelo TIN.

Debido a que los datos geográficos que incorporamos a nuestra escena pueden tener un extensión bastante grande, será necesario ajustar algunos valores de la vista 3D como el número de líneas y separación del Grid Floor y la distancia de Clip.  Estas propiedades están situadas en la ventana de opciones de la Vista 3D. Si Blender muestra caras negras en la imagen renderizada trata de ajustar los valores de distancia del clip (el intervalo en el cual un objeto es directamente visible por la cámara) para acercar el clip de inicio a la escena.

Ajuste de valores del Grid Floor y distancia del Clip

Ajuste de valores Grid Floor y Clip.

Solo resta escoger una imagen HDRI para nuestro fondo y un buen tipo de iluminación que haga más realista nuestro renderizado. Elegimos una luz de tipo Sun y ajustamos el color y la intensidad.

Si nuestro modelo está georrefenciado podemos crear una imagen renderizada georrefenciada utilizando el panel Georref cam de la solapa GIS, en la ventana de herramientas. Elegimos el objeto georreferenciado y creamos una nueva cámara en la escena. Podemos dar un nombre a la cámara e indicar el tamaño de píxel que tendrá la imagen resultante y que afectará a su resolución.

Esta cámara se ajusta a una vista ortográfica con la escala y la ubicación correcta para abarcar la malla. Además deberás asignar la altura y la distancia de clipping adecuada.

Modelo 3D del terreno con textura basada en una ortofotografía.

Modelo 3D del terreno con textura basada en una ortofotografía.