VLP

Virtual Landscape Project

27.9.2007

Introduzione

VLP è il primo progetto che ho sviluppato in OpenGL per il corso di Grafica computerizzata alla SUPSI di Manno. Si tratta di una libreria che permette la generazione in memoria e la visualizzazione di elementi naturali (cielo, montagne, laghi, ...). La libreria è stata sviluppata in modo da essere il più indipendente possibile e per questo motivo può venire inclusa ed utilizzata in combinazione con altre librerie. E' stata sviluppata interamente in c utilizzando OpenGL e GLUT. La libreria è stata compilata e testata in ambiente UNIX, Linux, MacOS e Windows.

Gli elementi

Ogni elemento in VLP viene generato a partire da una height map. Una height map è un' immagine in scala di grigio dove i punti più chiari sono i punti più alti e quelli scuri quelli più bassi.

La maggior parte dei programmi di modellazione 3D sono in grado di esportare height map (Vue d'Esprit, Bryce, Cinema4D, ...). Ad ogni elemento possiamo applicare una texture non compressa. Il sistema permette una basilare gestione della posizione e delle ripetizioni della texture sull'oggetto.

+

=

Spostamenti

L'utente può muoversi all'interno del paesaggio utilizzando la tastiera per gli spostamenti e il mouse per guardarsi attorno. Per motivi di tempo il movimento dell'utente sul terreno non utilizza nessun metodo di gestione della collisione ma viene controllata direttamente l'altezza della height map nella coordinata dell'utente.

Luci

Il sistema è in grado di gestire le luci in modo dinamico da una fonte luminosa che rappresenta il sole. Le normali dei vari poligoni vengono calcolate nella fase di precaching. Le coordinate del sole possono venire modificate durante la simulazione utilizzando la tastiera.

Modifica interativa delle caratteristiche dei terreni

Il sistema permette di selezionare un terreno e di cambiarne le caratteristiche fisiche e/o di visualizzazione in tempo reale, senza dover riavviare la simulazione. Una volta selezionato un terreno l'utente può modificare diverse caratteristiche quali la posizione, la dimensione, l'altezza, il metodo di visualizzazione (wireframe, solid), il metodo di costruzione (triangle, quad), la risoluzione del terreno, etc.

Quando un terreno viene selezionato in alto a sinistra viene visualizzato una finestra trasparente che riporta le caratteristiche principali del terreno.

Preset / scene

VLP permette di preparare una serie di scene e di passare poi da una all'altra in un qualsiasi momento. Ecco alcuni esempi di scene:

In questa scena l'utente può muoversi liberamente in un ambiente composto da alcune montagne. L'utente può scegliere se camminare sulla superficie o se staccarsi da terra e volare da un punto all'altro.

Questa scena mostra un terreno visto dall'alto. L'utente ha la possibilità di muovere il sole e vedere come il terreno interagisce con la luce in tempo reale.

In questa scena viene visualizato un terreno alla risoluzione più bassa. L'utente ha la possibilità di aumentare la risoluzione in modo da vedere come l'algoritmo di generazione del terreno di vlp si adatta in tempo reale.

Help

All'avvio viene visualizzato un messaggio di aiuto che illustra all'utente i comandi che può utilizzare durante la simulazione.