Computer graphics
A.A. 2021/2022
Obiettivi formativi
L'insegnamento ha l'obiettivo di introdurre le nozioni di basi di Modellazione 3D e Rendering, nel contesto della Grafica Computazionale. L'insegnamento presenta le strutture dati principali per la modellazione digitale di oggetti tridimensionali, e gli algoritmi di rendering preposti alla sintesi di immagini digitali che ritraggono gli oggetti modellati (in tempo reale o offline). L'insegnamento presenta anche alcuni comuni strumenti software e linguaggi formali utilizzati in quest'ambito.
Risultati apprendimento attesi
Gli studenti acquisiscono le nozioni di Computer Graphics che permetteranno di individuare la soluzione adeguata ad un problema dato che richieda la modellazione digitale di oggetti tridimensionali e la loro visualizzazione (in uno qualsiasi dei numerosi campi di applicazione possibili). I principi matematici, algoritmici e di strutture dati impartiti, inoltre, forniscono una base di partenza atta ad implementare la soluzione individuata.
Periodo: Secondo semestre
Modalità di valutazione: Esame
Giudizio di valutazione: voto verbalizzato in trentesimi
Corso singolo
Questo insegnamento non può essere seguito come corso singolo. Puoi trovare gli insegnamenti disponibili consultando il catalogo corsi singoli.
Programma e organizzazione didattica
Edizione unica
Responsabile
Periodo
Secondo semestre
Programma
* [-] Introduzione
PARTE I: rappresentazioni di strutture 3D
** [M] Modelli 3D: introduzione e proprietà
** [M] Point Clouds [struttura dati]
** [G] Vector and Point algebra [sommario & ripasso]
** [M] Meshes [attributi, normali, modo indicizzato indicizzato]
* [M] Meshes [cenni sul processing: semplifcazione e remeshing]
* [M] Meshes [cenni sul processing: smooth, denoise, clean]
* [M] Meshes [rappresentazioni basate su half-edges]
** [M] Meshes: tessiture & UV mapping.
* [G] Superfici: normale, curvatura, smoothness.
** [M] Superfici di suddivisione: schemi
* [M] Height fields / Range Maps
** [M] Curve parametriche [Bézier curve]
* [M] Superfici parametriche [Bézier patch]
* [M] Volumetric models: voxelized [Oct-tree, marching cubes]
* [M] Volumetric models: Implicit models [CSG]
* [M] Volumetric models: mesh poliedrali.
* [M] Modelli 3D: Costruzione [cenni]
** [M] Modelli 3D: Acquisizione [Range Maps.]
PART II: 3D rendering
* [R] Rendering [intro]
* [R] Ray-tracing [intro]
* [P] Linguaggio GLSL
* [P] Ray-tracing in GLSL [ray casting di sfere]
** [P] Ray-tracing in GLSL [piani, intersezioni]
** [P] Ray-tracing in GLSL [ombre, riflessioni]
** [R] Rasterization [teoria e pipeline HW]
** [G] Trasformazioni spaziali [Trasformazioni affini]
** [G] Trasformazioni spaziali [Rotazioni e traslazioni]
** [G] Trasformazioni spaziali [sistemi di riferimento]
** [R] Pipeline di trasformazioni [Overview. Model matrix]
* [R] Pipeline di trasformazioni [View Matrix]
* [R] Pipeline di trasformazioni [Projection]
** [P] Rasterization in three.js [hello triangle]
* [R] Rasterization in three.js [meshes]
* [P] Rasterization in three.js [textures]
Legenda:
* = 1 ora
[M] Modellazione (1ma parte)
[R] Rendering (2nda parte)
[G] Geometria (basi matematiche)
[P] Programmazione (2nda parte)
PARTE I: rappresentazioni di strutture 3D
** [M] Modelli 3D: introduzione e proprietà
** [M] Point Clouds [struttura dati]
** [G] Vector and Point algebra [sommario & ripasso]
** [M] Meshes [attributi, normali, modo indicizzato indicizzato]
* [M] Meshes [cenni sul processing: semplifcazione e remeshing]
* [M] Meshes [cenni sul processing: smooth, denoise, clean]
* [M] Meshes [rappresentazioni basate su half-edges]
** [M] Meshes: tessiture & UV mapping.
* [G] Superfici: normale, curvatura, smoothness.
** [M] Superfici di suddivisione: schemi
* [M] Height fields / Range Maps
** [M] Curve parametriche [Bézier curve]
* [M] Superfici parametriche [Bézier patch]
* [M] Volumetric models: voxelized [Oct-tree, marching cubes]
* [M] Volumetric models: Implicit models [CSG]
* [M] Volumetric models: mesh poliedrali.
* [M] Modelli 3D: Costruzione [cenni]
** [M] Modelli 3D: Acquisizione [Range Maps.]
PART II: 3D rendering
* [R] Rendering [intro]
* [R] Ray-tracing [intro]
* [P] Linguaggio GLSL
* [P] Ray-tracing in GLSL [ray casting di sfere]
** [P] Ray-tracing in GLSL [piani, intersezioni]
** [P] Ray-tracing in GLSL [ombre, riflessioni]
** [R] Rasterization [teoria e pipeline HW]
** [G] Trasformazioni spaziali [Trasformazioni affini]
** [G] Trasformazioni spaziali [Rotazioni e traslazioni]
** [G] Trasformazioni spaziali [sistemi di riferimento]
** [R] Pipeline di trasformazioni [Overview. Model matrix]
* [R] Pipeline di trasformazioni [View Matrix]
* [R] Pipeline di trasformazioni [Projection]
** [P] Rasterization in three.js [hello triangle]
* [R] Rasterization in three.js [meshes]
* [P] Rasterization in three.js [textures]
Legenda:
* = 1 ora
[M] Modellazione (1ma parte)
[R] Rendering (2nda parte)
[G] Geometria (basi matematiche)
[P] Programmazione (2nda parte)
Prerequisiti
Sono necessarie le conoscenze di algebra lineare, analisi funzionale, algoritmi, e programmazione.
Il superamento degli esame di Programmazione e Matematica sono dunque *propedeutici* all'insegnamento di Computer Graphics.
Il superamento degli esame di Programmazione e Matematica sono dunque *propedeutici* all'insegnamento di Computer Graphics.
Metodi didattici
La maggior parte degli argomenti sono esposti attraverso lezioni frontali. Nella prima parte (3D modelling) ci si avvale di strumenti di modelling e geometry processing per esemplificare gli argomenti trattati. Nella seconda parte (3D rendering) le lezioni sono alternate con sessioni di live coding in aula, che ripercorrono gli argomenti proposti. A questo scopo, si fa uso di apposite librerie e linguaggi.
Materiale di riferimento
Nel sito del corso (su piattaforma Ariel) sono forniti lucidi e materiali didattici.
Il seguente libro di testo può essere di ausilio per il background matematico:
Mathematics for 3D Game Programming and Computer Graphics (any edition) - Eric Lengyel - Course Technology
Il seguente libro di testo può essere di ausilio alla preparazione di alcuni degli argomenti trattati:
"Introduction to Computer Graphics: A Practical Learning Approach" M Corsini, F Ganovelli, S Pattanaik, M Di Benedetto
Il seguente libro di testo può essere di ausilio per il background matematico:
Mathematics for 3D Game Programming and Computer Graphics (any edition) - Eric Lengyel - Course Technology
Il seguente libro di testo può essere di ausilio alla preparazione di alcuni degli argomenti trattati:
"Introduction to Computer Graphics: A Practical Learning Approach" M Corsini, F Ganovelli, S Pattanaik, M Di Benedetto
Modalità di verifica dell’apprendimento e criteri di valutazione
L'esame si svolge in modalità scritta attraverso la piattaforma Moodle SEB, e consiste in una sequenza di domande (chiuse, aperte, risoluzione di piccoli esercizi...) che vertono sull'intero programma.
La valutazione è tesa a verificare la piena comprensione degli argomenti trattati nel corso, la capacità di individuare le soluzioni esistenti idonee ad affrontare le sfide tecniche relative alla computer graphics, l'acquisizione del vocabolario tecnico proprio della disciplina, e, in maniera precipua, il grado di familiarità raggiunto nell'uso degli strumenti matematici preposti allo scopo.
La valutazione è tesa a verificare la piena comprensione degli argomenti trattati nel corso, la capacità di individuare le soluzioni esistenti idonee ad affrontare le sfide tecniche relative alla computer graphics, l'acquisizione del vocabolario tecnico proprio della disciplina, e, in maniera precipua, il grado di familiarità raggiunto nell'uso degli strumenti matematici preposti allo scopo.
Docente/i
Ricevimento:
Martedì 14:30-17:30 (o su appuntamento)
Dipartimento (Via Celoria 18) -- 4to piano.