Computer Graphics

Marco Tarini
Università degli Studi di Milano
2022/2023


Data 2ndo compitino

La data del secondo compitino è fissata a
LUNEDI 19 GIUGNO 16:30-18:30
(aula Delta).

(come già specificato, la partecipazione è riservata a chi abbia superato il primo compitino)


Informazione: serie di mini-seminari sul C++ (ogni lunedì pomeriggio); dettagli [qui] (no, non sono direttamente collegati con gli argomenti o l'esame di questo corso).


Docente:
Marco Tarini (me!)

Orario:
Martedì 10:30..12:30 - Aula 304, via Celoria 18
Venerdì 11:30..13:30 - Aula 204, via Celoria 18

Lingua:
Italiano

Modalità:
Le lezioni sono in presenza.

Calendario & slide:
I lucidi saranno resi disponibili in questa pagina dopo ogni lezione. Essi vanno intesi come un supporto visivo alla lezione, e costituiscono anche un diario dettagliato degli argomenti svolti; non sono necessariamente un materiale di studio autoesplicativo e sufficiente alla preparazione.

Il seguente calendario è soggetto a cambiamenti!

0-00 2023-02-28
10:30..12:30
Martedì
Aula 304
Presentazione del corso.
Introduzione: cosa è e a cosa serve la CG
PARTE I: 3D data structures
1-00 2023-03-03
11:30..13:30
Venerdì
Aula 204
Introduzione (appendice)
Modelli 3D: in generale.
Nuovole di punti: definizione.
MATH-01: Punti e vettori: operazioni lineari.
1-01 2023-03-07
10:30..12:30
Martedì
Aula 304
MATH-02: Punti e vettori: norma e normali.
Nuovole di punti: processing.
1-02 2023-03-14
10:30..12:30
Martedì
Aula 304
Nuovole di punti: allinemento.
Mesh Poligonali: definizioni, proprietà.
1-03 2023-03-17
11:30..13:30
Venerdì
Aula 204
Mesh Poligonali: triangolazione; attributi.
MATH-03: Coordinate baricentriche
MATH-04: Prodotto cross
1-04 2023-03-22
10:30..12:30
Martedì
Aula 304
Mesh Poligonali: Computo normali. Mesh processing 1/2
(pseudocodice: [1], [2])
1-05 2023-03-24
11:30..13:30
Venerdì
Aula 204
Mesh Poligonali: Mesh processing 2/2
1-06 2023-03-28
10:30..12:30
Martedì
Aula 304
Mesh Poligonali: regolarità, modellazione manuale, strutture dati.
1-07 2023-03-28
11:30..13:30
Venerdì
Aula 204
Mesh Poligonali: texture e UV-map.
1-08 2023-04-04
10:30..12:30
Martedì
Aula 304
Curve e superfici parametriche.
1-09 2023-04-08
11:30..13:30
Venerdì
Aula 204
Modelli volumetrici: mesh poliedrali, voxel, marching squares.
1-10 2023-04-18
10:30..12:30
Martedì
Aula 304
Modelli volumetrici: modelli impliciti.
Modelli volumetrici: poisson reconstruction, octree.
1-11 2023-04-21
11:30..13:30
Venerdì
Aula 204
Modelli regolari: campi di altezza e range scans.
Superfici di suddivisione: cenni.
PARTE II: 3D rendering
2-00 2023-04-28
11:30..13:30
Venerdì
Aula 204
Immagini digitali e colori.
Ray-tracing 1/2: intro e ray-casting.
MATH-05: Prodotto dot
2-01 2023-05-05
11:30..13:30
Venerdì
Aula 204
Ray-tracing 2/2: basi matematiche.
Rasterization based: intro e confronto.
2-02 2023-05-09
10:30..12:30
Martedì
Aula 304
MATH-06: Trasformazioni affini 1/3.
2-03 2023-05-12
11:30..13:30
Venerdì
Aula 204
MATH-06: Trasformazioni affini 2/3.
2-04 2023-05-16
10:30..12:30
Martedì
Aula 304
MATH-06: Trasformazioni affini 3/3.
Trasformazioni nel rendering: intro.
Trasformazioni nel rendering: Modellazione.
2-05 2023-05-19
11:30..13:30
Venerdì
Aula 204
Trasformazioni nel rendering: Vista.
Trasformazioni nel rendering: Proiezione 1/2
2-06 2023-05-23
10:30..12:30
Martedì
Aula 304
Trasformazioni nel rendering: Proiezione 2/2
Rasterizzazione di primitive.
GPU e API grafiche (cenni)
2-07 2023-05-26
11:30..13:30
Venerdì
Aula 204
PROG-01: hello triangle (& quad)
         [cgLab00.html] [cgLab01.html]
2-08 2023-05-30
10:30..12:30
Martedì
Aula 304
Rimozione superfici nascoste.
PROG-02: trackball, etc.
         [cgLab02.html]
2-09 2023-05-30
10:30..12:30
Martedì
Aula 304
Partecipating media.
PROG-03: [cgLab03.html]
Lighting: Lambertian, ambient
PROG-04: [cgLab04.html]
2-10 2023-06-09
11:30..13:30
Venerdì
Aula 204
Lighting: Phong lighting model
Trasformazioni nel rendering: Scene gerarchiche
PROG-04: [cgLab05.html]

Libri di testo suggeriti:
(Nessun libro di testo è strettamente necessario)
Per la parte matematica: Mathematics for 3D Game Programming and Computer Graphics
Un sottoinsieme degli argomenti: Introduction to Computer Graphics A Practical Learning Approach

Modalità di esame:
L'esame si può superare in due modi:

Per gli studenti di Grafica ed Immagini Digitali, è sempre necessario un orale sugli ulteriori trattati ulteriori rispetto a quelli svolti in questo corso.
Gli scritti sono somministrati in forma di prova Moodle eseguita su un computer in aula e sono costituiti da una numerosa serie di piccole domande ed esercizi.

Link ufficiali:
Pagina del corso su Ariel
Programma del corso (dal manifesto)
Current rules for lectures at Unimi

Alcuni software pubblici citati o visti a lezione:
Meshlab, una suite gratuita e OpenSource per geometry processing
Sculptris Alpha, una software gratuito per digital sculpting
Wings 3D, un software gratuito e OpenSource per direct low-poly modelling
Blender, una software gratuito e OpenSource per modellazione 3D
Instant Meshes, una software per remeshing semiregolare
Meshes Repair Tool, una collezione di software specializzato per mesh repairing
InkScape, un software di disegno 2D per immagini vettoriali SVG che fa uso di Bézier curves
Mitsuba Renderer, un software per il rendering 3D offline (che usa ray tracing).

Link di iteresse citati a lezione:
Modelli 3D con tag "point clouds" su Sketchfab (un repository di modelli 3D di varia origine)
Real World Textured Things (un repository di modelli 3D con tessiture costruiti con fotogrammetria)
Hexalab (uno strumento online per visualizzare Hexa-mesh.

Dataset:
Alcune Point Clouds di esempio: [1] [2]
Alcune Mesh di esempio: [3]
Repository di Hexa Mesh scaricabili: [4]
Un piccolo modello 3D di elicottero, per chi volesse povare ad inserirlo nell'ultimo progetto. [5]