RELAZIONE sul progetto-1

Transcript

RELAZIONE sul progetto-1
Esame di
Elementi di grafica digitale
Relazione sul progetto realizzato
Docente
Prof. Hmeljak M.
Anno accademico
2004/2005
Studente
Daniele Varin
Corso di laurea specialistica in
Ingegneria Informatica
Corso di Elementi di Grafica Digitale
prof. Hmeliak M.
Anno accademico 2004/2005
Indice dei contenuti
Richiamo al seminario tenuto durante le lezioni
pag. 3
Introduzione al progetto realizzato a conclusione dell’esame
pag. 3
Scopo e funzionalità del progetto
pag. 4
Argomenti analizzati durante le lezioni affrontati nel progetto
pag. 5
Conclusioni
pag. 6
Bibliografia e fonti
pag. 6
Studente Daniele Varin
Laurea Spec. in Ingegneria Informatica
Pagina 2 di 6
Corso di Elementi di Grafica Digitale
prof. Hmeliak M.
Anno accademico 2004/2005
Richiamo al seminario tenuto durante le lezioni
Durante le lezioni ho tenuto il seminario “Le ombre in OpenGl”, durante il quale ho
analizzato brevemente i seguenti punti:
•
•
•
•
•
•
Light maps
Shadow volumes
Ombre proiettive planari
Vantaggi e svantaggi delle tre tecniche
Dettagli sull’implementazione in OpenGl delle ombre proiettive planari
Esempi di implementazione
Introduzione al progetto realizzato a conclusione dell’esame
Il progetto che ho preparato vuole completare il lavoro di ricerca svolto sulle ombre
proiettive planari affrontato nel seminario.
In questo senso sono andato a modificare un esempio recuperato dal sito NVidia
(www.nvidia.com/developer), che calcola le ombre proiettive di un oggetto (una teiera –
“teapot”), dato un piano e un punto di luce.
Figura 1 - Screenshot dell'esempio di partenza
A partire da questo esempio, con il progetto che ho sviluppato volevo andare a toccare il
maggior numero di argomenti affrontati durante il corso e volevo andare a gestire più
oggetti (con relative ombre) sulla scena.
Studente Daniele Varin
Laurea Spec. in Ingegneria Informatica
Pagina 3 di 6
Corso di Elementi di Grafica Digitale
prof. Hmeliak M.
Anno accademico 2004/2005
Scopo e funzionalità del progetto
Il progetto che ho realizzato permette di visualizzare sulla scena n oggetti, con relative
ombre proiettive, con n da 1 a 25 (per motivi di “spazio” sulla scena e di performances
video).
Interfaccia utente dell’applicazione
Spostamento del punto di illuminazione:
Freccia SU, Freccia GIU = Spostamento del punto
luce lungo l’asse x
Freccia DESTRA, Freccia SINISTRA = Spostamento
del punto luce lungo l’asse y
PgSU, PgDOWN = Spostamento del punto luce lungo
l’asse z
Spostamento del punto di vista:
Tasto SINISTRO del mouse + spostamento
Rotazione degli oggetti presenti in scena:
Tasto DESTRO del mouse + spostamento
Gestione del numero degli oggetti presenti in scena:
Tasto “Z” = Incrementa il numero di oggetti (max 25)
Tasto “X” = Decrementa il numero di oggetti (min 1)
Visualizzazione di oggetti diversi in scena:
Tasto “C” = Attiva / disattiva visualizzazione oggetti
“diversi” sulla scena
Studente Daniele Varin
Laurea Spec. in Ingegneria Informatica
Pagina 4 di 6
Corso di Elementi di Grafica Digitale
prof. Hmeliak M.
Anno accademico 2004/2005
Argomenti analizzati durante le lezioni affrontati nel progetto
Nel progetto ho toccato i seguenti punti, che sono stati analizzati nel corso delle lezioni:
•
Scelta del materiale
•
Illuminazione della scena (lighting) e shading (nello specifico, smooth shading)
•
Sorgenti di luce puntiformi (nel progetto, una sola sorgente di luce puntiforme
che l’utente può muovere all’interno della scena) e ad ampia superficie (luce
ambiente, diffusa e speculare)
•
Traslazioni e rotazioni in 3D (posizionamento e rotazione degli oggetti in scena)
Studente Daniele Varin
Laurea Spec. in Ingegneria Informatica
Pagina 5 di 6
Corso di Elementi di Grafica Digitale
prof. Hmeliak M.
Anno accademico 2004/2005
Conclusioni
Per quanto riguarda i dettagli di implementazione, rimando alla documentazione presente
sul codice sottoforma di commento;
Esempio di partenza. L’esempio da cui sono partito prevedeva il calcolo dell’ombra di un
solo oggetto (una teiera); aveva un bug abbastanza evidente, ovvero l’ombra veniva
visualizzata anche fuori dal piano;
Applicativo sviluppato. Il mio applicativo è caratterizzato da:
• Visualizzazione sulla scena di n oggetti e relative ombre, con n da 1 da 25;
• Possibilità di spostare il punto di vista, la sorgente di luce e di ruotare gli oggetti;
• Possibilità di scegliere se visualizzare n oggetti tutti uguali o n oggetti diversi;
• Corretto il bug di visualizzazione fuori dai limiti del piano mediante la tecnica dello
stencil buffering;
Bibliografia e fonti
Libri:
• “Computer graphics with openGL” di Donald Hearn, M. Pauline Baker - 3. ed. Pearson Education International;
• “Interactive computer graphics: a top-down approach with OpenGL” di Edward
Angel - Addison-Wesley;
• “OpenGL programming guide: the official guide to learning OpenGL version 1.2” di
Mason Woo - 3. ed. - Addison-Wesley;
• “OpenGL programming guide: the official guide to learning OpenGL, version 1.4” di
Dave Shreiner - 4. ed. - Addison-Wesley, ©2004;
• “Computer graphics : corso di programmazione” di Steven Harrington - McGraw
Hill;
• “Computer graphics programming : GKS, the graphics standard” di G. Enderle, K.
Kansy, G. Pfaff. - 2. rev. - Springer-Verlag;
• “Computergrafica creativa” di Annabel Jankel e Rocky Morton - A. Vallardi
• “The computer image: applications of computer graphics” di Donald Greenberg,
Aaron Marcus, Allan H. Schmidt, Vernon Gorter - Addison-Wesley;
Siti web:
• Sito di OpenGl (http://www.opengl.org/resources/features/,
http://www.opengl.org/resources/tutorials/, http://www.opengl.org);
• Sito di NVidia (www.nvidia.com e www.nvidia.com/developer);
• Sito “Nehe” (http://nehe.gamedev.net/);
• Sito di tutorials by Nate Robins (http://www.xmission.com/~nate/tutors.html);
• Sito di Paul Heckbert e Michael Herf relativo al casting di soft shadows
(http://www.cs.cmu.edu/ph/shadow.html);
Studente Daniele Varin
Laurea Spec. in Ingegneria Informatica
Pagina 6 di 6