domingo, 17 de noviembre de 2024

¿Cómo añadir tu ciudad a Blender?

¿Cómo añadir tu ciudad a Blender?

Hacer una ciudad real en Blender es posible, pero extremadamente laborioso. Por muchas ganas que tengas, según tu objetivo, puede que no salga a cuenta. Sin embargo, hay herramientas que pueden tomar ciudades ya creadas, incluidas las texturas reales. A continuación os voy a mostrar dos métodos: uno fácil pero limitado y otro más laborioso pero con mejores resultados.

Método sencillo

Web OpenEarthOnline.

En OpenEarthOnline, descárgate EarthDataDownload. Esta es una manera sencilla pero limitada porque tan solo te permite una sola captura gratis de hasta 500 m2 (en teoría) y tan solo está disponible para Mac y Windows. Si estás dispuesto a pagar, adelante, pero si no, ten en cuenta que en ese espacio caben unos pocos edificios no muy grandes. Además requiere cuenta, pero no es exigente con el correo que le des. Uno desechable es perfectamente viable.
Programa Earth Data Download

Abrimos el programa, nos registramos con una cuenta, y le damos al "Show rectangle". Esto mostrará el área a seleccionar en el mapa. Luego pulsamos en "Copy coordinates" y copiamos las coordenadas (-74.01374,40.71257,-74.01265,40.71345 en mi caso) en "Target area". Luego pulsamos "Search Area". Al terminar, pulsamos "Save Search Result" en la carpeta que queramos.
Mismo programa en el siguiente paso.
En Download Tiles, en Path to save the file le indicamos la carpeta dónde se va a guardar el resultado y luego en Download From, Search Result File, seleccionamos el archivo que nos descargamos en el apartado anterior. Pulsamos Download y tenemos el archivo que usaremos en Blender.

Siguiente paso.

En Tools, dentro de Export raw to Blender, en RawGlbs Dir seleccionamos la carpeta donde está el archivo que nos hemos descargado antes y en Export to Dir, a la carpeta de destino. Pulsamos a Exprot to (sic).
 
Lo único que queda es, en Blender, vamos a Archivo, en la esquina superior izquierda, y ahí a Importar .glTF 2.0 (.glb/.gltf). Seleccionamos todos los archivos y a importar. Tardará un poco, pero tendrás el segmento seleccionado.

Parecen muchos pasos, pero si lo haces, no tiene complicación Todo está colocado en el orden que tienes que usarlo. La pega, aparte del reducido tamaño de la opción gratuita, es que gasta créditos. Podrás usarlo una vez por cuenta sin pagar. Otro inconveniente, que no siempre ocurre, es que puede faltar algún fragmento.

Método laborioso

Si el anterior era el fácil, ¿cómo es este? Para empezar tiene más requisitos:
  • Windows 
  • Blender 4.1 (o última versión indicada en Github) en inglés. El idioma de Blender solo es importante en la importación, que es el último paso.
  • Chrome. Última versión.
  • Renderdoc 1.31 o anterior para Blender 4.1.
  • MapsModelsImporter v0.7.0 para Blender. Este es esencial.

En la página de Github del complemento de Blender especifica las versiones de RenderDoc y Blender compatibles, ya sea porque tienes una versión más antigua o por si el complemento se actualiza.

Renderdoc.

Empezamos abriendo la versión necesaria de Renderdoc. Si nos pide actualizar, lo ignoramos. En Tools, pulsamos en Settings. En la ventana que se abrirá, seleccionamos la casilla de Enable process injection (restart required). Al reiniciar el programa, pulsamos sobre File e Inject into process. Se abrirá una pestaña con dicho nombre, letras rojas que dicen Note: injection must happen inmediately after the process stars, before any graphics API has been initialized. Abajo se verán los procesos actuales. Dejamos esta ventana abierta porque nos servirá luego.

Símbolo del sistema.

Pulsando el botón de Windows (entre Ctrl y Alt) y R, nos saldrá la ventana de Ejecutar. Ponemos "cmd" y aceptar. También podemos buscar "cmd" en la barra de inicio y pulsar el Símbolo del sistema. Ambos llegan al mismo sitio. Lo que hace falta es que copies esta línea y la pegues ahí. Importante: ¡No aceptes aún la ventana que te aparecerá luego!
set RENDERDOC_HOOK_EGL=0
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-gpu-sandbox --gpu-startup-dialog --disable_direct_composition=1
La segunda línea tan solo deberías cambiarla si tienes Chrome en otra localización. Si no cuál es, si tienes el icono de acceso directo del navegador, púlsalo con el botón derecho del ratón y selecciona Abrir ubicación del archivo. En la carpeta que se abrirá se verá en un formato similar ("C:\Program Files...").

Renderdoc inyectando.
¡No cierres las ventanas que se abran!

Entonces se abrirá dos ventanas de Chrome, una donde no aparece nada, y otra pequeña con el mensaje Gpu starting with pid: [Número]. ¡No lo cierres aún! Ve a Renderdoc y, en la Pestaña de Inject into Process, busca "Chrome" y selecciona aquel que ponga "Google Chrome Gpu" (doble clic o , cuyo número coincidirá con el de la pequeña ventana que no debías cerrar. El número cambia cada vez que lo haces. 

Chrome con la inyección.

Ahora puedes cerrar la ventana pequeña de Chrome. En la grande, que estaba en blanco, te diriges a Google Maps o Google Earth (Web). Es importante que esté activa la vista 3D. Dirígete al lugar que quieras capturar. En Google Maps, presiona Impr Pant (Capturar pantalla) mientras mueves lo que vas a capturar (clic y arrastra a los lados). En Google Earth no hace falta mover nada, tan solo pulsar Impr Pant.

En lugar de Google Maps o Google Earth, se puede usar Mapy.cz y algunas webs con vista 3D.

Mientras lo hagas, en el código te saldrá el número de capturas que hayas tomado y, en Renderdoc, en la pestaña que habíamos abierto, saldrán las imágenes. Si la captura es buena, puedes hacer doble clic en una ySelecciona las imágenes, clic derecho con el ratón y guardar (Save All) como archivo .rdc.

Ventana de preferencias.
Rojo: cambiar idioma. Amarillo: Instalar complemento externo.

Ahora es cuando abres Blender. Antes que nada, asegúrate que está en inglés. Puedes cambiarlo en Editar>Preferencias>Interfaz>Traducción y elegir Inglés (English). Para volver a ponerlo en español cuando termines, el proceso es el mismo, pero seleccionas Spanish (Español) que está justo debajo. En esas mismas preferencias, en Complementos, pulsas Instalar/Install para instalar el archivo de MapsModelsImporter que te has descargado y descomprimido.

Importador de archivos .rdc.

Una vez hecho, podrás importar los archivos en File>Import>Google Maps Capture (.rdc). Si lo has capturado bien, Blender está en inglés y ha cumplido todos los requisitos, tendrás el modelo 3D de la parte que hayas capturado junto con las texturas. Cuando más cerca la hayas tomado, más detallado será. De lejos, capturarás más, pero habrá más edificios deformes.

La ciudad de Cádiz en Blender.
La ciudad entera, pero los edificios de cerca son deformes.

Tarda unos segundos en cargarse. Te recomiendo tener preparada una carpeta para guardar todos los elementos que importes. Cuando importes, en la ventana que se abra, en Max Blocks, aumenta el número a, por ejemplo, 200. 

 

Con acercarse un poco, ya va aumentando mucho el detalle.

A veces solo parece que falla. P.ej. en algunas capturas, me aparecía una imagen de Italia y un desierto, que no había capturado, pero lo que sí había hecho aparecía diminuto, casi invisible. Seleccionad todos los archivos que importéis y agrandadlos si os pasa.

Para usar esto, te recomiendo paciencia y tomar muchas capturas. Puede que haya alguna parte de todo el proceso que no te salga un día y otro sí. De las capturas, puede que te funcionen unas pocas o te salgan y, de primeras, no tengas el resultado esperado.

0 comentarios:

Publicar un comentario