20810261 - Computer Graphics

Il corso mira ad illustrare le moderne architetture software e hardware di grafica, ed a fornire soluzioni matematiche, tecniche e metodologiche per la realizzazione di progetti che coinvolgano la visualizzazione di dati nello spazio 2D o 3D. Verranno esposti i concetti di base della grafica quali spazi, curve, superfici e volumi, ponendo l’accento su nozioni ed algoritmi correntemente usati nella visualizzazione scientifica, videogames, e animazione computerizzata. Inoltre, il corso mira ad esporre alcuni dettagli dell’hardware e delle piattaforme software correntemente in uso.

Curriculum

scheda docente | materiale didattico

Programma

Il corso di Computer Graphics, rivolto agli studenti della laurea magistrale, intende fornire una preparazione teorica e pratica approfondita sui principali algoritmi, modelli matematici e strumenti tecnologici alla base della grafica computerizzata moderna. Il percorso si apre con un'introduzione alla computer graphics e alla sua evoluzione storica, per poi affrontare i fondamenti matematici e algebrici necessari alla rappresentazione e alla manipolazione di oggetti tridimensionali. Vengono approfonditi i principi della pipeline grafica, il funzionamento di OpenGL e l'architettura di Vulkan, con particolare attenzione alla gestione dei dati geometrici e alle strutture dati per la rappresentazione di mesh, curve e superfici. Il programma include inoltre lo studio delle strutture dati spaziali, delle tecniche di texturing, della gestione delle ombre e dei modelli di rappresentazione e gestione del colore e della colorimetria. Una parte significativa del corso è dedicata al ray tracing, dalle sue formulazioni fondamentali fino alle tecniche di rendering in tempo reale basate su RTX e Vulkan, nonché allo studio degli shader e delle tecniche di analisi e ottimizzazione delle prestazioni. La seconda parte del corso approfondisce le tecnologie e le metodologie più avanzate per la realizzazione di applicazioni grafiche interattive e ad alte prestazioni. Vengono affrontati i principi dell'animazione digitale, sia dal punto di vista artistico e progettuale, sia attraverso tecniche computazionali quali lo skinning, il rigging e la cinematica diretta e inversa. Particolare attenzione è riservata agli effetti visivi (Visual Effects, VFX), come il bloom, i raggi volumetrici (god rays) e altri effetti realizzabili mediante shader. Il corso esplora inoltre le tecnologie di calcolo parallelo su GPU, attraverso lo studio di CUDA e OpenCL, e le API grafiche DirectX, evidenziandone caratteristiche, potenzialità e ambiti applicativi. Il percorso si conclude con l'introduzione alla grafica basata sulla fisica (Physics-Based Graphics), che integra modelli fisici e simulazioni per ottenere rappresentazioni visive realistiche e dinamicamente coerenti. L'obiettivo complessivo è fornire agli studenti competenze avanzate per progettare, sviluppare e ottimizzare sistemi di grafica tridimensionale, rendering, animazione e simulazione, con applicazioni nei settori dell'intrattenimento digitale, dei videogiochi, della realtà virtuale e della visualizzazione scientifica.



Prerequisiti

Programmazione, matematica di base.

Testi Adottati

Documentazioni ufficiali:
- Unreal Game Engine
- Vulkan
- DirectX
- OpenGL
- CUDA, OpenCL


Bibliografia Di Riferimento

Libri suggeriti: - Fundamentals of Computer Graphics, Marschner et al. - Foundations of Game Engine Development, E. Lengyel - C++ Game Development By Example, S. Shekar - Game Engine Architecture, J. Gregory - Polygon Mesh Processing, Botsch et al.

Modalità Erogazione

Lezioni frontali con esercitazioni.

Modalità Frequenza

Non obbligatoria.

Modalità Valutazione

Progetto individuale o di gruppo. La valutazione degli studenti si basa sui descrittori di Dublino e tiene conto del livello di conoscenza, comprensione ed elaborazione critica degli argomenti trattati nel corso. Gli studenti che dimostrano di aver acquisito i concetti fondamentali e di saperli applicare in contesti semplici otterranno una valutazione sufficiente. I voti medi saranno assegnati a coloro che, oltre a padroneggiare le basi, mostrano capacità di analisi e rielaborazione autonoma di concetti più complessi. I voti più alti sono riservati agli studenti che evidenziano una comprensione approfondita, capacità di sintesi, spirito critico e autonomia nel risolvere problemi anche nuovi o non affrontati esplicitamente durante il corso.

scheda docente | materiale didattico

Mutuazione: 20810261 Computer Graphics in Ingegneria informatica e dell'intelligenza artificiale LM-32 MILICCHIO FRANCO

Programma

Il corso di Computer Graphics, rivolto agli studenti della laurea magistrale, intende fornire una preparazione teorica e pratica approfondita sui principali algoritmi, modelli matematici e strumenti tecnologici alla base della grafica computerizzata moderna. Il percorso si apre con un'introduzione alla computer graphics e alla sua evoluzione storica, per poi affrontare i fondamenti matematici e algebrici necessari alla rappresentazione e alla manipolazione di oggetti tridimensionali. Vengono approfonditi i principi della pipeline grafica, il funzionamento di OpenGL e l'architettura di Vulkan, con particolare attenzione alla gestione dei dati geometrici e alle strutture dati per la rappresentazione di mesh, curve e superfici. Il programma include inoltre lo studio delle strutture dati spaziali, delle tecniche di texturing, della gestione delle ombre e dei modelli di rappresentazione e gestione del colore e della colorimetria. Una parte significativa del corso è dedicata al ray tracing, dalle sue formulazioni fondamentali fino alle tecniche di rendering in tempo reale basate su RTX e Vulkan, nonché allo studio degli shader e delle tecniche di analisi e ottimizzazione delle prestazioni. La seconda parte del corso approfondisce le tecnologie e le metodologie più avanzate per la realizzazione di applicazioni grafiche interattive e ad alte prestazioni. Vengono affrontati i principi dell'animazione digitale, sia dal punto di vista artistico e progettuale, sia attraverso tecniche computazionali quali lo skinning, il rigging e la cinematica diretta e inversa. Particolare attenzione è riservata agli effetti visivi (Visual Effects, VFX), come il bloom, i raggi volumetrici (god rays) e altri effetti realizzabili mediante shader. Il corso esplora inoltre le tecnologie di calcolo parallelo su GPU, attraverso lo studio di CUDA e OpenCL, e le API grafiche DirectX, evidenziandone caratteristiche, potenzialità e ambiti applicativi. Il percorso si conclude con l'introduzione alla grafica basata sulla fisica (Physics-Based Graphics), che integra modelli fisici e simulazioni per ottenere rappresentazioni visive realistiche e dinamicamente coerenti. L'obiettivo complessivo è fornire agli studenti competenze avanzate per progettare, sviluppare e ottimizzare sistemi di grafica tridimensionale, rendering, animazione e simulazione, con applicazioni nei settori dell'intrattenimento digitale, dei videogiochi, della realtà virtuale e della visualizzazione scientifica.



Prerequisiti

Programmazione, matematica di base.

Testi Adottati

Documentazioni ufficiali:
- Unreal Game Engine
- Vulkan
- DirectX
- OpenGL
- CUDA, OpenCL


Bibliografia Di Riferimento

Libri suggeriti: - Fundamentals of Computer Graphics, Marschner et al. - Foundations of Game Engine Development, E. Lengyel - C++ Game Development By Example, S. Shekar - Game Engine Architecture, J. Gregory - Polygon Mesh Processing, Botsch et al.

Modalità Erogazione

Lezioni frontali con esercitazioni.

Modalità Frequenza

Non obbligatoria.

Modalità Valutazione

Progetto individuale o di gruppo. La valutazione degli studenti si basa sui descrittori di Dublino e tiene conto del livello di conoscenza, comprensione ed elaborazione critica degli argomenti trattati nel corso. Gli studenti che dimostrano di aver acquisito i concetti fondamentali e di saperli applicare in contesti semplici otterranno una valutazione sufficiente. I voti medi saranno assegnati a coloro che, oltre a padroneggiare le basi, mostrano capacità di analisi e rielaborazione autonoma di concetti più complessi. I voti più alti sono riservati agli studenti che evidenziano una comprensione approfondita, capacità di sintesi, spirito critico e autonomia nel risolvere problemi anche nuovi o non affrontati esplicitamente durante il corso.