Grafica (C.d.S. Informatica) A.A.2003/04
Argomenti trattati a Lezione
- Ma.24/02/04, ore 14.00-16.00, aula 7^ piano, Lezione 1.
Introduzione al corso: rilevazione
statistica mediante compilazione scheda informativa, equazione
"grafica=modellazione+resa", descrizione di alcune applicazioni della grafica 3D.
- Gi.26/02/04, ore 14.00-16.00, aula 7^ piano, Lezione 2.
Altre applicazioni della grafica 3D; proiezione del cortometraggio Luxo Junior e
Geri's Game e di alcuni video dimostrativi della Pixar, Industrial Ligh+Magic e
Attitude Studio. Hardware per un sistema grafico interattivo (architettura
di un display raster scan, CRT, frame buffer, DPU, CRT a colori...
- Ve.27/02/04, ore 14.00-16.00, aula 7^ piano, Lezione 3.
...LCD, tipi di frame buffer, dispositivi di input); Software per un
sistema grafico interattivo: il problema dell'interattivita`, ciclo
di polling, coda degli eventi, funzioni di libreria che gestiscono la coda
degli eventi; Sistema X Window: architettura del sistema, X Client, rete,
X Server, X Protocol, Xlib, Window Manager.
- Lu.01/03/04, ore 17.00-19.00, aula 7^ piano, Lezione 4.
XClient che usa Toolkit e XClient che usa solo Xlib; display e screen
(cosa settare perche' l'X Client usi un X Server e l'X Server metta a disposizione
le sue risorse per l'X Client); politica di bufferizzazione e svuotamento del buffer
delle richieste; risorse, proprieta' e atomi, caratteristiche delle window,
gerarchia delle window, mapping e visibility, disegno e graphics context, eventi.
- Gi.04/03/04, ore 14.00-16.00, aula 7^ piano, Lezione 5.
Elementi di programmazione X Window: esaminati alcuni semplici programmi
Client che fanno esclusivo uso di Xlib. Messo a disposizione un archivio di
semplici programmi da provare e modificare.
- Ve. 05/03/04, ore 14.00-16.00, aula 7^ piano, Lezione 6.
Introduzione ai sistemi B-Rep (Boundary Representation) per la rappresentazione
di modelli 3D (Mesh poligonali, Superfici matematiche);
Rappresentazione poligonale (struttura dati PSP
o VEF) per oggetti solidi e superfici aperte (mesh di differenti tipi);
formati .m, .ply, wavefront .obj, conversione formati e convertitori.
Un programma di esempio per la visualizzazione di mesh poligonali che
fa uso della libreria trim. Messo a disposizione archivio mfiles.tgz e
programmi di visualizzazione che fanno uso della libreria trim (trimlibrary.tgz).
- Ma.09/03/04, ore ore 14.00-16.00, aula 7^ piano, Lezione 7.
Trasformazioni geometriche 3D in forma matriciale, composizione di
trasformazioni mediante prodotto di matrici, trasformazioni elementari:
traslazione, scala, rotazione rispetto agli assi coordinati; inversione delle trasformazioni,
cenno ad alcune trasformazioni composte come rotazione e scala rispetto ad un punto
e simmetria rispetto ad una retta.
- Gi.11/03/04, ore 14.00-16.00, aula 7^ piano, Lezione 8.
Commutativita' di alcune trasformazioni, matrici per simmetrie, trasformazioni di shear,
trasformazione del sistema di riferimento. Trasformazione di vista; trasformazioni
prospettiche e parallele; sistema di coordinate cartesiano e sferico;
proiezioni centrali (1 punto di fuga) con determinazione delle formule per il
viewing 3D
- Ve. 12/03/04, ore 14.00-16.00.
La lezione, causa chiusura del Dip. ospitante, per sciopero,
non si e' tenuta.
- Ma.16/03/04, ore ore 14.00-16.00, aula 7^ piano, Lezione 9.
Proiezioni da un punto di vista arbitrario (3 punti di fuga)
con determinazione delle formule per il viewing 3D;
discussione dei parametri di vista e del loro effetto.
Trasformazione window-viewport con introduzione del cono di vista
(o tronco di piramide) e definizione window; mostrato (e messo a disposizione)
un programma che usa solo Xlib e
implementa la trasformazione di vista visualizzando una superficie z=f(x,y).
- Gi.18/03/04, ore 14.00-16.00, aula 7^ piano, Lezione 10.
Trasformazione di vista come cambio di base con introduzione del view_up
vector; definizione interattiva dello zoom (angolare) mediante trasformazione
viewport-window; piramide di vista o volume di vista (clipping 3D); clipping 2D:
algoritmo di Cohen-Sutherland.
- Ve. 19/03/04, ore 14.00-16.00, aula 7^ piano, Lezione 11.
Ancora sull'algoritmo di Cohen-Sutherland e sua generalizzazione per il
clipping 3D.
Introduzione agli algoritmi di rendering ed in particolare agli algoritmi
di real-time rendering; depth-cueing, hidden-line; descritto
in particolare un algoritmo di hidden-line quasi esatto per mesh triangolari
e rettangolari (struttura VEF).
- Ma.23/03/04, ore ore 14.00-16.00, aula 7^ piano, Lezione 12.
Dettagli su algortimo di hidden-line visto; cenni su algoritmo del pittore
e visibility buffer; hidden-line per mesh ottenute da z=f(x,y) con proiezione
prospettica a 2 punti di fuga; mostrata esecuzione software relativo;
introduzione all'algoritmo Z-buffer per la rappresentazione shading di mesh
poligonali o VEF; descrizione dell'algoritmo in termini di pseudocodice e significato
del buffer Z. Elencati argomenti da trattare per esaurire completamente il
discorso sull'algoritmo Z-buffer: 1.scan conversion di poligoni; 2.determinazione
profondita' Z di un pixel; 3. modelli di illuminazione.
- Gi.25/03/04, ore 14.00-16.00, aula 7^ piano, Lezione 13.
Algoritmi di linea incrementale e di Bresenham; algoritmo di scan conversion
di poligoni convessi o vericalmente convessi denominato TAM; visionati
alcuni semplici programmi che implementano gli algoritmi introdotti;
introduzione ad un algoritmo di scan conversion generale per poligoni qualunque.
- Ve. 26/03/04, ore 14.00-16.00.
La lezione, causa chiusura del Dip. ospitante, per sciopero,
non si e' tenuta.
- Lu.29/03/04, ore 17.00-19.00, aula 7^ piano, Lezione 14.
Algoritmo di scan conversion per poligoni qualunque. Introduzione alla libreria
XTools per la progettazioni di GUI in ambiente XWindow; descrizione degli oggetti
disponibili; messi a disposizioni i sorgenti della libreria e alcuni programmi test.
- Gi.01/04/04, ore 14.00-16.00, aula 7^ piano, Lezione 15.
Proiezione prospettica dello spazio 3D dell'oggetto in coordinate dell'osservatore
nello spazio 3D di proiezione con la proprieta' di trasformare rette in rette
e piani in piani; obiettivo di conservare le corrette relazioni di profondita'
degli oggetti poligonali gestiti dallo Z-buffer.
Tecnica Flat-shading, Gouraud-shading e Phong-shading per la determinazione
del colore da assegnare ad ogni pixel dell'immagine.
- Ve.02/04/04, ore 17.00-19.00, aula 7^ piano, Lezione 16.
Introduzione ad un semplice modello di illuminazione:
luce ambiente e riflessione diffusa; sorgente di luce puntiforme con
riflessione diffusa e speculare; parametri dovuti agli oggetti (materiale),
posizione osservatore e geometria della scena (normali, angoli di incidenza,
angoli di riflessione). Cenno alle ombre.
- Lu.05/04/04, ore 17.00-19.00, aula 7^ piano, Lezione 17.
Introduzione alla libreria OpenGL; GL, GLX, GLU, GLUT,
primitive e attributi, un programma esempio con solo GL e poi con glut;
pipeline delle trasformazioni: trasformazioni di modellazione.
- Ma.06/04/04, ore ore 14.00-16.00, aula 7^ piano, Lezione 18.
Ancora su OpenGL: trasformazioni di vista e di proiezione, display list,
il colore, illuminazione (luci e materiali), tutorials e alcuni programmi esempio.
Assegnato il I Progetto
Programmazione con OpenGL
- Gi.15/04/04, ore 14.00-16.00, aula 7^ piano, Lezione 19.
Ripreso l'argomento Ombre: funzionalita' e osservazioni su
ombra e penombra; gestione di ombre nello Z-buffer mediande shadow-buffer;
problema dell'aliasing e approccio di antialiasing nella gestione ombre;
il fenomeno dell'Aliasing nella computer graphics, l'Antialiasing come
attenuazione del fenomeno, area sampling e supersampling; supersampling
adattivo, alcune immagini esempio senza e con antialiasing con differenti livelli
e soglie.
- Ve.16/04/04, ore 14.00-16.00, aula 7^ piano, Lezione 20.
Texture: modifica di attributi del modello e delle normali della superficie dell'oggetto;
texture mapping 2D; gestione di texture mapping 2D nello Z-buffer; magnification, minification
(mip-mapping), aliasing e antialiasing; two-part mapping; solid texture
o 3D texture; bump-mapping.
- Ma.20/04/04, ore 14.00-16.00, aula 7^ piano, Lezione 21.
Curve e superfici matematiche in contrapposizione
a rappresentazione poligonale; curve e superfici in forma implicita in
contrapposizione a forma parametrica (funzioni vettoriali in una o due variabili).
Scelta della rappresentazione parametrica; restrizione alla classe delle
funzioni polinomiali; scelta di funzioni base di forma.
- Gi.22/04/04, ore 14.00-16.00, aula 7^ piano, Lezione 22.
Funzioni base con le proprieta' di essere a somma 1 e non negative e di essere
invarianti per trasformazioni affini.
Rappresentazione in una opportuna base polinomiale di mesh (segmenti,
triangoli, rettangoli). Generalizzazione del concetto di mesh per
definire curve e superfici.
Curve di Bezier (curve polinomiali nella base di Bernstein);
algoritmo di de Casteljau; curva tangente (derivata dei
polinomi di Bernstein); punti di controllo e curva approssimante la
forma della poligonale di controllo; piu' curve di Bezier opportunamente
raccordate (curve NUBS).
- Ve.23/04/04, ore 14.00-16.00, aula 7^ piano, Lezione 23.
Suddivisione di una curva di Bezier mediante algoritmo di de Casteljau;
applicazioni: discretizzazione adattiva; curva di Bezier 3D; patch di Bezier:
definizione come prodotto tensoriale, punti e griglia di controllo, curve di bordo,
curve isoparametriche, vettori tangenti e normale in un punto, raccordo
di patch in posizione e tangenza, discretizzazione uniforme e adattiva.
- Ma.27/04/04, ore 10.00-12.00, CINECA, Lezione 24.
Visita al Cineca: presentazione Cineca, Teatro Virtuale e Sala Macchine.
- Gi.29/04/04, ore 14.00-16.00, aula 7^ piano, Lezione 25.
Definizione delle funzioni spline polinomiali o NUBS (Non Uniform B-Spline)
scalari in una variabile; formula ricorrente
per la definizione e calcolo delle B-spline Normalizzate; proprieta`;
introduzione alle curve NUBS 2D;
visionato pacchetto xccurv di xcmodel per la gestione di curve NUBS 2D.
- Ve.30/04/04, ore 14.00-16.00, aula 7^ piano, Lezione 26.
I polinomi sono casi particolari di spline e le curve di Bezier sono un caso
particolare di NUBS; parametrizzazione di una curva NUBS (scelta dei nodi);
punto iniziale e finale di una curva NUBS, vettore tangente nei punti estremi;
le curve NUBS sono approssimanti di forma della poligonale di controllo che
le definisce; controllo locale e guscio convesso globale e locale; punti di controllo
coincidenti; cuspidi; continuita' C^k e G^k; punti di controllo allineati.
- Ma.04/05/04, ore 14.00-16.00, aula 7^ piano, Lezione 27.
Curve NUBS chiuse e periodiche; algoritmo di valutazione di de Boor;
suddivisione di una curva NUBS mediante algoritmo di de Boor;
Definizione geometrica di curva NURBS 2D (proiezione di curve NUBS 3D e 3D come
proiezione di 4D) e sua definizione analitica come combinazione lineare di funzioni base
RB-spline; generalizzazione per NURBS di tutte le
proprieta` viste per NUBS; pesi NURBS come parametri di forma;
rappresentazione razionale delle sezioni coniche;
determinazione della NURBS arco di cerchio e cerchio (rappresentazione a
9 punti).
- Gi.06/05/04, ore 14.00-16.00, aula 7^ piano, Lezione 28.
Funzioni NUBS bivariate come prodotto tensoriale, funzioni B-spline bivariate,
superfici NUBS in forma parametrica, griglia dei punti di controllo, schema
bidirezionale di curve NUBS 3D;
superfici NURBS come proiezione di superfici NUBS 4D; funzioni RB-spline bivariate;
Introduzione al pacchetto XCSurf con alcuni esempi su curve 3D e superfici.
- Ve.07/05/04, ore 14.00-16.00, aula 7^ piano, Lezione 29.
Presentazione del sistema di modellazione e resa XCModel 3.0; presentazioni delle
funzionalita' del pacchetto XCSurf di XCModel.
- Ma.11/05/04, ore 14.00-16.00, aula 7^ piano, Lezione 30.
Programmazione avanzata con la libreria OpenGL: utilizzo di curve e superfici NURBS,
gestione di texture e double buffer per le animazioni; presentazione di alcuni semplici
programmi di esempio.
- Gi.13/05/04, ore 14.00-16.00, aula 7^ piano, Lezione 31.
Modellazione di Superfici da Curve: superfici per estrusione, rigate, rigate a tratti
(concetto di degree elevation e knot-insertion per rendere compatibili due curve), rivoluzione.
Progettazione di superfici classiche come cilindro, cono, sfera, toro, ecc..
Funzionalita' relative nel pacchetto XCSurf.
- Ve.14/05/04, ore 14.00-16.00, aula 7^ piano, Lezione 32.
Seminario sul sistema Maya della Alias tenuto da Raffaele Gambelli.
- Ma.18/05/04, ore 14.00-16.00, aula 7^ piano, Lezione 33.
Superfici swinging (generalizzazione di rivoluzione); swinging con curve 3D;
superfici tubular; superfici skinning.
Funzionalita' relative nel pacchetto XCSurf.
- Gi.20/05/04, ore 14.00-16.00, aula Pincherle, Lezione 34.
Introduzione al ray-tracing per la resa realistica di scene 3D; modello di
illuminazione globale, albero dei raggi, ricorsione e test di arresto, problemi,
tecniche di accelerazione; texture nel ray-tracing, antialising nel ray-tracing.
- Ve.21/05/04, ore 14.00-16.00, aula Pincherle, Lezione 35.
Presentazione del pacchetto xcrayt di xcmodel per la descrizione
mediante codice C o interattiva di una scena (scene graph) al fine di una resa realistica
mediante un algoritmo di ray-tracing. In particolare in questa lezione si e' esaminata
la parte di setting dei parametri per l'esecuzione del ray tracing.
- Ma.25/05/04, ore 14.00-16.00, aula 7^ piano, Lezione 36.
Presentazione della libreria descriptor e del
pacchetto xcrayt di xcmodel per la creazione di uno scene-graph
mediante codice C.
- Gi.27/05/04, ore 14.00-16.00, aula 7^ piano, Lezione 37.
Utilizzo del pacchetto xcrayt di xcmodel per la creazione di
uno scene-graph in maniera completamente interattiva.
Assegnato il II Progetto
Modellazione e Resa
- Ve.28/05/04, ore 14.00-16.00, aula 7^ piano, Lezione 38.
Funzioni di modellazione interattiva in xcsurf, tecniche di deformazione, e superfici trimmate.
Semplice introduzione al pacchetto xcbool di xcmodel per la composizione di
oggetti solidi mediante operazioni booleane.
Anteprima della versione 4.0 di xcsurf; albero di costruzione e modellazione gerarchica.
Esaminato insieme agli studenti un progetto di modellazione e resa realizzato nell'ambito del
corso di Grafica del 2002/03.
Torna alla
home page di Giulio Casciola