Grafica (C.d.S. Informatica) A.A.2002/03
Argomenti trattati a Lezione
- Ma.25/02/03, ore 15.00-17.00, Lezione 1. Introduzione al corso: rilevazione
statistica mediante compilazione scheda informativa, equazione
"grafica=modellazione+resa", descrizione di alcune applicazioni della grafica,
proiezione di un video di esempio: "M.C.Escher in Computer Graphics".
- Ve.28/02/03, ore 14.00-17.00, Lezione 2. Hardware per un sistema grafico:
display raster scan (CRT, LCD, frame buffer, DPU, CRT a colori, tipi di
frame buffer); proiezione di immagini generate al calcolatore mediante
tecniche piu' o meno realistiche a partire da modelli geometrici 3D;
proiezione di alcuni video di Aziende che si occupano di computer grafica 3D:
Square Soft, Square Pictures, Attitude Studio, Industrial Light+Magic,
Manex Entertainment, Reality Check.
- Lu.03/03/03, ore 16.30-18.30, Lezione 3. Software per un
sistema grafico interattivo: dispositivi per l'input grafico
interattivi (mouse e tastiera), 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, toolkit per GUI.
- Ma.04/03/02, ore 16.30-18.30, Lezione 4. 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, primitive grafiche, eventi; primi
elementi di programmazione X Window: esaminati alcuni semplici programmi
Client che fanno esclusivo uso di Xlib.
- Ve. 07/03/02, ore 14.00-17.00, Lezione 5. Ancora su programmazione X con
alcuni esempi di programmazione; sistema di coordinate 3D
Cartesiano e sferico, rappresentazione poligonale (struttura dati PSP
o VEF) per oggetti solidi e superfici (mesh di differenti tipi);
formati .m, .ply, wavefront .obj, conversione formati e convertitori.
Un programma di esempio per la visualizzazione di mesh poligonali.
- Lu.10/03/03, ore 16.30-18.30, Lezione 6.
Trasformazioni geometriche 3D in forma matriciale, composizione di
trasformazioni mediante prodotto di matrici, trasformazioni elementari:
traslazione, scala, rotazione e shear; matrici per simmetrie, commutativita`
ed inversione delle trasformazioni, cenno ad alcune trasformazioni composte
come rotazione e scala rispetto ad un punto e simmetria rispetto ad una
retta; trasformazione del sistema di riferimento.
- Ma.11/03/03, ore 15.00-17.00, Lezione 7.
Descrizione degli elementi che definiscono una trasformazione di
vista e successiva trasformazione window-viewport.
Proiezioni prospettiche e parallele:
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;
discussione dei parametri di vista e del loro effetto.
- Ve.14/03/03, ore 14.00-17.00, Lezione 8.
Riepilogo su trasformazione di vista, con introduzione del cono di vista
(o tronco di piramide) e definizione window; trasformazione Window-Viewport;
trasformazione di vista come cambio di base con introduzione del view_up
vector; mostrato un programma che implementa parzialmente la trasformazione
di vista e permette di visualizzare una superficie z=f(x,y); introduzione
alla libreria xtools per la progettazioni di GUI in ambiente XWindow;
descrizione degli oggetti disponibili; esempio di programma; assegnato
compito di modificare programma persp.c per completare trasformazione di vista
ed eventualmente gestire l'interfaccia con xtools.
- Lu.17/03/03, ore 17.00-18.30, Seminario dell'Ing.Ciarloni della
Think3 SpA, che si occupa di progettazione e sviluppo di sistemi CAD.
- Ma.18/03/03, ore 15.00-17.00, Lezione 9.
Curve e superfici in forma parametrica in contrapposizione
a modellazione poligonale; curve e superfici in forma
parametrica come funzioni vettoriali in una o due variabili; cenno a curve 4D,
a superfici 2D e 4D e a volumi come funzioni vettoriali in 3 variabili;
rappresentazione polinomiale di mesh; richiami su elaborazione floating point,
errore inerente ed algoritmico; funzioni polinomi def. in un intervallo e loro
rappresentazione nella base di Bernstein; curve di Bezier.
- Ve.21/03/03, ore 14.00-17.00, Lezione 10.
Polinomi di Bernstein in [0,1], proprieta', curve di Bezier, significato
geometrico dei coefficienti, significato dei coefficienti di un polinomio
scalare, formula ricorrente per i polinomi di Bernstein, algoritmo
di valutazione, algoritmo di de Casteljau, significato geometrico.
Introduzione agli algoritmi di rendering ed in particolare agli algoritmi
di real-time rendering; wire-frame, depth-cueing, hidden-line; descritto
in particolare un algoritmo di hidden-line quasi esatto per mesh triangolari
e rettangolari (struttura VEF).
- Lu.24/03/03, ore 16.00-18.00, Lezione 11.
Approssimazione di forma, curve di Bezier e poligonale di controllo,
precisione lineare, derivata di un polinomio (formula ricorrente),
tangente di una curva di Bezier, tangente negli estremi, invarianza
per trasformazion geometriche, continuita' in posizione e tangenza
di due curve, interpolazione di punti e punti e tangenti.
- Ma.25/03/03, ore 15.00-17.00, Lezione 12. Introduzione all'algoritmo
Z-buffer per la rappresentazione shading di mesh poligonali o VEF; descrizione
dell'algoritmo in termini di pseudocodice e utilita` significato del buffer Z;
introduzione ad un semplice modello di illuminazione:
luce ambiente e riflessione diffusa, sorgente di luce puntiforme con
riflessione diffusa e speculare. Esempi mediante immagini rese con
differenti parametri.
Tecnica Flat-shading, Gouraud-shading e Phong-shading per la determinazione
del colore da assegnare ad ogni pixel dell'immagine.
- Ve.28/03/03, ore 14.00-17.00, Lezione 13.
Suddivisione o splitting di una curva di Bezier in due curve ancora in forma
di Bezier; utilizzo dell'algoritmo de de Casteljau per la valutazione;
applicazioni della suddivisione: rappresentazione grafica mediante discretizzazione
adattiva della curva; intersezione di curve.
Discusse le tecniche Flat-shading, Gouraud-shading e Phong-shading in termini di
qualita` prestazioni. Primitiva grafica segmento: algoritmo incrementale;
Cenno ad un algoritmo di scan conversion per triangoli. Si e` presentata la libreria
trim per il real-time rendering di mesh poligonali (memorizzate secondo la struttura
VEF).
- Lu.31/03/03, ore 16.00-18.00, Lezione 14.
Patch di Bezier; funzioni bivariate prodotto tensoriale di Bernstein; proprieta`;
guscio convesso; punti di controllo e griglia di controllo; curve di bordo e
curve isoparametriche del patch; derivate parziali del patch; piano tangente;
raccordo in valore e tangente di due patch di Bezier; suddivisione o split di
un patch in due mediante algoritmo di valutazione di de Casteljau; si e'
presentato il programma esempio xmview che fa uso della libreria trim; si sono
mostrati programmi esempio per la valutazione adattiva di superfici.
- Ma.01/04/03, ore 15.00-17.00.
Seminario dell'Ing.Liverani del DIEM-Univ. di Bologna,
su Virtual Reality e Augmented Virtual Reality.
- Ve.04/04/03, ore 14.00-17.00, Lezione 15.
Algoritmo di scan conversion per triangoli e poligoni in genere;
suo utilizzo per shading mediante Z-buffer; algoritmo di disegno
di linee di Bresenham e suo utilizzo per algoritmo di scan conversion
di poligoni convessi (TAM). Superfici trimmate e loro utilizzo nella
rappresentazione di forme; ConS e curve piane nel dominio parametrico;
superfici trimmate e operazioni fra solidi; problema della tassellazione
di superfici trimmate per la visualizzazione grafica; descritto algoritmo
di tassellazione implementato nella libreria trim.
- Lu.07/04/03, ore 16.00-18.00, Lezione 16.
Programmi di esempio presenti nella dir. xprg. Cenno a Filling di un poligono;
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.
- Ma.08/04/03, ore 15.00-17.00, Lezione 17.
Definizione delle funzioni spline polinomiali o NUBS (Non Uniform B-Spline)
scalari in una variabile; dimensione dello spazio NUBS; formula ricorrente
per la definizione e calcolo delle B-spline Normalizzate; proprieta`; esempio
del loro andamento grafico nel rispetto delle proprieta` e delle condizioni di
raccordo nei nodi. Le B-spline sono una generalizzazione della base di Bernstein.
- Ve.11/04/03, ore 14.00-17.00, Lezione 18.
I polinomi sono casi particolari di spline e i polinomi di Bernstein sono un caso
particolare di B-spline; algoritmo di valutazione di funzioni spline mediante
calcolo di B-spline; algoritmo di valutazione di de Boor; mostrato pacchetto
xccurv di xcmodel.
Introduzione alla libreria OpenGL; le GL, GLU, GLX, pipeline delle trasformazioni,
primitive e attributi, un programma esempio.
- Lu.14/04/03, ore 16.00-18.00, Lezione 19.
Ancora su OpenGL: display list, double buffer, un programma esempio, illuminazione,
un programma con GLUT, evaluator, curve e superfici con le GLU. Assegnato I Progetto
Real-Time Rendering con OpenGL
- Ma.15/04/03, ore 15.00-17.00.
Seminario dell'Ing.Petronilli dell'ENEA su Rapid Prototyping.
- Lu.28/04/03, ore 16.00-18.00, Lezione 20.
Ombre: funzionalita' e osservazioni su
ombra e penombra; gestione di ombre nello Z-buffer mediande shadow-buffer;
problema dell'aliasing e approccio di antialiasing; texture per aggiungere
realismo; modifica di attributi del modello e delle normali (bump-mapping);
texture mapping 2D.
- Ma.29/04/03, ore 15.00-17.00, Lezione 21.
gestione di texture mapping 2D nello Z-buffer; magnification, minification
(mip-mapping), aliasing e antialiasing; two-part mapping; solid texture
od anche 3D texture; bump-mapping ed esempi. Presentato il dietro le
quinte del film di animazione "Dinosauri" della Walt-Disney Picture.
- Ve.02/05/03, Si e' fatto il ponte.
- Lu.05/05/03, ore 16.00-18.00, Lezione 22.
il bump-mapping e la sua spiegazione matematica; il fenomeno dell'Aliasing nella
computer graphics, l'Antialiasing come attenuazione del fenomeno, il supersampling
adattivo, esaminate alcune immagini senza e con antialiasing con differenti livelli
e soglie.
- Ma.06/05/03, ore 15.00-17.00, Lezione 23.
introduzione alle curve NUBS 2D; proprieta` VD per funzioni NUBS;
le curve NUBS sono approssimanti di forma della poligonale di controllo che
le definisce; proprieta` geometriche delle curve NUBS.
- Ve.09/05/03, ore 14.00-17.00.
Seminari: C.Montani ed R. Scopigno (ISTI-CNR Pisa)
su 3D Scanning.
- Lu.12/05/03, ore 16.00-18.00, Lezione 24.
Formula ricorrente per derivata di una B-spline; tecnica del knot-insertion,
algoritmo, interpretazione geometrica se applicato ad una cvurva e prime applicazioni:
valutazione curva in un punto; valutazione del vettore tangente in un punto,
splitting della curva, rappresentazione standard, modifica locale, inverse
knot insertion.
- Ma.13/05/03, ore 15.00-17.00, Lezione 25.
Ulteriori applicazioni del knot-insertion nella modellazione di curve 2D NUBS:
pick di una curva; passaggio per un preassegnato punto, refinement, conversione
di una NUBS in segmenti di Bezier, compatibilta' curve. Tecniche del knot-removal,
degree-elevation, degree-reduction. Interpolazione di punti con curve NUBS:
scelta parametrizzazione, scelta grado e nodi NUBS.
- Ve.16/05/03, ore 14.00-17.00, Lezione 26.
Definizione geometrica di curva NURBS 2D (come proiezione di curve NUBS 3D e 3D come
proiezione di 4D) e sua espressione analitica come combinazione lineare di funzioni base
RB-spline; generalizzazione per NURBS di tutte le
proprieta` viste per NUBS; analisi dei pesi NURBS e loro influenza sulla forma della
curva; rappresentazione razionale delle sezioni coniche, riparametrizzazione di una curva,
rappresentazione razionale in forma standard di una sezione conica; classificazione
delle coniche e determinazione della NURBS arco di cerchio e cerchio (rappresentazione a
9 punti). Presentazione del sistema xcmodel 3.0
- Lu.19/05/03, ore 16.00-18.00, Lezione 27.
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; algoritmo di knot insertion per superfici;
superfici NURBS come proiezione di superfici NUBS 4D; funzioni RB-spline bivariate;
generazione di superfici da curve: estrusione.
- Ma.20/05/03, ore 15.00-17.00, Lezione 28.
Generazione di superfici da curve: pseudo rigata a tratti, superficie di rivoluzione.
Introdotto il pacchetto xcsurf di xcmodel 3.0 per la modellazione
di superfici.
- Ve.23/05/03, ore 14.00-17.00, Lezione 29.
Progettazione di superfici classiche come cilindro, parallelipipedo, cono, ecc.;
superfici per interpolazione di griglie di punti e curve; superficie per swinging,
skinning, sweeping, superfici quasi tubolari.
- Lu.26/05/03, ore 16.00-18.00, Lezione 30.
Strumenti di modellazione in genere e in xcsurf in particolare; formati dei dati in
xcmodel; introduzione al funzionamento di un algoritmo di ray-tracing.
- Ma.27/05/03, ore 15.00-17.00, Lezione 31.
Algoritmo di ray-tracing per la resa
realistica di scene 3D: idea fondamentale del suo funzionamento, necessita` di un modello
di illuminazione globale, estensione di un semplice modello, trasparenza, modello di Whitted-Kay.
- Ve.30/05/03, ore 14.00-17.00, Lezione 32.
Tecniche di accelerazione delle prestazioni
per un algoritmo di ray-tracing, cenno alla tecnica di intersezione raggio superficie,
gestione dell'antialiasing via supersampling, gestione delle texture 3D e 2D.
Presentazione della libreria descriptor e del
pacchetto xcrayt di xcmodel per la descrizione mediante codice C o interattiva
di una scena al fine di una resa realistica mediante un algoritmo di ray-tracing.
Torna alla
home page di Giulio Casciola