GLScene
# GLScene

GLScene è una libreria di grafica vettoriale per il linguaggio di programmazione Delphi. La libreria è fondata su OpenGL ed è distribuita secondo la licenza open source Mozilla Public License. La libreria è stata sviluppata da Mike Lischke a partire dal 1999 per passare in seguito sotto la direzione di Eric Grange. Il progetto GLScene è fermo alla versione v1.1 distribuita nel 2010.

## Caratteristiche

Si tratta di una libreria che coniuga la potenza di OpenGL con la estrema semplicità di uso di Delphi e consente, con relativa facilità la creazione di applicazioni contenenti grafica tridimensionale. Le versioni Delphi pienamente supportate sono la 5, la 6 e la 7. Supporta anche le versioni di Lazarus per Windows e Linux. La possibilità, offerta da Delphi, di compilare i progetti in forma di DLL rende peraltro la libreria utilizzabile in qualsiasi applicazione.

GLScene dispone di una serie di oggetti predefiniti (i tipici oggetti base nel mondo della grafica tridimensionale, dai cubi alle sfere, dai torus alle teiere); oltre a questi dispone di altri oggetti per funzioni più complesse: in primo luogo le "FreeForm", normalmente usate per importare file 3D statici di vari formati. Quindi gli "actors", per importare file di animazione tridimensionale, disponibili sia in forma di animazione di tipo "skeletal" che no. Altri oggetti importanti sono i proxy, che consentono di "moltiplicare" le istanze di determinati oggetti, con un notevole risparmio di memoria e di tempo di renderizzazione, gli "heightfield" per la realizzazione dinamica di terrains e di diversi sistemi per creare cieli (skydome, skyboxes eccetera). Le ultime versioni dispongono anche di oggetti più specifici (alberi, specchi di acqua e così via).

Consente il rendering in tempo reale in run-time ma anche il rendering verso file, particolarmente utile per dei rendering di alta qualità sia statici che dinamici. Consente di importare file statici in 3DS, OBJ, STL, TIN e PLY; consente altresì di importare file di animazioni in SMD e in MD2.

