Fondamenti di Grafica Tridimensionale 2008/2009

Programma

Il corso presenta un'introduzione alle principali tematiche della Grafica Tridimensionale focalizzando sugli aspetti teorici e pratici della modellazione 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 e motivazione...
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. Prima di poter iniziare lo sviluppo del progetto si richiede che gli studenti dimostrino un minimo di dimestichezza con la struttura del sistema stesso effettuando: Quanto sopra va fatto usando i tracking tools di SourceForge ; non e' necessario che le patch che mandate siano relative agli stessi bug che avete trovato. Aggiornate voi stessi questa pagina della wiki. 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 B1
14-16
Aula A1
14-16


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

Lezioni e Lucidi

22 Set 08 Lun Introduzione al corso (PDF)
Strutture dati per complessi simpliciali, la vcg library
24 Set 08 Mer Strutture dati per complessi simpliciali, la vcg library, Seconda parte
Slide Aggiornate: (PDF).
esempi pratici in c++
29 Set 08 Lun Esempi pratici di utilizzo della VCG library. Progetto minimo command line, apertura di un file, update di topologia e flags, enumerazione degli elementi, metodi per contare gli edge di una mesh. (zip).
01 Oct 08 Mer altri esempi pratici di uso della VCG library. Analisi di situazioni non manifold, per vertice e per faccia. Codice: (zip).
Esperimenti/Esercizi che potete fare: (1) costruire una mesh non manifold sia per vertice che per faccia e testare. (2) sostituire il secondo ciclo da per-faccia a per-vertice.
06 Oct 08 Lun La pipeline di OpenGL. Coordinate Omogenee.
(PDF)
08 Oct 08 Mer Sospensione della Didattica.
Lezione rimandata al prossimo lunedi.
12 Oct 08 Lun Sistemi di riferimento e Trasformazioni (PDF)
15 Oct 08 Mer Sospensione dell'attività didattica
in tutti i Corsi di studio della Facoltà; è prevista, convocata dal Magnifico Rettore, una assemblea di Ateneo.
20 Oct 08 Lun Sospensione dell'attività didattica
Come da comunicato del CCL la sospensione della didattica va dal 16 al 20 incluso
22 Oct 08 Mer Lighting e Texturing (prima parte)
(PDF)
27 Oct 08 Lun Sospensione dell'attività didattica
Per permettere la partecipazione alla assemlblea tenuta da docenti e studenti in aula A1
29 Oct 08 Mer MeshLab (iniziare a sviluppare)
(PDF)
31 Oct 08 Ven 9-11 MeshLab (sviluppare ancora)
La lezione, vista la carenza di aule al polo fibonacci, si svolgera' (orario 9:00-11:00) in Aula C40 all'area di ricerca CNR (qui)
07 Nov 08 Ven 9-11 MeshLab (ancora!)
La lezione straordinaria, vista la solita carenza di aule al polo fibonacci, si svolgera' (orario 9:00-11:00) in Aula C40 all'area di ricerca CNR (qui) (Per chi non fosse mai stato al CNR si legga bene la mappina che e' facile perdersi.
10 Nov 08 Lun Lighting e Texturing (seconda parte)
12 Nov 08 Mer MeshLab Sviluppo di un plugin, clustering vertex based. guardate i sorgenti, plugin filter_sampling
17 Nov 08 Lun Algoritmi di semplificazione
(PDF) e (PDF)
19 Nov 08 Mer LEZIONE RIMANDATA
a data da decidersi...
24 Nov 08 Lun Global Illumination
(PDF)
26 Nov 08 Mer MeshLab
Architettura di un plugin di tipo editing.
28 Nov 08 Ven 9-11 OpenGL shading Language
Lezione Straordinaria. AULA S1, ore 09-11

(PDF)
01 Dic 08 Lun LEZIONE RIMANDATA
a data da decidersi...
03 Dic 08 Mer LEZIONE RIMANDATA
a data da decidersi...
10 Dic 08 Mer Cenni di geometria differenziale
Curvature continue e discrete, Smoothing (PDF)
12 Dic 08 Ven 9-11 Spatial indexing
(PDF) slide di Fabio Ganovelli

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

AULA B1 Venerdi 19 dicembre ore 14 .
Vale fino a 10 pt sul totale. Tre esempi di compitino: 2006, 2007, 2008
Risultati Compitino

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: