La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Corso di Programmazione Grafica e Laboratorio Daniele Marini

Presentazioni simili


Presentazione sul tema: "Corso di Programmazione Grafica e Laboratorio Daniele Marini"— Transcript della presentazione:

1 Corso di Programmazione Grafica e Laboratorio Daniele Marini
Introduzione a OpenGL Corso di Programmazione Grafica e Laboratorio Daniele Marini

2 OpenGL - 1 Libreria grafica multi-piattaforma
Fornisce funzioni per "disegnare" una scena (tridimensionale) in un frame-buffer (porzione di finestra) Assume di avere a disposizione una finestra in cui disegnare

3 OpenGL – 2 GLU Frame Buffer GL Applicazione GLUT Window System GLX

4 GLUT - 1 Glut Libreria per la creazione di finestre in cui OpenGL possa disegnare Gestisce l'interazione con l'utente su tali finestre. Non fornisce dispositivi di interazione sofisticati (bottoni, campi di testo, ecc.).

5 GLUT –2 Includes Interfaccia grafica e librerie GLUT
#include <GL/gl.h> // OpenGL decl. #include <GL/glut.h> // GUI funcs Interfaccia grafica e librerie GLUT Descrizione degli oggetti forniti da GLUT Finestre Menu Interazione: Mouse, Tastiera, etc…

6 Inizializzazione di GLUT - 1
int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB ); glutInitWindowSize(200, 200); glutCreateWindow(“Window Title"); glutReshapeFunc(reshapeFunc); glutDisplayFunc(displayFunc); glutMainLoop(); return 0; }

7 Inizializzazione di GLUT - 2
Funzioni di Reshape e Display glutReshapeFunc(reshapeFunc); glutDisplayFunc(displayFunc); Reshape Gestisce il ridimensionamento della finestra Display Contiene il codice per la visualizzazione

8 ReshapeFunc Imposta la viewport Imposta la camera
glViewport(0, 0, w, h); Imposta la camera glMatrixMode(GL_PROJECTION); // camera settings glMatrixMode(GL_MODELVIEW);

9 DisplayFunc Disegna la scena (o chiama le display list)
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); // drawing code glFlush(); glutSwapBuffers(); // If double-buffered


Scaricare ppt "Corso di Programmazione Grafica e Laboratorio Daniele Marini"

Presentazioni simili


Annunci Google