Fondamenti di Grafica Tridimensionale 2009/2010

Programma

Il corso presenta un'introduzione alle principali tematiche della Grafica Tridimensionale focalizzando sugli aspetti teorici e pratici della modellazione basata su mesh triangolari e del rendering. Una parte significativa del corso ha carattere progettuale e prevede la partecipazione attiva degli studenti allo sviluppo collaborativo di MeshLab, un sistema open source per il mesh processing. La parte progettuale e' basata principalmnente sulle seguenti tecnologie: C++, OpenGL e QT.
Si sottolinea che MeshLab, il tool al cui sviluppo gli studenti collaboreranno nella parte progettuale, non e' un progetto puramente didattico, ma e' un sistema vero e complesso; MeshLab e' correntemente usato da migliaia di utenti in tutto il mondo, per cui si richiede coinvolgimento, motivazione, e un po' di responsabilita'...
Argomenti trattati nel corso:

Modalita' di esame

L'esame e' costituito da una parte progettuale ed una teorica.
Il progetto e' generalmente costituito da un plugin di MeshLab e costituisce la parte + significativa dell'esame. I possibli progetti di plugins li trovate nella wiki di meshlab;
La parte teorica che riguarda gli argomenti di grafica trattati durante il corso, puo' essere sostenuta o con un compitino, o con un orale al momento della consegna della parte progettuale.
La parte progettuale vale 20 trentesimi, mentre la parte teorica vale 10 trentesimi. Voto finale = Progetto + max (Orale, Compitino)

Orario

Lunedì Martedì Mercoledì Giovedì Venerdì
Aula C
14-16
Aula B1
11-13


Eventuali lezioni di recupero si svolgeranno in aula da stabilirsi indicativamente il venerdi' mattina dalle 9 alle 11

Lezioni e Lucidi

tr>
21 Set 09 Lun
LA PRIMA LEZIONE DI FGT SI SVOLGERA' MERC 23 SETTEMBRE

23 Set 09 Mer Introduzione al corso (PDF)
Strutture dati per complessi simpliciali, la vcg library
28 Set 09 Lun Strutture dati per complessi simpliciali, la vcg library, Seconda parte
(PDF).
esempi pratici in c++
30 Set 09 Mer Lezione rimandata
a data
da destinarsi.
5 Ott 09 Lun Lezione rimandata
a data
da destinarsi.
7 Ott 09 Mer Strutture dati per complessi simpliciali, la vcg library, Seconda parte
(ZIP con il codice).
esempi pratici in c++
9 Ott 09 Ven
(Aula B1 ore 9-11)
Lezione rimandata
a data
da destinarsi.
12 Ott 09 Lun Lezione rimandata
a data
da destinarsi.
14 Ott 09 Mer Camera, cenni sulla pipeline di rendering di OpenGL, Sistemi di riferimento e trasformazioni
(PDF pipeline opengl)
(PDF trasformazioni)
16 Ott 09 Ven
(Aula B1 ore 9-11)
LEZIONE RECUPERO
La vcg library, Seconda parte
ZIP1 (esempi componenti opzionali)
ZIP2 (esercizio swap edge)
19 Ott 09 Lun La vcg library, Terza parte
ZIP (esercizio completato swap edge)
21 Ott 09 Mer Lighting e Texturing, equazione di radianza,
modelli di illuminazione di Phong,
Tecniche di shading (Phong, flat, Gouraud)
23 Ott 09 Ven
(Aula B1 ore 9-11)
LEZIONE RECUPERO
Lighting e Texturing 2
(PDF Lighting e texturing)
MeshLab: prima panoramica
26 Ott 09 Lun
MeshLab: Scrittura di un plugin di I/O
28 Ott 09 Mer
30 Ott 09 Ven
(Aula B1 ore 9-11)

LEZIONE RECUPERO
Global Illumination
(PDF)
6 Nov 09 Ven
(Aula B1 ore 9-11)

LEZIONE RECUPERO
Curvature e Smoothing
(PDF)
9 Nov 09 Lun

Progetto
Simplification Algorithms
(PDF)
11 Nov 09 Mer

Progetto
13 Nov 09 Ven
(Aula B1 ore 14-16)

LEZIONE RECUPERO
16 Nov 09 Lun
Sospensione Didattica Compitini
18 Nov 09 Mer
Sospensione Didattica Compitini
23 Nov 09 Lun

Progetto
Spatial Indexing structure
(PDF)
25 Nov 09 Mer

Sospensione Didattica deliberata dal rettore per Assemblea di Ateneo
30 Nov 09 Lun

Progetto
2 Dic 09 Mer

Progetto
7 Dic 09 Lun

Progetto
9 Dic 09 Mer

Spatial Indexing structure

Mailing List

Come mailing list per corso e per tutti i problemi che riguardano compilazione e debugging della vcg library e di meshlab useremo quella che trovate su:

http://lists.sourceforge.net/lists/listinfo/meshlab-devel

Quindi iscrivetevi e postate dubbi e problemi li' sopra anziche' mandarmi mail dirette, cosi' rispondo una volta sola per tutti :).

VCG Library

Libreria per la gestione di mesh triangolate, costituisce il framework dove abbiamo fatto le esercitazioni, e' distribuita con licenza GPL, il sito ufficiale e' vcg.sf.net. Non ne vengono rilasciate release donwloadabili semplicemente ma dovete scaricarla in SVN anonimo; Qualche hint tecnico su come fare checkout della libreria con tortoise sotto win lo trovate nelle pagine della documentazione del meshlab, qui. Per compilare gli esempi (quelli sotto apps/sample) non ci sono makefile o soluzioni .net gia' pronte ma solo i *.pro a partire dai quali usando qmake (il tool di qt per la creazione automatica di makefiles) potete generarli. Gli esempi distribuiti si suppone stiano sotto la dir apps/sample.

MeshLab

Sistema open source per la visualizzazione e il processing di mesh lo trovate sorgenti e compilato su http://meshlab.sourceforge.net . Per la compilazione di MeshLab fate riferimento alla pagina Compiling della wiki di meshlab; Parte dell'esame consiste nella realizzazione di plugins per il meshlab, i possibili progetti di plugins li trovate alla pagina projects della documentazione del MeshLab.

Compitino


Vale fino a 10 pt sul totale. Tre esempi di compitino: 2006, 2007, 2008, 2009

Il compitino si svolgera' VENERDI 18 Dicembre 2009 ore 930 AULA I 1
Il compitino si svolgera' MERCOLEDI 16 Dicembre 2009 ore 930 AULA B1
Risultati del compitino 2009/2010

Testi e materiale didattico

Durante il corso verranno distributi elettronicamente i lucidi presentati a lezione. Per un trattamento un po' piu' ad alto livello ed ordinato, buona parte degli argomenti teorici (trasformazioni, lighting e shading, texturing, la pipeline di rendering e un po' di teoria del colore li trovate nel seguente testo:

Cover of the book Titolo:

Autore:

Editore:
ISBN:
Edizione:
Pagine:
Prezzo:
Fondamenti di grafica tridimensionale interattiva
R. Scateni, P.Cignoni.
C. Montani, R. Scopigno

McGraw-Hill
8838662150
2005
270
€ 23,00

Per quanto riguarda invece la parte progettuale, che richiede una ottima conoscenza del C++ ed una ragionevole dimestichezza con QT, esiste moltissimo materiale disponibile in rete. Segnalo solo un paio di link: