Cerca nel sito:

Programmazione Video Giochi in OpenGL e C++ (parte 1/2)

Di Gianluca Panebianco, Data di pubblicazione: 4 Novembre 2003, Ultimo aggiornamento: 4 Novembre 2003

In queste presenteremo una breve introduzione alla programmazione delle librerie OpenGL sfruttando il linguaggio C++ e con Sistema Operativo di base Windows.

1. Introduzione, Teoria e Glossario

Lightwave Opengl OpenGl è un'interfaccia software per l'hardware grafico. Tale interfaccia consiste di circa 120 comandi distinti.
OpenGl è disegnato come un'interfaccia indipendente dall'hardware, così da poter essere implementato su diverse piattaforme. Non ci sono comandi per eseguire gestione di finestre o input da parte dell'utente (lettura eventi da mouse o tastiera) in OpenGL, e i modelli grafici che si possono costruire partono da una piccola libreria di oggetti base (punti, linee e poligoni).

Rendering - è il procedimento con cui un computer crea immagini a partire da modelli. Questi modelli, o oggetti, sono costruiti a partire da primitive geometriche (punti, linee e poligoni) che sono specificati attraverso i loro vertici.
Un immagine renderizzata consiste di pixel posti sullo schermo.
Pixel (picture element) - è la più piccola unità visualizzabile da un dispositivo hardware di visualizzazione.

L'informazione circa un pixel (per esempio di che colore è) è mantenuta dal sistema in una porzione di memoria detta bitplane.
Bitplane - è un'area di memoria che tiene un bit di informazione per ogni pixel sullo schermo.
Le bitplane sono organizzate a loro volta in framebuffer, che mantengono tutte le informazioni di cui il display grafico necessita per controllare l'intensità di tutti i pixel sullo schermo.

Quindi, OpenGL contiene comandi di rendering ma è progettato per essere indipendente da qualsiasi sistema di finestre, e in generale da qualsiasi sistema operativo.
Le sue operazioni sono di basso livello. L'utilizzatore può scrivere delle proprie routine o librerie per facilitare il proprio lavoro. Esistono già due importanti librerie sviluppate sotto OpenGL: OpenGL Utilità Library (GLU) e OpenGL Extension for the X Window System (GLX).

Per animare un oggetto, l'idea di base è che più immagini (o frames) vengano poste in sequenza una dopo l'altra, di solito alla frequenza di 1/24 di secondo. Queste immagini devono essere complete (per esempio in un programma, può accadere che il tempo di ridisegno di un'immagine non sia sufficientemente veloce per stare in 1/24 di secondo).
Per far si che questo accada, si ricorre alla tecnica di doppio buffering, ovvero mentre un'immagine è mostrata a schermo, l'altra viene ridisegnata in background, cosicchè è già pronta alla prossima visualizzazione. Poi si fa un semplice swap dei due buffer e si ridisegna quello ora in background. Così ogni frame è mostrato solo quando è completo.

Davide Di Giulio è un esperto programmatore C++. Nell'ultimo anno si è specializzato nella programmazione delle librerie OpenGL in ambiente Windows con scopo di visualizzazione 2D e 3D realtime di geometrie complesse a supporto della produttività aziendale.
Davide ha anche un sito, potete accedervi a questo indirizzo: Davide Di Giulio Homepage

Programmazione Video Giochi in OpenGL e C++
< Precedente 1 2 Successiva >



Inserisci il tuo commento