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