Dopo questo articolo del 2017, in cui proponevo l’utilizzo “eterodosso” ma efficace della fotogrammetria, vediamo ora un altro sistema per importare in Blender il 3D di Google Maps.

Prima di procedere con l’importazione occorre però impostare un ambiente di lavoro, quindi scaricare e installare le seguenti risorse*:

  1. Maps Models Importer, (Blender add-on)
  2. RenderDoc
  3. Blender
  4. Google Chrome

*Nota bene: in base alla versione utilizzata la procedura potrebbe non andare a buon fine. Consiglio quindi di valutare con attenzione la versione da utilizzare e mettere in conto di installare una versione differente qualora la procedure non andasse a buon fine. Per questo esempio sono state utilizzate Maps Models Importer v.0.6.2; RenderDoc v.1.25; Blender v.3.5.

Maps Models Importer e Google Chrome

Dalla pagina dedicata, scaricare il file .zip, per questo esempio la versione 0.6.2, e copiare il codice associato, così come indicato nella pagina di download:

C:\Windows\System32\cmd.exe /c "SET RENDERDOC_HOOK_EGL=0 && START "" ^"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe^" --disable-gpu-sandbox --gpu-startup-dialog"

In particolare ci occorre verificare questa porzione specifica del codice, relativa alla posizione del file eseguibile di Chrome:

 C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

Nel caso in cui l’installazione di Chrome segua un percorso differente, modificare questa porzione di codice secondo l’effettiva posizione del file chrome.exe.

Successivamente creiamo un collegamento sul desktop del file eseguibile chrome.exe presente nella cartella di installazione di Google Chrome. Ricordo che che per creare il collegamento è sufficiente fare click con il pulsante destro del mouse e cercare il comando “Crea collegamento”.

Una volta copiato il collegamento sul desktop, accediamo alle proprietà e modifichiamo il campo “Destinazione” con la stringa di codice che abbiamo precedentemente salvato:

C:\Windows\System32\cmd.exe /c "SET RENDERDOC_HOOK_EGL=0 && START "" ^"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe^" --disable-gpu-sandbox --gpu-startup-dialog"

A seguito di questa modifica l’icona cambiera aspetto. Senza preoccuparci di questo procediamo e apriamo un’istanza di Chrom facendo doppio click su questo collegamento. Si aprirà una schermata bianca e una piccola finestra con un id che dovremo appuntare e che cambierà ad ogni successiva riapertura di Chrome.

N.B. Lasciamo questa finestrella di avviso aperta senza nè chiuidere nè premere il pulsante “Ok”.

RenderDoc e Google Chrome

Ora è il momento di avviare il programma RenderDoc, che abbiamo precedentemente installato e dal menu principale accedere al percorso Tools -> Settings e nella sezione General Settings attivare l’impostazione “Enable process injection (restart required)”.

Riavviando il programma e accedendo dal menu principale avremo attivo il percorso File -> Inject into process.

Eseguiamo il comando Inject into process e all’apertura della relativa schermata cerchiamo il processo di Chrome con l’ID appuntato in precedenza:

Trovato il processo corrispondente (in questo esempio quello con ID n.9540) facciamo doppio click e avviamo la relativa schermata di controllo, e clicchiamo su pulsante “Ok” della finestrella in attesa di Chrome con l’indicazione dell’ID e finalmewnte possiamo vedere la nostra istanza di Chrome in modalità debug, riconoscibile per via del testo in sovraimpressione sull’angolo in alto a sinistra della finestra del browser.

Procediamo nella navigazione all’interno di questa istanza in modalità debug, e accediamo a Google Maps, attiviamo la modalità 3D “Globo” e navighiamo su un zona di interesse in cui sia attiva questa modalità.

Una volta individuata l’area, ruotare intorno alla visuale e attendere che siano caricati tutti gli elementi che compongono il 3D.

Successivamente si può ritornare su RenderDoc e avviare la modalità di “cattura”. consiglio di utilizzare il comando capture/trigger after delay, impostare un valore di una manciata di secondi e avviare il comando. Questo ritardo è utile, perché per unaq corretta importazione del 3D e necessario tornare su google maps e ruotare leggermente la vista durante l’avvio della procedura di acquisizione; si tratta di un piccolo “trick”, ma tant’è, importante che funzioni!

Nelle informazioni di debug del browser un breve testo ci segnalera che la cattura è stata eseguita. Successivamente dentro RenderDoc vedremo anche l’anteprima dell’acquisizione. Facciamo un doppio click sull’acquisizione e procediamo al salvataggio ( dal menu principale: File -> Save Capture as ) in formato .rdc. Il nome è la destinazione del file possono essere scelti a piacere.

N. B. L’ampiezza della vista influirà sulla quantità di dettagli registrati, sui tempi di elaborazione e sul peso del file.

Blender e importazione del 3D

Apriamo Blender e accediamo dal menu di navigazione principale ( Edit -> Preferences ) alla sezione preferenze e, nella sotto-sezione Add-ons, installiamo “Maps Models Importer” precedentemente scaricato e attiviamolo. In questo modo Blender potrà importare i file in formato .rdc.

L’importazione può richiedere diversi secondi, in relazione alle dimensione del file rdc. Talvolta l’importazione può non dare i risultati attesi, in questo caso ripetere la procedura cambiando leggermente il punto di vista all’interno di google maps.

Completata l’imprtazione, il modello già completo delle texture, sarà utilizzabile e modificabile liberamente all’interno di Blender.

Conclusioni

Questa procedura richiede un po’ di operazioni preliminari per creare l’ambiente di lavoro, ma una volta superata questa fase, l’importazione di porzioni di 3D da Google Maps è piuttosto semplice. Il sistema mostra certamente dei limiti, rispetto al controllo dei dati da importare, e presenta spesso degli errori con importazioni parziali, ma ha il vantaggio, una volta capito il flusso di lavoro, di essere piuttosto semplice e di arrivare dritto allo scopo.

Tags:

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.