Progetto Cresco: Linea Attività 1 / SP1.2 Strumenti per la Grafica

Tools per l'utilizzo di sistemi di grafica virtuale ed immersiva con sistemi di supercalcolo remoto per il lavoro cooperativo a livello geografico.

NOTA Per avere accesso alle librerie grafiche e poterle eseguire, occorre un' utenza AFS con cui collegarsi al sistema . Cos'è AFS e come richiedere un account

OpenSceneGraph (OSG) è una libreria grafica 3D portabile, open source, realizzata per progetti a prestazioni elevate e quindi usata per applicazioni come simulazioni di volo, giochi, realtà virtuale, modellazione e visualizzazione scientifica, ecc... Questa libreria è scritta interamente in C++ (Object Oriented) e OpenGL e puņ essere portata in tutte le piattaforme e sistemi operativi Windows, OSX, Linux, IRIX, Solaris e FreeBSD.
 
 
Il pacchetto OpenSceneGraph contiene al suo interno tutti i principali core
della libreria indispensabili per il suo corretto funzionamento.
Ecco la lista di alcuni core di OpenSceneGraph:

osg: è il cuore dello Scene Graph, include anche il supporto per l'apertura di file .osg e formati di file RGB.

osgUtil: è la classe che contiene al suo interno numerose utility come il setup o il rendering/draw.

osgDB: è la libreria delle utility per la gestione di letture e scritture di database 3D e files immagine.

osgParticle: è il pacchetto di gestione dell'effetto particelle.

osgText: è il pacchetto per la gestione del testo; contiene al suo interno le classi per il rendering di font true type.

osgSim: è una libreria per le simulazioni visuali.

osgGA: è la libreria per la gestione della Graphic User Interface (GUI)astratta.

osgProducer: è la classe che contiene le basi per la visualizzazione della scena. Implementa anche un semplice demo del Producer per la costruzione
di una finestra e l'interazione keyboard-mouse.

OSG include numerosi Plug-in che semplificano le azioni di importazione ed esportazione di formati di file grafici nei diversi formati di ultime generazioni. Eccone alcuni esempi:

osgPlugin: per la gestione di file nativi (.osg).

fltPlugin: per la gestione di file Open Flight (.flt ).

lib3dsPlugin: per la gestione di file Auto Studio Max (.3ds).

lwoPlugin: per la gestione di file Light Wave binari (.lwo, .lw, .geo).

rgbPlugin: per la gestione di file RGB.

pngPlugin: per la gestione di file PNG.

gifPlugin: per la gestione di file GIF.

jpegPlugin: per la gestione di file JPEG.

tgaPlugin: per la gestione di file TGA.

tiffPlugin: per la gestione di file TIF.

Vantaggi dell'OSG
 


Performance

La libreria supporta il view frustrum culling, occlusion culling e small feature culling, nodi LOD, state sorting, vertex array e liste di display come parte del nucleo di una scene graph. Tutte queste caratteristiche messe assieme fanno dell'OSG una delle librerie con le più elevate prestazioni. Di conseguenza si ha che le performance uguagliano o sorpassano tutto ciò che era stato ottenuto con altre librerie di scene graph come Open Performer, VTree, Vega Scene Graph, e Java3D. L'OSG fornisce infatti una facile personalizzazione del processo di disegno, che ha permesso così l'implementazione delle strutture con Livello Continuo di Dettaglio (Continuous Level of Detail, CLOD) nell'utilizzo più profondo delle scene graph.

Produttività

Alla base dell'OSG si provvede di incapsulare le maggior parte delle funzionalità di OpenGL, incluse le più recenti estensioni; vengono fornite inoltre ottimizzazioni a livello di rendering come il culling e il sorting, e un intero insieme di librerie add-on che permettono di sviluppare applicazioni grafiche con alte performance a livello di velocità.

Portabilità

La struttura della scene graph è stata così ridisegnata per avere una minima dipendenza su alcune specifiche piattaforme, richiedendo poco più che lo Standard C++ e OpenGL. Ciņ ha consentito alla scene graph di essere rapidamente portabile su una vasta quantità di piattaforme originariamente sviluppata su IRIX, poi su Linux, e infine su Window, FreeBSD, Mac OSX, Solaris, HP-UX e su PlayStation2.

Scalabilità

L'OSG non solo gira su quasi la totalità dei sistemi operativi, ma integra i molteplici sottosistemi grafici inclusi su macchine come un Onyx multipipe. Questo è possibile poichè l'OSG supporta svariati contesti grafici per entrambi OpenGL Display Lists e oggetti texture, e le operazioni di cull e draw sono state predisposte per il cache rendering data localmente e usano le scene graph quasi interamente come un'operazione di read-only. Questo permette a molteplici coppie di istruzioni cull-draw di girare su diverse CPU che sono legate a diverse sottosistemi grafici. Tutti i sorgenti dell'OSG sono pubblicati sotto l'Open Scene Graph Public License (una versione di LGPL) che permette l'uso, la modifica e la diffusione per entrambi i tipi di progetto open source e no.