2011-07-24

VTP ( prima parte ) - Virtual Terrain Project



Con oggi iniziamo un breve corso introduttivo all'uso di un software di visualizzazione 3D caratterizzato dalle ottime performance e dalla presenza, al suo interno, di potenti funzioni di trattamento dati territoriali.

VTerrain.org e' un progetto open source, che ha lo scopo di "promuovere la creazione di strumenti per gestire facilmente la costruzione di qualsiasi parte del mondo reale in una forma interattiva digitale 3D", come recita in neretto la prima pagina del suo sito web .

Virtual Terrain Project è nato circa venti anni fa per opera di Ben Discoe, un attivissimo programmatore C++ residente sull'isola grande delle Hawaii (beato lui !).
Gia' scorrendo le numerose pagine del sito, ci si rende conto di essere davanti ad una sorta di Wikipedia della visualizzazione territoriale, ma non solo. Infatti, VTerrain non e' solo documentazione aggiornata e approfondita, ma è anche concreta sperimentazione attraverso i moduli software che lo compongono, liberamente scaricabili e utilizzabili.
E vediamo di cosa si tratta.

VTerrain è composto da due programmi, essenzialmente: VTBuilder e Enviro.

VTBuilder si presenta come una mappa 2D della terra, su cui è possibile visualizzare, come in un Gis, materiale cartografico di diversa origine e formato. Si possono caricare e trasformare dati di elevazione ( DTM ) per unirli, tagliarli e adattarli alla propria necessità, che è quella della navigazione territoriale in tempo reale.
Il terreno può essere visualizzato con colori dipendenti dall'altezza, con una ortofoto aerea e corredato da elementi strutturali naturali, come alberi, o artificiali, come palizzate, strade, linee elettriche ed edifici.

Un breve manuale di istruzione di VTBuilder, in italiano, è disponibile a questo indirizzo:

La navigazione tridimensionale vera e propria è realizzata attraverso Enviro, l'altro programma di VTerrain.

Un breve manuale di istruzioni di Enviro, in italiano è disponibile a questo indirizzo:

Vediamo come è possibile utilizzare VTerrain per costruire, da zero un piccolo modello di città.

Il primo passo è quello di creare un terreno. Per questo utilizzeremo VTBuilder. Avremo ovviamente già installato VTP e le librerie necessarie, seguendo le istruzioni nella pagina http://vterrain.org/Notify/

Dopo l'installazione, troveremo VTP nella directory c:\Programmi\VTP\Apps\
Lanciamo VTBuilder. Ci troveremo davanti ad una mappa del mondo in proiezione piana. Nella riga in basso vediamo che si tratta di coordinate geografiche Wgs longitudine latitudine; sarà possibile trasformare le coordinate in qualunque altro tipo previsto dagli standard internazionali.


Andiamo a scegliere la zona che vogliamo rappresentare, utilizzando il bottone lente di ingrandimento, e selezionando due punti del rettangolo di inquadramento. Sceglieremo la zona del Golfo di Gaeta.
Creeremo in quest'area un terreno piatto, per il momento, non avendo ancora a disposizione un DTM Data Terrain Model della zona. Selezioniamo il bottone Area, il quart'ultimo della palette in alto. Disegniamo un altro rettangolo, che sarà il nostro terreno.


Ora, premiamo il bottone Nuovo Livello, il quarto da sinistra. Nel pannello scegliamo Elevazione dalla lista e poi premiamo OK. Verrà disegnato un rettangolo verde. Se passiamo con il mouse sul rettangolo, vedremo comparire un valore di quota 1000.00 m in basso a destra. Possiamo salvare su disco il terreno, tramite la funzione Salva Livello Come... posto nel menu Livello.


Ovviamente, l'aver realizzato un terreno rettangolare piatto posto a mille metri di altezza per rappresentare una linea di costa, non può essere considerato un obiettivo soddisfacente. Però questa veloce operazione ci può essere necessaria per varie ragioni, che vediamo qui di seguito.

Prima ragione: recuperare i valori delle coordinate di un'area per trasformarle da un sistema ad un altro. Infatti, essendo basato VTBuilder sulla tecnologia Open Source PROJ4, è allineato allo standard di trasformazione di coordinate usato da tutti i software professionali, compresa la possibilità di aggiungere i valori di shift regionali.

Seconda ragione: esportare l'area in formati standard, come GeoTIFF, VRML, XYZ e ASCII Grid, per poter inquadrare l'area con un altro software. E' comunque da notare che già il formato BT, nativo di Virtual Terrain, è tra quelli previsti su quasi tutti i software commerciali e quelli gratuiti.

Terza ragione: vogliamo mostrare come visualizzare un terreno base con Enviro, il visualizzatore 3D di Virtual Terrain Project.

Per questa terza ragione, proviamo a lanciare, dal terminale:

c:\Programmi\VTP\Apps\Enviro.exe -elev=nomedelfile.bt

Ovviamente, "nomedelfile" va sostituito dal nome che abbiamo dato al file. Partirà Enviro, visualizzando la superficie orizzontale. Possiamo spostarci verso l'alto premendo il tasto destro del mouse e muovendo il cursore verso l'alto, continuando a tenere premuto il tasto. Con le frecce della tastiera possiamo avvicinarci e allontanarci, guardare verso sinistra o destra.

Quello che ci interessa adesso è però far capire è il meccanismo con cui Enviro riesce a visualizzare il territorio in 3D ad un numero di fotogrammi al secondo particolarmente elevato, anche con dati molto complessi. Per fare questo, scegliamo la visualizzazione a "fil di ferro" o wire-frame, con Ctrl-W della tastiera; vedremo qualcosa di simile all'immagine seguente.


Il rettangolo del terreno è diviso in altri triangoli, disposti su una griglia, che avvicinandoci diventa più fitta, mentre diventa meno dettagliata allontanandoci. Questa tecnica è detta LOD, cioè Livello di Dettaglio, e serve a semplificare il modello a seconda della distanza del punto di vista. In questo modo, viene ottimizzato il tempo di elaborazione, usandolo per visualizzare meglio le cose vicine e trascurando le cose più lontane. Premendo di nuovo Ctrl-W torneremo alla visualizzazione della superficie.

Dopo aver fatto un pò di pratica con la navigazione in Enviro, torniamo a VTBuilder.

Nel menu Livello scegliamo "Proprietà Livello". Vedremo i parametri delle superfici che abbiamo creato:

Dimensione griglia: 1025 x 1025
Spaziatura griglia: 0.001011 x 0.000197
Virgola mobile: No
Minima elevazione: 1000.00
Massima elevazione: 1000.00
Dimensione in memoria: 2101250 bytes (2.0 MB)
Scala altezze (metri per unità verticale): 1.000000

Più in basso troviamo i limiti del rettangolo di ingombro del territorio selezionato sulla colonna dei Layers, a sinistra di VTBuilder, tra quelli di tipo Elevazione.

In Enviro sono visualizzabili griglie territoriali con un numero di punti per lato "in potenza di due". Per comprendere meglio questo concetto, andiamo sotto il menu "Strumento Area" e scegliamo la voce "Somma e Ricampiona Elevazione".

Nel riquadro "Campionamento" vediamo la Dimensione della Griglia, e al di sotto l'opzione, in realtà obbligatoria, "Vincolo Dimensione: potenza di 2+1 per LOD terreno", selezionando la quale vengono attivati due bottoni, marcati con "<< Inferiore" e ">> Maggiore", premendo i quali vedremo cambiare il dettaglio dei dati riportati. Ovviamente, vediamo che al crescere dalla dimensione della griglia diminuiscono i valori della grandezza della spaziatura della griglia, mentre diminuendo i punti della griglia aumenta la spaziatura tra i punti. E' da notare che in VTP la griglia non deve essere quadrata, come invece accade con altri software, anche commerciali.

Nella prossima parte di questo corso vedremo come passare da un terreno piatto a qualcosa di molto più interessante.


BobMaX