UGO ERRA | GRAFICA TRIDIMENSIONALE AVANZATA

GRAFICA TRIDIMENSIONALE AVANZATA
SCUOLA di INGEGNERIA
Laurea Magistrale
INGEGNERIA INFORMATICA E DELLE TECNOLOGIE DELL'INFORMAZIONE
6
 CFUOreCicloDocente
1GRAFICA TRIDIMENSIONALE AVANZATA
6 48 Secondo Semestre ERRA UGO 
 
Lingua insegnamento
 

Italiano

Obiettivi formativi e risultati di apprendimento
 

L’obiettivo principale del corso consiste nel fornire una introduzione teorica e applicativa alla grafica tridimensionale in real-time con particolare riferimento allo sviluppo di applicazioni interattive.
• Conoscenza e capacità di comprensione: lo studente deve dimostrare di conoscere e comprendere i modelli matematici e gli algoritmi utilizzati nella generazione di immagini in real-time; modellazione della camera, matrici di trasformazioni, modelli di illuminazione e di shading, texture mapping;la pipeline grafica della GPU; implementazione mediante il linguaggio C/C++ di applicazioni di grafica 3D interattiva;
• Capacità di applicare conoscenza e comprensione: al termine del corso lo studente avrà sviluppato gli strumenti metodologici ed operativi per la progettazione di una applicazione che richieda l’uso della grafica 3D. Le conoscenze acquisite sono trasversali rispetto all’ambiente in cui saranno applicate e quindi lo studente sarà in grado di applicarle in settori diversi come desktop, web e mobile. Inoltre, la comprensione degli argomenti fornirà capacità di approfondimento verso argomenti più complessi riguardo la grafica 3D;
• Autonomia di giudizio: lo studente deve essere in grado di saper valutare e progettare in maniera autonoma una applicazione interattiva di grafica 3D;
• Abilità comunicative: lo studente deve avere la capacità di presentare in maniera chiara, utilizzando, se necessario, un linguaggio comprensibile anche a persone non esperte, le funzioni di una pipeline grafica, della scheda grafica e gli aspetti di progettazione di una applicazione di grafica interattiva;
• Capacità di apprendimento: lo studente deve essere in grado di consultare in maniera autonoma testi e articoli scientifici di rendering al fine di estendere le conoscenze di base acquisite nel corso.

Prerequisiti
 

È altamente consigliato aver seguito e sostenuto l'esame di Fondamenti di Grafica Tridimensionale. Inoltre, è consigliabile avere acquisito e assimilato le seguenti conoscenze e metodologie fornite dagli insegnamenti di matematica e fisica di base, nonché dai corsi di “Programmazione Procedurale”, “Algoritmi e Strutture Dati” ed “Programmazione ad Oggetti”, in particolare:
• conoscenza di algebra lineare (vettori e matrici);
• conoscenza della programmazione procedurale (strutture dinamiche, puntatori, programmazione event-driven);
• conoscenza approfondita del linguaggio C ed una conoscenza di base del C++;
• capacità di realizzare algoritmi di calcolo in linguaggi procedurali;
• conoscenza dei fondamenti della computer graphics tridimensionale.

Contenuti del corso
 

Sviluppo applicazione OpenGL (4 ore di lezione): Libreria OpenGL, sintassi di OpenGL, tipi di dati in OpenGL, gestione degli eventi, gestione del rendering in OpenGL, input ed interazione;

Modelli di illuminazione (8 ore di lezione): Colori, Illuminazione di base, Materiali, Lighting maps, Light casters, Multiple lights;

Linguaggio di shading (6 ore di lezione): Pipeline grafica programmabile, i linguaggi di shading, vertex e fragment shaders;

Caricamento di modelli 3D (4 ore di lezione): Assimp, Mesh, Model;

Concetti di base di un motore 3D (4 ore di lezione): Gestione dell’input, gestione della scena, gestione delle collissioni;

Concetti avanzati di OpenGL (6 ore di lezione): Depth testing, Stencil testing, Blending, Face culling, Framebuffers, Cubemaps, Advanced GLSL, Geometry Shader;

Illuminazione avanzata (8 ore di lezione): Gamma Correction, Shadows, Normal Mapping, Parallax Mapping, HDR, Bloom Deferred Shading, SSAO;

Illuminazione basata sulla fisica (8 ore di lezione): Theory, Lighting, Image Based Lighting.

Metodi didattici
 

L’occasione didattica principale sarà la lezione in classe; durante la lezione saranno presentati i principali contenuti del programma del corso. Insieme agli aspetti teorici, verranno presentate delle applicazioni pratiche e delle esercitazioni per invogliare lo studente a mettere in pratica immediatamente i concetti introdotti a lezione. Durante il corso saranno fornite anche delle domande di riepilogo per facilitare l'autovalutazione dell'apprendimento sui temi delle lezioni. Di solito sono domande con difficoltà eterogenea, vanno dalle semplici definizioni, a richieste di confronto di soluzioni/tecniche, fino ad arrivare a domande che cercano di spingervi a trovare le motivazioni ad alcune scelte. Si consiglia fortemente la frequenza.

Modalità di verifica dell'apprendimento
 

Le verifica dell’apprendimento sarà effettuata in tre fasi:
1. Durante il corso ci saranno tre momenti distinti in cui saranno assegnate delle prove individuali per accertare la comprensione degli argomenti fino a quel momento. Ogni prova individuale consiste di circa 5 esercizi con un punteggio differente (di solito 1,2,3 o 4 punti). Lo studente può scegliere un solo esercizio per ogni prova individuale. Gli esercizi consistono nello sviluppare una applicazione di grafica 3D in real-time a partire dai requisiti. La somma delle tre prove individuali darà un punteggio massimo di 10 punti.
2. Verso la fine del corso gli studenti sono invitati a comporre dei gruppi (massimo 3 persone) per lo sviluppo di un progetto il cui argomento può essere proposto insieme al docente. Per poter sostenere l’esame è necessario consegnare il progetto con una breve relazione ed un sito web. Il progetto può essere preventivamente valutato dal docente che può chiedere modifiche e/o integrazioni. La valutazione finale del progetto darà un punteggio massimo di 15 punti.
3. La prova orale consiste in una discussione del progetto e delle prove individuali utili a valutare il grado di maturità ed autonomia nell’affrontare problemi applicativi nell’ambito della computer graphics, nonché le capacità di presentare in modo chiaro e sintetico il lavoro svolto. La prova orale darà un punteggio massimo 5 punti.
Il voto finale sarà determinato dalla somma delle prove individuali, del progetto e della discussione orale ma anche sulla base della correttezza, della profondità delle conoscenze acquisite, nonché sul livello di partecipazione che lo studente ha mostrato durante il corso.

Testi di riferimento e di approfondimento, materiale didattico Online
 

Fundamentals of Computer Graphics, Fourth Edition, Steve Marschner, Peter Shirley. December 18, 2015 by A.K. Peters/CRC Press, ISBN 9781482229394.
• Sito web del corso con codice C/C++ degli algoritmi illustrati a lezione, tool di sviluppo software e tutorial.

Metodi e modalità di gestione dei rapporti con gli studenti
 

All’inizio del corso il docente descrive obiettivi, programma e metodi di verifica del corso, indicando dove reperire il materiale didattico on line. L’orario di ricevimento è fissato per Martedì e Mercoledì dalle ore 10:30 alle ore 12:30 presso lo studio del docente o nel laboratorio di computer graphics. Oltre all’orario di ricevimento settimanale, il docente è disponibile in ogni momento per un contatto con gli studenti, attraverso la propria e-mail o alla fine della lezione.

Date di esame previste
 

6/2/2024,200/2/2024,14/5/2024,2/7/2024,16/7/2024,24/9/2024,17/12/2024

 
Fonte dati UGOV