OBIETTIVI FORMATIVI
Aristotele affermava che non c'è pensiero senza le immagini, ed
è infatti evidente che le immagini hanno un ruolo di primo piano
nel pensiero astratto (non a caso si parla di immaginazione). Si intuisce
quindi l'importanza della componente visuale nella interazione tra uomo e
calcolatore: in questa interazione l'apparato visivo umano interpreta immagini
genarate dal calcolatore. La grafica al calcolatore si occupa di produrre
queste immagini. Il corso mira a fornire allo studente gli strumenti
indispensabili a comprendere gli algoritmi ed i metodi computazionali su
cui si basano molte delle applicazioni grafiche interattive. L'enfasi è
sulla programmazione e sulla comprensione dei meccanismi (geometria, interazione
luce-materia) che consentono di creare immagini al calcolatore, piuttosto
che sull'impiego di strumenti di modellazione. Il corso si collega
idealmente a quelli di Elaborazione di Immagini e Suoni, Interazione Uomo
Macchina, Psicologia della Percezione e Visione Computazionale, assieme
ai quali copre una porzione rilevante di quella disciplina che va sotto
il nome di Visual Computing.
ATTIVITÀ FORMATIVE
Il corso viene svolto in 32 ore di lezione frontale e 12 ore di esercitazione
in laboratorio, nell'arco di un periodo.
PROGRAMMA DEL CORSO
- Introduzione alla grafica (2h)
- Grafica al calcolatore, paradigmi
- Schema di una applicazione grafica
- Cosa vedremo e cosa non vedremo nel corso
- Informazioni generali
- Fondamenti matematici (2h)
- Spazi vettoriali ed affini
- Trasformazioni 3D, Rotazioni
- Richiami di geometria analitica
- Elementi di geometria computazionale (6h)
- Operazioni di test elementari
- Intersezione di segmenti: plane sweep
- Inviluppo convesso: Graham's scan, Quickhull, Jarvi's
march.
- Triangolazioni: generica e di Delaunay
- Localizzazione di un punto: metodo di Jordan, metodo dei semipiani, metodo delle strisce.
- Problemi di vicinanza: algoritmo di Shamos, diagrammi di Voronoi.
- Ricerca geometrica ortogonale: point-quad-tree, Kd-tree
- Rappresentazione di regioni: quadtreeed octree
di regione, BSP tree
- Modellazione tridimensionale (4h)
- Maglie (mesh) poligonali.
- Superfici parametriche (cenni).
- Geometria solida costruttiva.
- Suddivisione spaziale.
- Resa grafica (rendering) (6h)
- Trasformazioni geometriche
- Culling e Clipping
- Rimozione delle facce nascoste: depth-buffer, depth-sort
- Scan conversion
- Shading: Flat, Phong e Gouraud
- La rendering pipeline di OpenGL.
- Illuminazione locale e globale (2h)
- Modello di Phong
- Modello di Cook-Torrance (cenni)
- Tipi di luci
- Modelli globalli (cenni): ray tracing e radiosity.
- Tecniche di mappatura (2h)
- Texture mapping
- Bump mapping
- Fotorealismo (2h)
- Mappe di riflessione
- Light map
- Ombre geometriche
- Trasperenza
- Intersezioni e collisioni (2h)
- Richiami di geometria analitica
- Intersezioni
- Tecniche di pruning
- Visualizzazione dei dati (2h)
- rendering volumetrico: raycasting, splatting
- estrazionedi isosuperfici: marching cubes.
- Tecniche avanzate (2h)
- Da definire in base agli interessi.
- Esercitazioni di laboratorio (12 h)
- Introduzione a OpenGL e nozioni di base (12h)