Grafica (C.d.S. Informatica) A.A.2004/05
Argomenti trattati a Lezione
- Ma.01/03/05, 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.03/03/05, ore 14.00-16.00, aula 7^ piano, Lezione 2.
Altre applicazioni della grafica 3D; proiezione di uno spezzone del
cortometraggio Geri's Game e di Monster & C. della Pixar, di alcune "dietro
le quinte" di Dinosauri della Walt Disney e il dietro le quinte della
trilogia Matrix della Warner Bros.
- Ve.04/03/05, ore 16.00-18.00, aula 7^ piano, Lezione 3.
Hardware per un sistema grafico interattivo (architettura
di un display raster scan, CRT, frame buffer, DPU, CRT a colori,
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.
- Ma.08/03/05, ore 14.00-16.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. Alcune esempi di XClient (xterm,
xclock, xlogo, xcalc, xedit, bitmap, xfig, display),
e informazioni su X (man, xdpyinfo, startx, XF86Config-4, backing-store, ecc.).
- Gi.10/03/05, 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 (xprove.tgz).
- Ve. 11/03/05, ore 16.00-18.00, aula 7^ piano, Lezione 6.
Suggerito la realizzazione di un piccolo videogioco interattivo con
programmazione X.
Introduzione ai sistemi B-Rep (Boundary Representation) per la rappresentazione
di modelli 3D (Mesh poligonali);
rappresentazione poligonale (struttura VEF) per oggetti solidi e superfici
aperte (mesh di differenti tipi); formati .m, .ply, wavefront .obj,
conversione formati e convertitori (messo a disposizione archivio
converter.tgz). Trasformazioni geometriche 3D; trasformazioni elementari:
traslazione, scala, rotazione.
- Ma.15/03/05, 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, simmetrie; trasformazioni composte come rotazione e
scala rispetto ad un punto e simmetria rispetto ad una retta;
trasformazione di sistema di riferimento (suggerito di realizzare piccolo
programma X per giocare con le trasformazione geometriche 2D).
Definizione dei parametri di vista (viewing 3D).
- Gi.17/03/05, ore 14.00-16.00, aula 7^ piano, Lezione 8.
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. Proiezioni da un punto di vista arbitrario (3 punti di fuga)
con determinazione delle formule per il viewing 3D;
- Ve. 18/03/05, ore 16.00-18.00, aula 7^ piano, Lezione 9.
Trasformazione window-viewport con introduzione del cono di vista
(o tronco di piramide) e definizione window a partire dall'apertura
angolare (effetto zoom); mostrato (e messo a disposizione, archivio xprg.tgz)
un programma che usa solo Xlib e implementa la trasformazione di vista
visualizzando un cubo e una superficie z=f(x,y). Discussione dei parametri
di vista e del loro effetto. Proposti 6 esercizi da realizzare modificando il
codice persp_cube.c nell'archivio messo a disposizione:
1.lettura mesh da file .m; 2.gestione interattiva
(mouse) dei parametri di vista; 3."animazione" dell'oggetto (rotazione
camera intorno all'oggetto) mediante un input da mouse; 4.inserzione nella
trasformazione di vista del view-up vector; 5.inserzione nella pipeline del
clipping 3D con la piramide di vista; 6.aggiunta di una finestra in cui si
visualizza l'oggetto e l'osservatore (con i suoi parametri di vista) da un
secondo punto di vista. Piramide di vista o volume di vista (clipping 3D);
- Gi.24/03/05, ore 14.00-16.00, aula 7^ piano, Lezione 10.
Trasformazione di vista come cambio di base con introduzione del view_up
vector; clipping 2D: algoritmo di Cohen-Sutherland; gestione della piramide di
vista mediante clipping 3D: estensione dell'algoritmo visto nel caso 2D.
- Gi.31/03/05, ore 14.00-16.00, aula 7^ piano, Lezione 11.
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).
Introduzione agli algoritmi di real-time rendering: hidden-line e hidden-surface;
cenni al depth-cueing, all'algoritmo del pittore e all'algoritmo visibility buffer;
descritto un algoritmo di hidden-line quasi esatto per mesh.
- Ve. 01/04/05, ore 16.00-18.00, aula 7^ piano, Lezione 12.
Ancora su algortimo di hidden-line quasi esatto per mesh;
hidden-line per mesh ottenute da z=f(x,y) con view-up vector verticale, proiezione
prospettica a 2 e 3 punti di fuga; mostrata esecuzione software dimostrativo che
implementa piu' algoritmi per tali mesh;
esaminate ottimizzazioni adottate: l'ordinamento per visibilita' consiste in un
percorrimento griglia, la memorizzazione della regione di invisibilita' viene
ridotta a due array, i test di visibilita' sono semplificati.
- Ma.05/04/05, ore 14.00-16.00, aula 7^ piano, Lezione 13.
Introduzione all'algoritmo Z-buffer per la rappresentazione Hidden-surface di mesh
poligonali o VEF; descrizione dell'algoritmo in termini di pseudocodice e significato
del buffer Z rispetto al V-buffer. 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 (per una rappresentazione
shading). Algoritmi di linea incrementale e di Bresenham.
- Gi.07/04/04, ore 14.00-16.00, aula 7^ piano, Lezione 14.
Algoritmo di scan conversion di poligoni convessi o vericalmente convessi
denominato TAM usando l'algoritmo di linea di Bresnham;
introduzione ad un algoritmo di scan conversion generale per poligoni qualunque
che usa l'algoritmo di linea incrementale; generalizzazione per scan conversion
di poligoni con colore; problema di assegnare ad ogni pixel una Z di profondita'
per l'algoritmo di hidden-surface Z-buffer.
- Ve. 08/04/05, ore 16.00-18.00, aula 7^ piano, Lezione 15.
Trasformazione dello spazio 3D dell'osservatore nello spazio 3D del piano 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.
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).
- Ma.12/04/05, ore 14.00-16.00, aula 7^ piano, Lezione 16.
Determinazione delle normali di una mesh nei vertici, determinazione degli
angoli di incidenza e dell'angolo di riflessione; tecnica Flat-shading,
Gouraud-shading e Phong-shading per la determinazione del colore da assegnare
ad ogni pixel dell'immagine.
Introduzione alla libreria OpenGL; GL, GLX, GLU, GLUT,
primitive e attributi, un programma esempio con solo GL e GLX (messi a disposizione
tre archivi: glsamples.tgz, opengl_prg.tgz e gltutors.tgz).
- Gi.14/04/04, ore 14.00-16.00, aula 7^ piano, Lezione 17.
Due programmi esempio con glut: gestione del ridisegno e delle call-back function;
primitive geometriche, pipeline delle trasformazioni: trasformazioni di modellazione,
trasformazioni di vista e di proiezione; visionati alcuni tutorial su
geometria, trasformazioni di vista e di proiezione.
- Ve.15/04/05, ore 16.00-18.00, aula 7^ piano, Lezione 18.
Opengl: il colore, illuminazione (luci e materiali), tecniche di shading, normali;
alcuni tutorials e programmi esempio. Display list.
- Ma.19/04/05, ore 14.00-16.00, aula 7^ piano, Lezione 19.
Opengl: Color Buffer e gestione Double Buffer; Depth Buffer e gestione rappresentzione
hidden surface e shading.
Le ombre (shadow) nel rendering; utilizzo di uno Shadow Buffer per la determinazione
delle ombre in un algoritmo Z-Buffer; inverse mapping e gestione di antialiasing per
sfumare le ombre.
Aliasing e Antialiasing nella Computer Graphics: il problema della campionamento di
un segnale; aliasing spaziale e temporale nella CG.
- Gi.21/04/04, ore 14.00-16.00, aula 7^ piano, Lezione 20.
Antialiasing come attenuazione del fenomeno: area sampling e supersampling; supersampling
adattivo, alcune immagini esempio senza e con antialiasing con differenti livelli
e soglie.
Assegnato il I Progetto
3D Game con OpenGL
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;
- Ve.22/04/05, ore 14.00-16.00, aula 7^ piano, Lezione 21.
Two-part mapping; solid texture o 3D texture; texture procedurali; bump-mapping;
multitexturing.
Gestione texture in OpenGL: texture object, applicazione texture, two-part mapping,
mip-mapping, ecc.; tutorial su texture e semplice programma wrap.c
- Ma.26/04/05, ore 14.00-16.00, aula 7^ piano, Lezione 22.
Presentazione introduttiva su modellazione 3D sculturata: modellazione solida e di
superfici; modellazione poligonale(approssimata) e modellazione NURBS(esatta);
rapresentazione e visualizzazione; scambio modelli fra sistemi di modellazione.
Dal modello discreto al modello continuo; il continuo permette di essere discretizzato;
introduzione alla forma parametrica: segmento, spezzata, curva.
Richiamo su spazio vettoriale, oggetti o vettori, operazioni su oggetti, base di
rappresentazione, importanza di scegliere una base opportuna.
- Gi.28/04/05, ore 14.00-16.00, aula 7^ piano, Lezione 23.
Obiettivi della parte di modellazione: modellazione esatta con NURBS rappresentate
in forma parametrica (curve e superfici in forma parametrica) in una opportuna
base per poter lavorare su un discreto informativo della forma della curva.
Curve di Bezier e polinomi base di Bernstein, proprieta' di essere non negative
in [0,1], di essere a somma 1 e di essere invarianti per trasformazioni affini.
Necessita' di curve piu' flessibili: piu' curve di Bezier opportunamente
raccordate;
Richiami di geometria delle curve. Classe dei polinomi a tratti, classe delle
funzioni spline (polinomi a tratti con massimo ordine di raccordo), spline
polinomiali a nodi multipli.
- Ve.29/04/05, ore 14.00-16.00, aula 7^ piano, Lezione 24.
Classe delle funzioni spline a nodi multipli: definizione, spazio, dimensione,
partizione estesa, definizione ricorrente della base delle B-spline Normalizzate;
definizione di NUBS; valutazione di una NUBS in un punto; proprieta' delle
B-spline Normalizzate; curve NUBS.
Visionato pacchetto xccurv di xcmodel per la gestione di curve NUBS 2D.
- Ma.03/05/05, ore 14.00-16.00, aula 7^ piano, Lezione 25.
Relazione fra Numero di CP, Ordine e Numero Nodi in un NUBS; nodi semplici e
multipli; funzioni B-spline e loro supporto; B-spline non nulle in un intervallo
nodale; derivate di una NUBS; nodi aggiuntivi coincidenti;
punto iniziale e finale di una curva NUBS, vettore tangente nei punti estremi;
curve NUBS approssimanti di forma della poligonale di controllo che
le definisce; guscio convesso globale e locale e controllo locale della curva.
- Gi.05/05/05, ore 14.00-16.00, aula 7^ piano, Lezione 26.
Invarianza per trasformazioni affini; punti di controllo coincidenti rispetto
a nodi multipli; punti di controllo allineati; curve NUBS chiuse e periodiche;
tool knot-insertion e algoritmo relativo; valutazione della curva in un punto
tramite knot-insertion.
- Ve.06/05/05, ore 11.00-13.00, aula Tonelli, Seminario.
Relatore: Prof.ssa Serena Morigi
Titolo: Modellare ed Animare Figure Articolate.
- Ve.06/05/05, ore 16.00-18.00, aula 7^ piano, Lezione 27.
Dimostrazione con il pacchetto xccurv delle applicazioni del tool knot-insertion:
inserzione di un nodo; inserzione inversa fissando un CP; splitting della curva
mediante knot-insertion multiplo; knot refinement globale; knot-refinement locale;
modellazione gerarchica; ....
- Ma.10/05/05, ore 14.00-16.00, aula 7^ piano, Lezione 28.
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 di tutte le proprieta` viste per NUBS;
pesi NURBS come parametri di forma; rappresentazione quadratica razionale delle
sezioni coniche;
- Gi.12/05/05, ore 14.00-16.00, aula 7^ piano, Lezione 29.
Determinazione della NURBS arco di cerchio e cerchio (rappresentazione a
9 punti). Dimostrazione, con il pacchetto xccurv, di modellazione con
curve NURBS.
Funzioni NUBS bivariate prodotto tensoriale, funzioni B-spline bivariate,
superfici NUBS in forma parametrica, griglia dei punti di controllo, schema
bidirezionale di curve NUBS 3D;
- Ve.13/05/05, ore 16.00-18.00, aula 7^ piano, Lezione 30.
Ancora su curve 3D NUBS isoparametriche; propieta' delle superfici NUBS;
derivate di una superficie NUBS.
Presentazione del sistema di modellazione e resa XCModel 3.0.
- Ma.17/05/05, ore 14.00-16.00, aula 7^ piano, Lezione 31.
Superfici NURBS; funzioni RB-spline bivariate; osservazioni su superfici;
superfici da curve: cilindriche (o per estruzione) e di rivoluzione.
Presentazioni delle funzionalita' del pacchetto XCSurf di XCModel;
dimostrazione su curve 3D e superfici.
- Gi.19/05/05, ore 14.00-16.00, aula Vitali, Lezione 32.
Modellazione di Superfici da Curve: rivoluzione: progettazione di superfici classiche
come cilindro, cono, sfera, toro, ecc..; superfici swinging (generalizzazione di rivoluzione);
swinging con curve 3D; superfici tubular. Funzionalita' relative nel pacchetto XCSurf.
- Ve.20/05/05, ore 16.00-18.00, aula Vitali, Lezione 33.
Superfici skinning e sweeping (idea di degree elevation e knot-insertion per rendere
compatibili due curve); superfici NURBS trimmate: applicazioni per la modellazione solida
e per la modellazione gerarchica. Albero di costruzione e implementazione in XCSurf.
Modellazione gerarchica e implementazione in XCSurf.
Funzionalita' relative nel pacchetto XCSurf.
- Ma.24/05/05, ore 14.00-16.00, aula 7^ piano, Lezione 34.
OpenGL: utilizzo di curve e superfici di Bezier e NURBS;
presentazione di alcuni semplici programmi di esempio.
Funzioni Numeric e Interactive nel pacchetto XCSurf; dimostrazione di superfici
NURBS trimmate e di modellazione gerarchica in XCSurf.
- Gi.26/05/05, ore 11.00-13.00, aula t^ piano, Lezione 35.
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.
- Gi.26/05/05, ore 14.00-16.00, aula 7^ piano, Lezione 36.
Texture nel ray-tracing, antialising nel ray-tracing. Un cenno all'illuminazione
globale (radiosity e photon-mapping).
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 si e' esaminata
la parte di setting dei parametri per l'esecuzione del ray tracing.
- Ve.27/05/05, ore 14.00-16.00, aula 7^ piano, Lezione 37.
Presentazione della libreria descriptor per la creazione di uno scene-graph mediante codice C;
utilizzo del pacchetto xcrayt di xcmodel per la creazione di
uno scene-graph in maniera completamente interattiva.
Assegnato il II Progetto
Modellazione e Resa
Torna alla
home page di Giulio Casciola