Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
OpenGL SuperBible: Comprehensive Tutorial and Reference
Recensito da Francesco Argese il 15-03-2011 ore 10:56
Copertina ISBN: 9780321712615
Autori: Richard S. Wright, Jr., Nicholas Haemel, Graham Sellers, Benjamin Lipchak
Editore: Addison-Wesley
Lingua: Inglese
Anno: 2010
Pagine: 1008
Allegati: -
Intel Parallel Studio XE 2015 Cluster Edition
La computer grafica 3D è uno dei domini applicativi dell'informatica più complessi, dato che richiede un certo background matematico. "OpenGL SuperBible", testo edito da Addison Wesley Professional, nasce proprio per semplificare l'approccio a questa disciplina: l'obiettivo dichiarato consiste, infatti, nel fornire un tutorial di riferimento comprensibile che ricopra tutte le tematiche di base necessarie per cominciare a muovere i primi passi nel mondo della computer grafica 3D tramite la libreria OpenGL.

Il testo, giunto alla sua quinta edizione, non smentisce le attese dei lettori. La nuova edizione, in particolare, è dedicata allo standard OpenGL 3.3, il primo degli standard OpenGL in cui alcune caratteristiche sono state etichettate come deprecate, lasciando intendere che in futuro saranno rimosse dallo standard. Durante la stesura dell'opera si è scelto di rimuovere tali funzionalità riducendo un po' le dimensioni del volume.

Gli autori del libro sono ben quattro e i contributi di ognuno sono riportati all'inizio di ogni capitolo. I primi sette capitolisono tutti opera di Richard S. Wright, Jr., autore principale del testo fin dalla prima edizione del libro: egli si occupa di astronomia multimediale e software per planetari mediante OpenGL; compare inoltre come rappresentante per Real3D nell'OpenGL ARB. Nei capitoli successivi subentrano anche: Nicholas Haemel, esperto in architetture hardware/software per la computer grafica 3D per ATI e AMD e contributore degli standard OpenGL 3.0, 3.1, 3.2, e 3.3; Graham Sellers, manager del gruppo OpenGL presso AMD, che guida diversi team che lavorano su OpenGL e ha contribuito agli standard OpenGL 3.2, 3.3 e 4.0; infine Benjamin Lipchak, Software Engineering Manager presso Apple, responsabile per la conformità a OpenGL ES di iPhone e iPod Touch.

Come si può intuire dal titolo e dal numero di pagine del libro, si tratta di una vera e propria bibbia introduttiva al mondo OpenGL e alla computer grafica 3D. Il testo, infatti, mostra tutti i concetti di base di questa disciplina e ne semplifica la comprensione tramite esempi pratici — il libro è molto simile ad un tutorial — scritti in OpenGL.

Il target di destinazione include sviluppatori C e C++ di qualsiasi livello di esperienza; nella trattazione, infatti, non vengono dati per scontati i concetti della grafica 3D, ma vengono esposti in maniera semplice e chiara. Dal punto di vista strutturale, il testo è organizzato in sedici capitoli raggruppati in tre sezioni: nella prima vengono illustrati i concetti di base; nella seconda vengono mostrate tematiche intermedie e avanzate; nell'ultima viene dato spazio a questioni specifiche delle piattaforme prese in esame.

L'indice è presente in duplice veste: la versione sintetica riporta solo i titoli dei capitoli con relativa locazione, mentre la versione più dettagliata contiene anche i paragrafi dei capitoli e le sottosezioni. Alla fine del libro è presente un indice analitico, un indice bibliografico e tre appendici di approfondimento. L'inglese utilizzato è tecnico e si incontrano solo termini che hanno una certa notorietà in ambito informatico.

Il primo capitolo illustra le basi della computer grafica 3D. La trattazione, utile a chi è nuovo all'argomento, include una breve introduzione dedicata alla storia della computer graphics, una spiegazione della teoria che sottende la visualizzazione di grafica 3D su uno schermo e la terminologia di base.

Il secondo capitolo introduce la libreria OpenGL partendo dalla sua storia, passando per gli sviluppi futuri e spiegandone la teoria alla base. La presentazione della libreria presenta il core profile, il funzionamento del meccanismo di estensione, le funzionalità deprecate nelle ultime versioni e mostra come individuare errori OpenGL. La teoria è supportata dalla pratica: dopo aver mostrato come impostare un progetto Visual C++ o XCode e aver introdotto alcuni strumenti di utilità (tra cui GLUT, GLEW e i GLTools), sono riportati tre esempi pratici che consentono la lettore di prendere confidenza con gli argomenti illustrati.

Il terzo capitolo risulta utile a tutti coloro che non hanno dimestichezza con la grafica 3D e OpenGL; si prendono in esame l'architettura della pipeline grafica, i sistemi di coordinate, gli shader e le prime primitive per la visualizzazione di punti, linee e triangoli. Viene dato risalto al funzionamento di OpenGL nella visualizzazione delle primitive e viene illustrato il blending.

Il quarto capitolo è dedicato alle trasformazioni basilari degli oggetti 3D. Considerato il carattere introduttivo del testo l'autore non approfondisce molto i dettagli matematici, e cerca di illustrare i fondamenti della matematica 3D senza annoiare il lettore. Il capitolo introduce i vettori e le matrici e descrive tutte le trasformazioni possibili con OpenGL: le trasformazioni di vista, di modellazione, prospettiche e della viewport. Un intero paragrafo è dedicato alla pipeline di trasformazione.

Il quinto capitolo introduce le basi del texture mapping e illustra come caricare una texture da una data immagine, come passarla a OpenGL e come applicarla a una geometria. E' illustrato anche come impostare dei filtri, come utilizzare l'hardware per generare mipmap e usarle per migliorare sia le performance del rendering sia la qualità di visualizzazione. Gli ultimi paragrafi sono dedicati alla compressione delle texture e spiegano come comprimere le texture al volo e come caricare una texture compressa in maniera diretta.

Il sesto capitolo introduce l'OpenGL Shading Language illustrandone dapprima le somiglianze con C e C++, poi il catalogo delle funzioni built-in, e infine viene spiegato come scriverne di proprie. Sono descritti anche due modelli di illuminazione e implementati con uno shader; si discute dei vantaggi e degli svantaggi di realizzare le elaborazioni nel vertex shader o nel fragment shader; viene accennato all'accesso ai dati texture nel proprio shader.

Il settimo capitolo presenta argomenti avanzati riguardanti le texture, tra cui due nuovi tipi di target delle texture (texture di rettangoli e cube map) e le multitexture. Inoltre viene riportato come caricare un grande numero di texture in un singolo oggetto texture tramite i texture array. I capitoli dall'ottavo al dodicesimo sono dedicati all'approfondimento di alcune tematiche di base introdotte nei primi otto capitoli, e mostrano delle caratteristiche avanzate di OpenGL.

L'ottavo e il nono capitolo chiariscono come poter gestire in maniera efficiente la memoria e i buffer in OpenGL; il decimo capitolo approfondisce il funzionamento degli ultimi step della pipeline OpenGL (le operazioni per-fragment); l'undicesimo capitolo è dedicato all'utilizzo avanzato degli shader mentre il dodicesimo capitolo mostra come gestire un grande numero di vertici e dati, e come avere maggior controllo sulle applicazioni OpenGL.

I capitoli dal tredicesimo al sedicesimo trattano argomenti riguardanti l'utilizzo di OpenGL su piattaforme specifiche. Il tredicesimo capitolo è dedicato a Windows, il quattordicesimo a Mac OS X, il quindicesimo a Linux mentre il sedicesimo è dedicato a OpenGL ES sulle piattaforme mobili.

L'appendice A riporta un elenco di risorse di cui è consigliata la lettura, organizzate in libri OpenGL, testi per la grafica 3D e siti web di approfondimento. L'appendice B è un glossario in cui è riportato sinteticamente il significato di alcuni termini usati nel testo. L'appendice C riporta un manuale di riferimento per OpenGL 3.3, con tutte le funzioni corredate da una descrizione. Al termine del testo c'è un indice delle parole chiave.

In sostanza si tratta di uno dei migliori testi introduttivi riguardante OpenGL e la grafica 3D. Nonostante il taglio sia prettamente introduttivo, la seconda parte include anche dei dettagli utili a chi desidera cominciare l'approfondimento di determinati aspetti di OpenGL.
proIl testo può essere considerato una delle migliori introduzioni a OpenGL e alla grafica 3D. Gli esempi forniti per le piattaforme supportate consentono di mettere in pratica le nozioni acquisite.
controNessuno.
Precedente: Utilizzare MemoryCache con SqlChangeMonitor in SQL Server
Successiva: Premio Turing 2010 a Valiant per i contributi alla teoria del calcolo
Copyright Programmazione.it™ 1999-2014. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 0.208 secondi.