COMPUTER GRAFICA AVANZATA

Anno accademico 2023/2024 - Docente: Giovanni GALLO

Risultati di apprendimento attesi

Il corso intende coprire nozioni teoriche e offrire formazione in alcune applicazioni della Computer Grafica nelle applicazioni scientifiche e nei multimedia.

In particolare si copriranno con vari livelli di approfindimento i seguenti temi:

- Data Visualization. Verranno presentati i principali paradigmi e presentate le funzioni avanzate della libreria Python Seaborn. (1 CFU)
- Introduzione al Computer Aided Geometric Design. Introduzione alla teoria e pratica delle curve e superifcie di Bezier e NURBS (1 CFU)
- Geometric Processing per dati 3d. Introduzione al calcolo e studio degli invarianti geometrici e geometrico-differenziali delle mesh 3d (2 CFU)
- Introduzione alla programmazione visuale (graphical nodes in Blender) (1 CFU)
- Programmazione di script Python per la grafica (in Blender) (1 CFU)

Modalità di svolgimento dell'insegnamento

Lezioni frontali (20%) e laboratori (40%)

Prerequisiti richiesti

La frequenza con profitto del corso di Computer Grafica del primo livello di INformatica è raccomandata ma non obbligatoria.
Conoscenza di nozioni di statistica descrittiva.
Conscenza di nozioni di Analisi di variabili reali.
Conoscenza del linguaggio Python.
Conoscenza di un ambiente di sviluppo 3d (blender)

Frequenza lezioni

Secondo le regole del corso di Studio

Contenuti del corso

Data Visualization, catalogo di modalità per la rappresentazione di dati multidimensionali e loro costruzione usando librerie Python (Matplotlib e Seaborn).

Principi di CAGD relativi a curve di Bezier, curve spline, NURBS. Principali proprietà e algoritmi.
Principi di geometria differenziale discreta e operazioni di elaborazine geometrica di mesh 3d.
Programmazione visuale (nodes) in Blender.
Sviluppo di script Python per Blender.

Testi di riferimento

Dispense del docente
Puntatori a risorse on line

Programmazione del corso

 ArgomentiRiferimenti testi
1Scientific Visualizationdispense docente
2Laboratory of Scientific visualizationmanuali on line
3Basics of CAGDdispense docente
4Basics of Geometry processingdispense docente
5Python scripting for Blendermanuali on line
6Visual programing in Blender (lab)manuali on line

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

verifiche sui seguenti elementi:

a) visualizzazione di dati assegnati dal docente; (25%)

b) sviluppo di script Python in Blender che implementi operazioni di Geometry processing assegnate dal docente; (25%)
c) sviluppo di un semplice progetto usando i geometry nodes (proposto dallo studente) (25%)
d) colloquio orale sulle nozioni teoriche del corso. (25%)

In caso di necessità, a seguito di apposite indicazioni da parte degli organi di Ateneo, la verifica potrà essere effettuata in modalità telematica, con le necessarie variazioni rispetto a quanto dichiarato in precedenza.

Le prove sono finalizzate per ottenere una valutazione complessiva della preparazione dello studente Il voto è attribuito secondo il seguente schema:

  • Non approvato: lo studente non ha acquisito i concetti di base e non è in grado di rispondere ad almeno il 60% delle domande né di svolgere gli esercizi teorici e pratici.

  • 18-20: lo studente dimostra una padronanza appena sufficiente dei concetti base, e/o riesce ad impostare gli esercizi teorico/pratici con molta difficoltà e con vari errori.

  • 21-24: lo studente dimostra una padronanza minima dei concetti di base, le sue capacità di collegamento dei contenuti sono modeste, riesce a risolvere semplici esercizi.

  • 25-27: lo studente dimostra una buona padronanza dei contenuti del corso, le sue capacità di collegamento dei contenuti sono buone, risolve gli esercizi con pochi errori.

  • 28-30 e lode: lo studente ha acquisito tutti i contenuti del corso ed è in grado di padroneggiarli compiutamente e di collegarli con spirito critico; risolve gli esercizi in modo completo e senza errori di particolare rilievo.

Esempi di domande e/o esercizi frequenti

Progetto a) Dato un Data Set Tabulare multidimensionale con tipi di dati eterogenei produrre un report con grafici in varie modalità che consentano di comprendere visualmente le principali proprietà statistico/descrittive del Data Set. Verranno forniti alcuni "tempalte" del report grafico desiderato.

Progetto b) Preso un operatore base di geometria differenziale discreta su mesh 3d (assegnato dal docente), sviluppare in Python un operatore all'interno di Blender che lo implementi e ne mostri il risultato visuale.Esempi verranno forniti all'inizio del corso.

Progetto c) Realizzare una rete di Geometry nodes in Blender che implementi un task di modellazione e animazione parametrica di un oggetto complesso a scelta dello studente. Esempi verranno forniti all'inizio del corso.