2012-10-14

VTerrain plugin per QGis - versione 0.7

Rilasciata la versione 0.7 di VTerrain plugin per QGis.

http://plugins.qgis.org/plugins/VTerrain/

Per installare il plugin, utilizzate il pannello "Plugins" > "Fetch Python Plugins" e nel campo di ricerca inserite "VTerrain" e cliccate sul bottone "Install/Upgrade".


In questa versione è stato (finalmente) risolto un problema in QGis nella visualizzazione delle coordinate nella tabella dei punti provenienti da Enviro.



Buon uso

BobMaX

2012-09-21

Recensione libro: "WebGL_Up_and_Running" di Tony Parisi

[ immagine da http://chrysaora.com ]

Se avete una scheda grafica "moderna" e mezz'ora del vostro tempo da dedicare allo studio dell'innovazione nel campo del Web-3D, continuate a leggere questo post.

Se avete solo un vecchio computer datato, sarete informati su cosa vi state perdendo.



La pagina da cui partire, per scoprire il tutto e' questa:


Dopo aver sperimentato se il vostro PC risponde a WebGL, cliccando su una delle immagini visualizzate nella pagina, ed eventualmente esservi entusiasmati dalle animazioni o delusi dalla loro mancanza, cominciate a fare attenzione alla prima immagine in alto a sinistra, nella griglia.

Gli elementi ci sono tutti: Tony Parisi, uno degli ideatori del VRML ( che è uno standard per la definizione 3D ),  il WebGL ( l'evoluzione su tecnologia web dell'OpenGL ) e three.js (una libreria javascript per programmare la visualizzazione tridimensionale in pagine internet).

Il tutto è raccolto in un libro: "WebGL_Up_and_Running", edito da O'REILLY.




Si tratta di un compendio di 213 pagine che riunisce le informazioni che è necessario conoscere per essere aggiornati sullo "stato dell'arte" della programmazione 3D.  In questo link potete trovare un estratto del libro.

Vengono affrontati tutti i temi relativi alla "Anatomia di una Applicazione WebGL", quali il "Canvas", la "Vieport", "Camera", "Projections" e gli "Shaders".

Si passa poi a trattare "Buffers", "ArrayBuffer" e "Typed Arrays" e le primitive grafiche, con esempi pronti da usare e modificare.

Dopo una introduzione del WebGL e delle problematiche della visualizzazione tridimensionale in tempo reale, Parisi spiega come installare "three.js" sul proprio server web, in modo da riuscire a visualizzare immediatamente gli esempi inclusi nella libreria.

Inoltre, nel libro vengono riportati altri esempi, il cui codice sorgente è scaricabile dal sito O'REILLY, che portano passo passo a creare la visualizzazione in rete di un proprio oggetto 3D.

E' spiegato, infatti, come è possibile installare su Blender un esportatore in formato json della geometria 3D, in modo che possa essere visualizzato da "three.js".

Il tutto, in un modo discorsivo ed interessante, che rende chiaro e facile capire e utilizzare javascript, anche a non programmatori.

Alla fine, si trovano raccolti in questo libro tutta una serie di informazioni che difficilmente sono reperibili così organizzate, cercando in rete.

Un esempio ?  Come si fa ad attivare la visualizzazione in Safari, su MacOSX, della modalità WebGL?  Qualcuno lo sa ?  Qualcuno ci è riuscito ?  Io si, dopo aver letto questo libro.


Insomma, WebGL è una grande cosa, anche se è, purtroppo, possibile soltanto su macchine di ultima generazione.

Parleremo diffusamente di WebGL e delle sue implicazioni nella visualizzazione territoriale, da ora in poi, in questo blog, e sperimenteremo le sue possibilità, applicandole.


BobMaX


Link utili:

Per sperimentare WebGL su codice sorgente in three.js  http://mrdoob.com/145/code_editor

Documentazione su three.js  http://mrdoob.github.com/three.js/docs/51/

Una breve scheda su Toni Parisi   http://www.oreillynet.com/pub/au/5199


COLLADA2JSON project  and WebGL  Meetup    link

Confronto tra librerie WebGL :  http://weblog.benjaminsommer.com/blog/2012/05/13/comparison-of-webgl-framework-apis/

Altri esempi di WebGL :  http://code.google.com/p/webglsamples/

2012-06-27

OpenSceneGraph

All'interno del software di Virtual Terrain Project  c'è una importante e potente libreria grafica di visualizzazione territoriale, basata sul concetto di "scene-grafo", che è un elenco di oggetti grafici tridimensionali legati insieme ad albero, in cui ogni oggetto ha i suoi parametri che possono dipendere o  trasmettere i valori ai nodi precedenti o seguenti.
Tale concetto ha origine in formati e linguaggi 3D come OpenInventor, come il VRML e X3D, Collada DAE e ... OpenSceneGraph !
La potenza di OpenSceneGraph sta nella sua flessibilità, con il meccanismo di estensione a plugin, con cui si possono "inglobare" virtualmente tutti i formati grafici esistenti, e nel fatto che esso è presente praticamente su tutte le piattaforme, intese come sistemi operativi (Windows, Linux, MacOSX...).

Inoltre, OpenSceneGraph è ... open source.

Come si programma OpenSceneGraph ?

A questo proposito la documentazione è importante quanto gli esempi di codice.  E cosa c'e' di meglio di un libro?


Ricette di OpenSceneGraph 3

E' di prossima uscita il libro "OpenSceneGraph 3 Cookbook" ovvero "risposte veloci a problemi comuni".
Si tratta di 80 "ricette" che mostrano tecniche di programmazione 3D avanzate con OpenSceneGraph, il potente motore di rendering territoriale real time, open source, prodotto da Robert Osfield e altri programmatori sparsi per il mondo.
Il libro, di oltre 400 pagine, scritto da Rui Wang e Xuelei Qian, si divide in dieci capitoli, che affrontano le principali problematiche relative alla programmazione di OpenSceneGraph, dalla configurazione di CMake, alla compilazione su device mobili, alla creazione di oggetti dinamici, alle superfici NURBS.

In sostanza, ci sembra essere un libro necessario a tutti quelli che professionalmente o per passione si occupano di 3D territoriale, e che hanno bisogno di avere raccolte insieme e pronte ad essere consultate tutta una serie di informazioni essenziali ed avanzate per poter programmare OpenSceneGraph e le proprie applicazioni 3D con successo.

Prima ricetta per iniziare:  CMake e la preparazione dell'ambiente di sviluppo.
Come creare la base per un plugin di OpenSceneGraph.  Vengono spiegati tutti i vari passaggi necessari per configurare la macchina, le variabili di ambiente ed il loro significato e uso, mostrando le schermate del terminale durante la compilazione dei moduli.  Sono tutte informazioni che difficilmente Ë possibile trovare insieme organicamente, e che in questo modo risultano essere molto utili, se non essenziali, come in qualche caso.

Seconda ricetta: come portare un programma scritto con OpenSceneGraph a girare su differenti piattaforme, Windows, Linux, MacOSX.
Il meccanismo di "impacchettamento" viene realizzato attraverso "CPack", un sistema integrato con CMake, che permette di creare automaticamente gli RPM, DEB e GZIP o gli installer di Windows del proprio programma, per la distribuzione.

Il libro spiega anche (finalmente ?) agli utenti di MacOSX come utilizzare XCode per creare le proprie applicazioni OpenSceneGraph.  Chi conosce (come me) la programmazione MacOSX sa quanto puo' essere utile qualunque informazione a riguardo, organizzata e pronta.

Viene affrontato anche il tema dello sviluppo di applicazioni 3D sulle varie piattaforme mobili, come Android e iOS, incluso iPhone e iPad.

Seguendo le "ricette" dei capitoli del libro, si riesce a creare una propria applicazione 3D Territoriale da zero, il che non e' poco.




2012-06-02

QGis - VTerrain plugin - Caricamento progetti VTP

La nuova versione di VTerrain plugin per QGis, di prossimo rilascio, contiene importanti funzioni di visualizzazione dei formati di elevazione di Virtual Terrain Project.

La prima novità riguarda il caricamento del file ITF, Interchange Tin Format, il potente formato per i Triangulated Irregular Network, di cui abbiamo già parlato più volte in questo blog, che permette la memorizzazione di superfici provenienti da rilevamenti LiDAR e SfM, ovvero Structure From Motion, una tecnica che estrae nuvole di punti 3D, a partire esclusivamente da foto.

Il plugin visualizza, tramite Enviro, il file ITF corrispondente all'immagine 2D in formato TIF, con lo stesso nome, caricata in QGis.

Nell'esempio che segue, abbiamo caricato  l'immagine a colori "duomotin.itf.tif" in QGis,  e abbiamo visualizzato "duomotin.itf"con Enviro, tramite la chiamata del plugin VTerrain.




Con la stessa modalità possiamo caricare in QGis e conseguentemente visualizzare in 3D, tramite VTerrain plugin, anche il file grid in formato BT, utilizzando un'immagine chiamata "nomefile.bt.tif".

Ovviamente, rimane attiva la possibilità di caricare direttamente il file BT all'interno di QGis, essendo uno dei formati previsti dalla libreria GDAL, e visualizzarlo con Enviro.

La seconda importante novità del plugin VTerrain è il caricamento dei progetti Enviro, sempre tramite un file TIF, che dovrà chiamarsi  "NomeProgetto.vtp.tif".    In questo caso, verranno utilizzati tutti i parametri impostati nel progetto Enviro, come l'ortofoto, i livelli vettoriali, gli edifici, le strutture e gli alberi e le viste salvate.

Nelle immagini seguenti, vediamo il modello di Gaeta, completo con il castello 3D realizzato da Antonello Buccella (che ringraziamo), a partire dall'immagine ".vtp.tif" caricata in QGis.




Ma non finisce qui.
Per ultima, ma non perché meno importante, una nuova funzione del plugin permette di visualizzare in un layer QGis i punti 3D selezionati in Enviro, potendo così effettuare misurazioni, esportare coordinate, disegnare vettori, eccetera.    Alla fantasia e l'immaginazione di tutti inventare utilizzi per questa funzione  VTerrain_XYZ.





Per partecipare al beta test di tali funzioni, inviate una eMail, con oggetto:

VTERRAIN_PLUGIN_BETA_TESTER

all'indirizzo:

exporttocanoma @ gmail . com




2012-05-12

VTP (nona parte) - Funzioni di export del TIN di VTBuilder


VTBuilder, il programma di trattamento geografico di Virtual Terrain Project, elabora i dati di elevazione per creare la superficie del terreno per Enviro, il visualizzatore 3D.

Le numerose funzioni di VTBuilder permettono, tra l'altro, di caricare una lista di coordinate X Y Z di punti distribuiti irregolarmente e di creare con essi una superficie TIN, ovvero Triangulated Irregular Network.

Il file usato da VTBuilder (e quindi anche da Enviro), per la superficie TIN è  ITF, documentato in questa pagina:


Si tratta di un formato molto semplice e compatto, diviso in tre parti: 

- Header (contenente il tipo di sistema di riferimento geografico, il rettangolo di ingombro)
- Tabella Coordinate
- Lista dei Triangoli



Tramite la funzione di Export è possibile salvare il TIN di VTBuilder in altri formati, in modo da poterlo caricare in altri programmi.

I formati previsti sono:

- GMS (Aquaveo) .tin
- Collada DAE
- Vrml    WRL
- Alias Wavefront OBJ

Abbiamo elaborato la superficie esportata tramite vari programmi, come ParaView, MeshLab, Blender, SketchUp, 3DStudio Max.

Di seguito, le schermate prese dai vari programmi appena elencati.







Le funzioni di export in DAE, WRL e OBJ  di VTBuilder sono in fase di test e verranno rilasciate al più presto.

Per partecipare al beta test di tali funzioni, inviate una eMail, con oggetto:

TIN_EXPORT_BETA_TESTER

all'indirizzo:

exporttocanoma @ gmail . com

2012-02-04

VTP (ottava parte) - Registrare Sequenze Animate 3D con Enviro

Abbiamo già visto nella terza parte di questo tutorial come è possibile con VTP Enviro salvare punti di vista interessanti e creare sequenze animate.
In questa parte vedremo questo con maggiore dettaglio, spiegando le tecniche per ottenere video sequenze da poter includere in DVD, ad una buona risoluzione.

La funzione base di Enviro è quella di poter salvare le animazioni come sequenza di singoli fotogrammi in formato Jpeg.  Questa operazione, tuttavia risulta essere lunga e laboriosa, e poco praticabile, specie quando si hanno i tempi serrati normalmente a disposizione in questi casi.

Una ottima alternativa è costituita da un prodotto libero, gratuito e open source chiamato "CamStudio"  che permette di registrare in un file AVI quello che avviene in tempo reale in una zona selezionata del video.  Il numero di fotogrammi che questo software è in grado di catturare è sufficientemente elevato per risultare fluido nella produzione di un DVD in alta risoluzione con formato panoramico.

Quindi, come prima cosa procuriamoci questo software di cattura video, anche se "purtroppo" esso è previsto soltanto su piattaforma Windows.

Il primo parametro da impostare è quello relativo alla porzione di monitor che si vuole catturare.  Per fare questo, lanciamo Enviro ed impostiamo, nel pannello dei "settaggi globali", la grandezza della finestra di default.  Volendo salvare il filmato per un DVD panoramico, detto "1080i", impostiamo questa risoluzione su Enviro.  Inseriamo quindi 1080 x 580.

Fissiamo anche la posizione di Enviro in un punto del video, in genere in alto a sinistra, in modo che non interferisca con altri eventuali pannelli che si dovranno tenere aperti durante la registrazione del video.  Uno dei pannelli, ad esempio, può essere quello dei punti di vista salvati e dei parametri dell'animazione di Enviro; un altro pannello, è quello del programma di capture, con i bottoni di inizio e stop salvataggio.

Facciamo partire CamStudioRecorder e scegliamo l'opzione che ci permette di registrare una porzione del monitor.  Ovviamente, impostiamo il rettangolo della vista 3D di VTP.

E' possibile, con CamStudio, impostare anche due tasti per far partire e fermare la registrazione.

Il gioco è fatto.  Facciamo partire la registrazione, e subito dopo il percorso di VTP.  Alla fine del percorso, fermiamo la registrazione.  Il video in formato AVI sarà salvato con il nome formato dalla data e l'ora della registrazione, come default; si può modificare questo settario con CamStudio, e fare in modo che il nome sia scelto da noi.

Una volta salvato i video delle varie scene che ci occorrono, potremo importarli nel programma di montaggio video da noi preferito, per effettuare i tagli e l'aspetto finale da noi voluto.


Il seguente è un interessante video in proposito, realizzato da Marco Gualdrini, esperto di VTP.





BobMaX

2012-01-15

Installare VTP su Linux Debian

I pacchetti di VTP sono stati inseriti nella repository di Linux ArcheOS.
Queste sono le instruzioni per l'installazione:





1) Aggiungere queste righe al vostro /etc/apt/sources.list:

deb http://repos.archeos.eu/apt/ theodoric main contrib non-free
deb-src http://repos.archeos.eu/apt/ theodoric main contrib non-free



2) Aprire Synaptic o un altro sistema di installazione sulla vostra versione di Linux.


3) Aggiornare la lista di Synaptic, tramite il bottone "ricarica", o similare.


4) Selezionare ed installare singolarmente i seguenti, nell'ordine seguente:

squish
quikgrid
mini
proj-vtp
gdal-vtp
vtp




5) A questo punto avrete sotto il menu "Applications" una voce "Altro" in cui troverete i link per lanciare i tre applicativi di VirtualTerrainProject:
VTBuilder
CManager
Enviro




6) Create sotto la vostra Home, una directory "vtp"


7) Dovete copiare, sotto la vostra , il contenuto completo della directory:

/usr/share/archeos/vtp-svn111229/TerrainApps/Data


8) Create sotto la vostra "vtp" una sottodirectory "Apps" e copiateci dentro la directory WorldMap


9)  E' tutto:   potete lanciare adesso VTBuilder, Enviro o CManager.



Ringraziamo Alessandro Bezzi e Luca Bezzi, del Team ArcheOS per il grande lavoro fatto.


BobMaX


Per informazioni, dettagli e problemi con l'installazione, inviatemi una eMail:
exporttocanoma at gmail dot com




2011-11-23

VTerrain plugin per QGis

Per installare il plugin "VTerrain" su QGis, è sufficiente cercare "VTerrain" nella lista dei plugin del pannello "Installazione QGIS Python Plugins", selezionarlo e premere il bottone "Installa/Aggiorna plugin".
Essendo il plugin VTerrain basato sul programma Enviro di VTP, occorrerà anche installare VTP sulla propria macchina.



[Obsoleto]:
Per installare il plugin "VTerrain" su QGis, bisogna inserire il seguente link nella "Repository" del pannello di controllo dei plugin python:

http://gisinnova2.oneminutesite.it/files/7-python_plugins.xml

Questo video mostra la sequenza delle operazioni necessarie per l'installazione



Bisogna inoltre installare i programmi di VTerrain:

per la versione Windows:

VTP Installer
VC 2008 SP1 Redistributable Package

e seguire le istruzioni di dettaglio su:

http://vterrain.org/Download/Binaries.html


Per quanto riguarda Linux, è in fase di rilascio la installazione, tramite apt-get, per Debian e Ubuntu.

Per quanto riguarda MacOSX, è previsto il rilascio per inizio 2012.


Questo video mostra l'uso del plugin all'interno di una live DVD linux Ubuntu

 (Virtual Terrain Project - VTerrain.org)


( Animazione Territoriale  di Roberto Angeletti )



(Elaborazione dati  OpenDem.info e OpenStreetMap.org)


 (Modello Tridimensionale di Antonello Buccella)


Dettagli sul plugin VTerrain per QGis:

I plugin di QGis vengono installati nelle seguenti directory, a seconda del sistema operativo:
  • UNIX/Mac: ~/.qgis/python/plugin
  • Windows: ~/.qgis/python/plugins
La directory "Home" (rappresentata sopra da ~) su Windows normalmente  è  "C:\Documents and Settings\(utente)", mentre su UNIX e Mac essa è più nascosta, ed in genere non è visibile tramite la comune interfaccia di "risorse del sistema", ma è necessario ricorrere al terminale, dove digitare:

cd  /home/(utente)/.qgis/python/plugins/

ove occorre copiare la directory VTerrain, contenente i file:
VTerrain.py
Ui_VTerrain.py      
Makefile          
icon.png           
resources.py   
Ui_VTerrain.ui      
vtpopen.py
icon_VTerrain.png  
resources.pyc 
VTerrainDialog.py
__init__.py        
resources.qrc  

Queste  risorse verranno elaborate da QGis durante la partenza del programma.

Questo e' il link ad un live DVD Linux Ubuntu che contiene VTP e il plugin:  Custom.iso

Se vi viene richiesta una password, inviatemi una eMail a:

exporttocanoma at gmail dot com



BobMaX



Link interessanti:  http://arc-team-open-research.blogspot.com/
http://arc-team-open-research.blogspot.com/2011/12/qgis-and-virtual-terrain-project.html

2011-10-09

OpenStreetMap: disegnare edifici

OpenStreetMap (OSM) è la principale repository di dati vettoriali liberi riguardanti infra-strutture urbane e territoriali.  Principalmente, questi dati riguardano gli assi stradali, come si può supporre dallo stesso nome del progetto, ma basta visitare la sua pagina web per rendersi conto che i livelli visualizzati sono molti altri.



Nell'immagine possiamo vedere, infatti, oltre agli assi stradali, anche i parchi, i fiumi, e soprattutto gli edifici.  Attualmente, il numero di edifici inseriti in OSM è molto alto, anche la copertura è "a macchia di leopardo".  In Italia possiamo trovare una notevole copertura di edificato in Trentino, probabilmente dovuta a donazioni di cartografia effettuata da enti pubblici, ma cominciano a comparire interi quartieri anche nelle regioni centrali.
In totale, ad oggi, nel livello Buildings di Italia OSM possiamo contare circa 1 milione e 400 mila poligoni.



La cosa interessante è che, tra i tag associati ai dati di OpenStreetMap è previsto un campo altezza, ovvero "height=".

Se andiamo a consultare le pagine wiki della documentazione di OSM, troviamo molte cose relative agli edifici, sia già implementate, sia previste.

http://wiki.openstreetmap.org/wiki/Key:building
http://wiki.openstreetmap.org/wiki/Proposed_features/Building_attributes


Per quanto riguarda le modalità di inserimento degli edifici all'interno di OpenStreetMap, oltre alla già detta donazione cartografica da parte di volenterosi enti pubblici, vedremo ora quella più divertente, anche se molto più laboriosa, del disegno all'interno dell'editor grafico JOSM, attraverso il plugin Buildings.

Il video che segue ne dimostra l'uso.



Nell'immagine vediamo l'immagine fotografica di Bing maps come sfondo di supporto al disegno.


Selezionando la funzione "Buildings" è possibile disegnare un rettangolo con una rotazione generica, inserendo tre punti con il puntatore del mouse.


Dopo aver disegnato il rettangolo, che potrà essere successivamente modificato, aggiungendo altri vertici per meglio seguire la forma dell'edificio, possiamo inserire il tag "height", con l'altezza dell'edificio stesso.
Normalmente, l'informazione che individua un edificio, in OSM, è il tag "building=yes". Possono essere aggiunti anche altri tag, come il nome dell'edificio o altri, tra quelli previsti.

Non vi resta che scaricare JOSM sulla vostra macchina e provare ad aggiungere il vostro quartiere su OpenStreetMap. Buon divertimento!


BobMaX

Link interessanti:
http://blog.openstreetmap.it/
OpenStreetMap per principianti
Documentazione sui possibili elementi OSM
Documentazione sui Buildings OSM
JOSM Buildings plugin
JOSM Terracer plugin

2011-09-10

VTP (settima parte) - Ricompilare per Linux


"Bene.  Mi hai convinto.  Mi serve VTP.  Però io uso solo Linux. "

Questa è la frase tipica dell'utente GIS, recentemente.  Ebbene, è vero: il sito web di  VTerrain.org  dichiara più volte che VTP esiste anche per Linux e MacOSX.  Però, contrariamente a quello che accade per Windows, Virtual Terrain Project non distribuisce un installatore per le altre piattaforme.
Come possiamo risolvere il problema ?   Rimboccandosi le maniche e ricompilando tutto, a partire dai sorgenti.  Impresa impossibile ?  Noi ci siamo riusciti, e vi descriveremo come.

Prima di tutto, scegliamo una versione di Linux.  Ci siamo informati, ed abbiamo scoperto che i programmatori di VTP usano Ubuntu Linux 10.04 32 bit.  

Perfetto.  Come per la frase tipica che abbiamo visto prima, "Io uso solo MacOSX".  Quindi, per fare l'impresa ancora più impossibile, mi installo una VirtualBOX, con una macchina virtuale Linux Ubuntu 10.04 32 bit, con un disco virtuale da 20 giga, dinamico.  Più Virtuale di così...!



Nella macchina Virtuale sul nostro Mac mini ricompileremo Virtual Terrain per Linux.  Comunque, è meglio chiarire che VirtualBox (o un altro tipo di macchina virtuale) è necessaria soltanto per rendermi disponibile Linux in una finestra del mio sistema MacOSX, senza dover "spianare un computer" e formattare un disco reale.  I possessori di un computer Linux non devono installare VirtualBox (o simili) per ricompilare VTP.

Comunque, cominciamo.  Ci colleghiamo alla pagina  unix_build  di VTerrain.org, per studiarci le istruzioni di compilazione.  Sappiamo, comunque, che non sempre le istruzioni sono aggiornate all'ultima versione dei sorgenti e che, quindi, molto facilmente potranno uscir fuori errori.


VTP è costituito essenzialmente da due programmi, come abbiamo più volte visto in questa serie di articoli:  VTBuilder e Enviro.
Entrambi i programmi utilizzano una serie di librerie software, che in gran parte sono le stesse utilizzate da tutti i programmi Gis OpenSource, come ad esempio QuantumGIS.
Queste librerie sono:

GDAL
PROJ.4
LIBPNG

e poi molte altre...

In più, il rendering 3D di VTP Enviro è basato su OpenSceneGraph, che è una formidabile libreria per la visualizzazione territoriale in tempo reale, utilizzata anche in simulatori di volo.



Riassumendo, in questa pagina di VTerrain.org sono descritte tutte le librerie necessarie.



Ma prima di iniziare a procurarci le librerie, scaricandole dalla rete, conviene descrivere cosa si intende per "ricompilare" un'applicazione su Linux Ubuntu, o comunque in un ambiente Open Source.

"Open Source" sta a significare che i listati originali del programma sono disponibili per essere adattati alle proprie esigenze, o più semplicemente per essere "portati" su una "piattaforma" non ancora prevista.

Come prima cosa, occorre assicurarci di avere il complilatore installato sulla nostra macchina.  Se abbiamo dubbi, probabilmente non lo abbiamo.  Per procurarcelo, scriviamo, nella finestra del terminale:

sudo apt-get install g++


Questa istruzione ci richiederà la password di amministratore, e dopo qualche tempo troveremo installato il compilatore C++ sulla macchina, pronto per l'uso.

Senza volerci dilungare troppo, una volta ottenuti i "sorgenti" di un programma, per ottenere il file eseguibile occorre aprire un terminale del sistema operativo, posizionarsi nella directory dei sorgenti e occorre scrivere:

./configure

Questa istruzione preparerà una serie di file, contenenti variabili di ambiente specifiche per la propria macchina.  Una volta terminata la configurazione, occorre scrivere:

make

Questa operazione "compila" tutti i sorgenti del programma, creando file contenenti istruzioni in linguaggio macchina, che poi verranno montati dal "Linker" insieme alle librerie necessarie.

Alla fine occorre scrivere:

sudo make install

che costituisce la fase di installazione del programma (o della libreria).

Per queste operazioni non è necessario essere un programmatore, anche se, chiaramente, questo non guasta. Per prima cosa, quindi, impariamo a trovare il "terminale" su Linux Ubuntu (mi ripeto: versione 10.04) .   Troviamo "Terminale" nel menu "Applicazioni", sotto "Accessori".






Nella finestra del terminale, che si aprirà nella directory base della propria utenza, andiamo a scrivere:

svn checkout http://vtp.googlecode.com/svn/trunk/ vtp

per procurarci l'ultima versione dei sorgenti del programma.  Se non siamo dei programmatori, molto probabilmente questa istruzione ci darà errore, perché non è installato sul nostro computer il necessario programma. Comunque, sul terminale sarà indicato cosa dobbiamo fare per installare "svn".

Se vogliamo semplificare il problema, scarichiamo i sorgenti con un file ZIP che ne contiene la versione da noi provata :

http://vterrain.org/dist/vtp-src-111016.zip

Creiamo una directory chiamata "vtp" sotto la nostra "/home".  Poi inseriamo il contenuto dello ZIP al di sotto della nostra "vtp".


La struttura gerarchica delle directory di sviluppo di VTP è composta da due gruppi principali:  TerrainSDK, contenente le librerie del programma e TerrainApps, con le applicazioni vere e proprie.

Noi abbiamo aggiunto una ulteriore directory, "deps", in cui andremo ad inserire le librerie esterne che andremo a scaricare, con l'istruzione:

svn checkout http://vtp.googlecode.com/svn/deps/ deps

Ottenute così alcune delle altre librerie necessarie (ma non tutte...) possiamo iniziare a "ricompilare".
Per farlo, ci occorrono alcune componenti:  CMake ed il compilatore vero e proprio.

Possiamo scaricare CMake tramite questo link:

http://www.cmake.org/files/v2.8/cmake-2.8.6-Linux-i386.tar.gz

Troveremo "cmake-gui" nella directory "bin" all'interno di "cmake-2.8.6-Linux-i386".


Lanciando "cmake-gui" ci troveremo davanti la finestra di CMake, che ci permette di configurare il progetto di ricompilazione di VTP, e delle altre componenti che andremo a sviluppare.



CMake usa dei file di configurazione ("CMakeList.txt") rilasciati con i sorgenti, contenenti la lista delle librerie e le variabili necessarie.  Nell'immagine che segue vediamo un esempio del contenuto di un file "CMakeList.txt" di VTP.  Non sarà necessario per noi mai modificare questo file, quindi, chiudiamolo lasciandolo invariato, e andiamolo, invece, ad utilizzare con CMake.




Come prima cosa dobbiamo indicare a CMake la directory dei sorgenti, selezionando il bottone "Browse Source".   Allo stesso modo, dobbiamo indicare la directory di uscita, con il bottone "Browse Build".   Noi abbiamo scelto di posizionare il prodotto di uscita nella directory che abbiamo chiamato "build", che abbiamo posto direttamente al di sotto della directory "vtp".

A questo punto premiamo il bottone "Configure".  Dopo qualche tempo di elaborazione, molte delle righe (se non tutte) della tabella centrale della finestra di CMake diventeranno rosse.  Questo significa che è stato riscontrato un errore. Questo è perfettamente normale, in CMake.  E', potremmo dire, la ragione principale dell'esistenza stessa di CMake.

Infatti, CMake-gui serve a portare gli errori di configurazione progressivamente a zero, evidenziando le componenti mancanti, ovvero, in genere, le librerie non trovate. 

Il primo "trucco" per (iniziare a) ridurre i problemi di CMake è di andare a compilare prima le librerie esterne.  Infatti, se andiamo a vedere alcune delle righe rosse della tabella CMake, vedremo marcate con "_NOTFOUND, ad esempio," proprio le librerie "mini", "quikgrid" e "squish", che abbiamo già scaricato da VTP e che sono poste sotto la nostra directory "deps".

Qui di seguito indichiamo le operazioni (ripetitive) da compiere nel terminale per ricompilare queste tre librerie.

cd   vtp/deps/mini
mkdir  build

Lanciamo Cmake-gui e indichiamo le directory sorgente e destinazione della configurazione. 
Premiamo "Configure".  Probabilmente Cmake ci segnalerà "Could NOT find OpenGL".  In questo caso occorre installare le librerie FreeOpenGL e Glut.
Probabilmente, poi, ci occorrerà anche installare le librerie "Curl", "Jpeg", "Png" e "Zlib".


Per queste ultime librerie conviene anteporre a qualunque altra cosa l'installazione delle dipendenze di OpenSceneGraph, con l'istruzione:


sudo apt-get build-dep openscenegraph


che provvede da sola ad installare le librerie necessarie (anche se l'attesa sarà piuttosto lunga). Sarà necessaria la password di amministratore.


Nel caso in cui queste siano installate ed il "Configure" di CMake non torni altri errori, si può premere "Generate".  Questo scrivera' i file necessari all'interno della directory "mini/build".  Spostiamoci nella directory "build" e lanciamo "make". Scriviamo quindi:

cd build
make

Al termine di una elaborazione abbastanza lunga, avremo di nuovo il controllo del terminale.  Scriviamo quindi:

sudo make install   

ed inseriamo la nostra password di sistema.

Questa operazione installa gli include di Mini in    "/usr/local/include/mini/"
ed installa la libreria di Mini in    "/usr/local/lib/libMini.a"

Ripetiamo le stesse operazioni per le altre librerie:

cd   vtp/deps/quikgrid/core
mkdir  build

Cmake   ...

make

"sudo make install"   installa gli include di quikgrid in    "/usr/local/include/quikgrid/"
"sudo make install"   installa la libreria di quikgrid in    "/usr/local/lib/libquikgrid.a"


cd   vtp/deps/quikgrid
mkdir  build

Cmake   ...

make

"sudo make install"   installa gli include di squish in    "/usr/local/include/"
ed installa la libreria di squish  in   "/usr/local/lib/libsquish.a"


---- CONTINUA ---


Ricompilazione BobMaX su Linux Ubuntu 10.04 32bit.
Lista librerie necessarie:

http://curl.haxx.se/download/curl-7.22.0.tar.gz

Dipendenze OpenScenegraph:

apt-get build-dep openscenegraph


Sorgenti OpenSceneGraph:
http://www.openscenegraph.org/downloads/stable_releases/OpenSceneGraph-2.8.5/source/OpenSceneGraph-2.8.5.zip

Sorgenti VTP:
http://vterrain.org/dist/vtp-src-111016.zip

inoltre, molto importante queste (soprattutto la mini, nella versione di Ben):





BobMaX