![]() |
OpenGL: atto secondo![]() |
![]() L'ultimo numero ci siamo lasciati con una panoramica sui programmi che sfruttano le funzioni OpenGL per generare immagini grafiche rappresentanti oggeti tridimensionali. Come già detto, questa è una tecnologia in continuo sviluppo che sta prepotentemente entrando anche nel mercato dell'home computing. Mi immagino allora che fra di voi, almeno fra i più smanettoni, ci sia qualcuno che voglia provare almeno una volta a scrivere un proprio programmino OpenGL. Non voglio in questa sede entrare nel particolare, sia perché l'argomento è forse un po' troppo specifico per la nostra rivista, sia perché potrete trovare a giro un sacco di documentazione di un livello sicuramente superiore a quello che io saprei offrirvi.
Per cominciare...Ho già accennato al fatto che la libreria OpenGL è disponibile su più sistemi operativi. Alcuni si chiederanno allora come sia possibile la portabilità, visto che ciascuno di essi sfrutta delle diverse API per la gestione delle finestre (Presentation Manager per OS/2, X-Windows nel mondo Unix, ...). La domanda è lecita e la risposta è dovuta: per ognuno di questi sistemi esistono delle specifiche funzioni che permettono di legare il rendering context della macchina a stati OpenGL allo specifico motore di windowing. Nel caso specifico di OS/2 queste funzioni sono le PGL, per Unix l'estensione GLX e così via per altri SO.Ci si rende allora conto che, per lo sviluppo di un progetto serio, sono necessarie svariate conoscenze: oltre ad una conoscenza di base nel campo della computer grafica, sarà necessario documentarsi sulle funzioni OpenGL, sul Presentation Manager e sulle funzioni PGL. Per quanto riguarda le OpenGL, il riferimento d'obbligo è il cosiddetto Redbook che, nell'ultima edizione, analizza dettagliatamente tutte le funzioni della versione 1.1 della libreria:
OpenGL programming Guide, 2nd edition The Official Guide to Learning OpenGL, Version 1.1 Addison Wesley Developers Press, 1997 ISBN 0-201-46138-2 La bibliografia che tratta il Presentation Manager è molto ampia e, oltre alla varia manualistica in formato elettronico che viene fornita il DevCon, consiglio di dare un'occhiata ai corsi di programmazione PM che compaiono sulle varie e-zines (Come faccio? su JustWarp!, oppure su OS/2 e-zine e EDM/2). Per chi invece si volesse limitare a progetti meno ambiziosi, resta ancora il ricorso a una delle due librerie ausiliarie che rendono completamente trasparente l'interfacciamento al sistema di gestione delle finestre. Non aspettatevi però di poter scrivere con queste programmi con menu, barre di stato e finestre di dialogo!
![]() esempio di programma che sfrutta le librerie OpenGL
La compilazione...Per chi vuole solo eseguire i programmi che usano la libreria OpenGL, è sufficiente il runtime di cui ho già dato la reperibilità nell'ultimo numero. Chi invece vuole essere più creativo dovrà procurarsi il development kit: in esso si trovano i vari files di include (*.H), nonché qualche esempio con i sorgenti. Tale kit è scricabile presso ftp://ftp.austin.ibm.com/pub/developer/os2/OpenGL/ oppure lo si può trovare sulla Special Edition of Volume 9 of the OS/2 Developer Connection (in parole povere: la beta di Merlin).Una volta che avete scritto il vostro primo programmino, magari ispirandovi a qualche esempio, non vi resta che invocare il vostro compilatore preferito con le impostazioni del caso. Ovviamente i Makefiles e gli altri files accessori funzionano egregiamente con i compilatori di casa IBM (ad esempio VAC++), mentre per altri prodotti, quali il gcc, dovrete darvi un po' da fare. Per gli utenti di quest'ultimo è necessario trasformare le librerie *.LIB (libtk.lib, opengl.lib, glut.lib e libaux.lib) nel *.a, compatibile con il linker ld, secondo le modalità che questi ben conoscono (o almeno lo spero). A questo punto dovrebbe essere tutto pronto: a meno di errori nei vostri sorgenti o qualche imprecisione nelle chiamate OpenGL (e vi assicuro che all'inizio succede spesso), dovreste veder girare il vostro primo programma in grafica 3D sotto OS/2.
Per gli insaziabiliSebbene molti si saranno accontentati di questa rapida panoramica, spero che qualcuno sia rimasto affascinato dalla materia e abbia intenzione di approfondire l'argomento. E allora dove trovare ulteriori informazioni? Qui di seguito riporto un paio di indirizzi dai quali partire:
Ultim'oraVorrei inoltre cogliere l'occasione per alcuni aggiornamenti riguardo ad argomenti affrontati la volta scorsa:
Con questo concludo la breve carrellata su OpenGL, restando comunque a vostra disposizione per eventuali chiarimenti. |