Metodi Numerici per la Grafica (C.d.S. Magistrale in Matematica) A.A.2010/11
(1^ semestre, 2^ anno)
Esame orale
CFU 6
Docente Prof. Giulo Casciola
Scopo
Dare i fondamenti della grafica 2D e 3D al calcolatore; principali metodi numerici per la modellazione
geometrica con curve e superfici e per la resa realistica; strumenti software per la grafica 3D.
Contenuto
Modellazione con curve e superfici NUBS e NURBS in forma parametrica.
Strumenti per la modellazione di forma, rappresentazione di curve e superfici
geometriche classiche, tecniche automatiche di progettazione di forme.
Algoritmi di rendering realistico.
Il corso prevede l'utilizzo del sistema XCModel per la modellazione e resa di curve e superfici NURBS e la
visione/utilizzo di alcuni pacchetti commerciali di modellazione.
Testi Consigliati
- J.Hoschek, D.Lasser, Fundamentals of Computer Aided Geometric Design, A.K.Peters (1989)
- L.Piegl, W.Tiller, The NURBS book, Springer Verlag (1995);
Orario delle Lezioni
Giovedi' ore 11.00-13.00 Aula Arzela'
Venerdi' ore 17.00-19.00 Aula Vitali
Variazione Orario del Corso
Giovedi' ore 17:00-19:00 Aula Vitali
Venerdi' ore 09:00-11:00 Aula Arzela'
Lezioni e Argomenti trattati
- Gi.07/10/10, ore 11.00-13.00, Laboratorio Linux
, Lezione 1.
Introduzione al corso: equazione "grafica=modellazione+resa",
informazioni generali sugli obiettivi e sul corso dal punto
di vista organizzativo.
(Lucidi: Introduzione al Corso)
La Grafica 3D nelle Applicazioni.
- Ve.08/10/10, ore 09.00-11.00, aula Arzela'
, Lezione 2.
Altre applicazioni della grafica 3D; proiezione di alcuni
cortometraggi come Luxor Junior e Geri's Game della Pixar Animation Studios.
Richiami su funzioni polinomiali nel Calcolo Numerico.
- Gi.14/10/10, ore 17.00-19.00, aula Vitali
, Lezione 3.
(Dispensa: Polinomi nella base di Bernstein e Curve di Bezier)
Considerazioni numeriche per la scelta della base di rappresentazione: base di Bernstein.
Proprieta', formula ricorrente.
- Ve.15/10/10, ore 09.00-11.00, aula Arzela'
, Lezione 4.
Algoritmo di de Casteljau, suddivisione,
derivata, integrale, elevamento e riduzione di grado.
- Gi.21/10/10, ore 17.00-19.00, aula Vitali
, Lezione 5.
Approssimazione di forma, interpretazione geometrica dei coefficienti;
curve di Bezier in forma parametrica, proprieta',
curve di Bezier a tratti, joining C^0, C^1, G^1 di curve di Bezier.
- Ve.22/10/10, ore 09.00-11.00, aula Arzela'
, Lezione 6.
Presentato il pacchetto Mini System: funzionalita', organizzazione codice,
strutture dati, cose da fare.
Le curve di Bezier nella grafica (vedi slide).
- Gi.28/10/10, ore 17.00-19.00, aula Vitali
, Lezione 7.
Richiami di grafica 2D: architettura per fare grafica (Display, RAM, GPU), coda degli eventi,
XWindow, Window e Viewport, esempi, trasformazioni geometriche (vedi slide).
(Lucidi: Elementi di Grafica 2D)
- Ve.29/10/10, ore 09.00-11.00, aula Arzela'
, Lezione 8.
Algoritmo di rendering di curve di Bezier preciso al pixel, algoritmi di rasterizing
e di tracing; esempi.
(Lucidi: Le Curve di Bezier nella Grafica)
Alcune considerazioni sul pacchetto mini_system_2010.
- Gi.04/11/10, ore 17.00-19.00, aula Vitali
, Lezione 9.
Richiami su interpolazione alla Lagrange e alla Hermite con funzioni polinomiali;
interpolazione alla Lagrange di punti con curve piane in forma parametrica;
scelta della parametrizzazione; scelta della base di rappresentazione.
Soluzione via sistema lineare; metodo Progressive Iteration Approximation;
considerazioni sull'implementazione.
- Ve.05/11/10, ore 09.00-11.00, aula Arzela'
, Lezione 10.
Interpolazione alla Hermite di punti e vettori derivati con curve piane in forma parametrica;
Esempio di curva cubica di Bezier di interpolazione di punti e derivate;
interpolazione polinomiale a tratti nella base di Bernstein;
interpolazione locale in contrapposizione a globale; stima delle derivate.
Applicazioni della determinazione degli zeri di funzioni polinomiali e della determinazione dei
punti di intersezione fra curve di Bezier.
Cenni agli algoritmi "Bezier Subdivision" e "Interval Subdivision" per l'intersezione di curve;
introduzione all'algoritmo "Bezier Clipping" per gli zeri di polinomi nella base di Bernstein.
- Gi.11/11/10, ore 17.00-19.00, aula Vitali
, Lezione 11.
Ripreso algoritmo "Bezier Clipping" per funzioni polinomiali; Algoritmo "Bezier Clipping" per
intersezione di curve di Bezier e curve di Bezier a tratti.
Ripreso insieme il pacchetto mini_system_2010 esplorando ulteriori funzionalita' ed il codice
relativo.
- Ve.12/11/10, ore 09.00-11.00, aula Arzela'
, Lezione 12.
(Dispensa: Superfici di Bezier)
Superfici di Bezier prodotto tensoriale; valutazione, suddivisione, derivate, normali, raccordo
fra patch e condizioni di continuita'. Visualizzazione grafica: rappresentazione grafica mediante
isocurve, griglia di punti, griglia adattiva.
- Gi.18/11/10, ore 17.00-19.00, aula Vitali
, Lezione 13.
Riprese derivate e condizioni di continuita': C^1, visiva C^1 e GC^1; superficie composta da
patch di Bezier. Coordinate Baricentriche; polinomi di Bernstein bivariati su triangolo.
Presentazione del sistema XCModel_4.2bf
- Ve.19/11/10, ore 09.00-11.00, aula Arzela'
, Lezione 14.
Proprieta' su base di Bernstein bivariata su triangolo; polinomio nella base di Bernstein;
patch di Bezier; algoritmo di de Casteljau, suddivisione, degree elevation, derivazione,
join di patch (continuita' C^0 e C^1).
- Gi.25/11/10, ore 17.00-19.00, aula Vitali
, Lezione 15.
Funzioni spline (NUBS) a nodi multipli; spazio e dimensioni; partizione estesa e base
delle B-spline Normalizzate: definizione via formula ricorrente; proprieta' delle B-spline;
relazione fra numero di CP, ordine e numero nodi; curve NUBS.
(vedi Dispensa: Funzioni e Curve NUBS e NURBS)
- Ve.26/11/10, ore 09.00-11.00, Laboratorio Linux
, Lezione 16.
Installazione dei pacchetti XCCurv e XCSurf di XCModel;
demo del pacchetto XCCurv per la gestione di curve NUBS 2D.
Analisi dei sorgenti (file.h e file.c); modifica, ricompilazione ed
esecuzione; assegnati esercizi (vedi Sezione Download).
- Gi.02/12/10, ore 17.00-19.00, aula Vitali
, Lezione 17.
Ancora sulle funzioni B-spline; rappresentazione grafica delle B-spline;
utilizzo della formula ricorrente per la valutazione di NUBS; formula per
la derivata di B-spline; algoritmo di de Boor sui coefficienti;
interpolazione alla Lagrange e condizioni di Schoenberg-Whitney;
scelta della partizione nodale rispetto alla parametrizzazione dei punti.
- Ve.03/12/10, ore 09.00-11.00, Aula Arzela'
, Lezione 18.
Knot-Insertion e sue applicazioni: valutazione, suddivisione, derivazione,
rappresentazione standard, raffinamento, conversione in PBezier.
Introduzione all'Analisi in Multirisoluzione (decomposizione, ricostruzione,
scaling function, spazio wavelet e Bwavelet) e applicazione alla modellazione
di curve NUBS. Assegnati ulteriori esercizi (vedi Sezione Download).
- Ma.07/12/10, ore 13.00-15.00, Laboratorio Multimediale
, Lezione 19.
Ripreso pacchetto XCCurv e svolto qualche esercizio di quelli assegnati
(modifica codice per join C1, sperimentare funzioni di knot-insertion,
analisi in multirisoluzione, interpolazione e approssimazione in norma
di punti 2D). Introduzione alle curve NURBS 2D come proiezione prospettica
di curve NUBS 3D su un piano.
- Gi.09/12/10, ore 17.00-19.00, Laboratorio Multimediale
, Lezione 20.
Ancora sulle curve NURBS. Introduzione alle superfici NUBS e NURBS.
Funzioni NUBS bivariate prodotto tensoriale, funzioni B-spline bivariate,
proprieta';
superfici NUBS in forma parametrica, griglia dei punti di controllo;
superfici come schema bidirezionale di curve NUBS 3D; propieta' delle superfici NUBS.
(vedi Dispensa: Funzioni e Superfici NUBS/NURBS)
Presentazioni e demo del pacchetto XCSurf.
- Ve.10/12/10, ore 09.00-11.00, Aula Arzela'
, Lezione 21.
Ancora sul pacchetto XCSurf: sorgenti ed header file di XCSurf e della
libreria trim; demo su superfci da curve: extruding, revolution, swinging, tubular,
interpolation, skinning. Assegnati esercizi su superfici (vedi Sezione Download).
- Gi.16/12/10, ore 17.00-19.00, Aula Vitali
, Lezione 22.
Interpolazione di griglie di punti 3D con superfici NUBS; interpolazione di curve 3D con
superfici NUBS; cenno all'interpolazione di un network di curve. Superfici NURBS trimmate
Applicazione alla modellazione gerarchica con superfici NUBS. Demo del pacchetto XCSurf.
Introduzioen al pacchetto XCRayt per il caricamento di
uno scene-graph ed esecuzione del ray-tracer di XCModel.
- Ve.17/12/10, ore 09.00-11.00, Aula Arzela'
, Lezione 23.
Ripreso il pacchetto XCRayt: caricamento scene-graph e rendering tramite algoritmo di
ray-tracing puro.
Introduzione al ray-tracing per la resa realistica di scene 3D: modello di
illuminazione locale e globale, albero dei raggi, ricorsione e test di arresto.
Intersezione raggio/superfici NURBS e NURBS trimmate; tecniche di accelerazione del ray-tracing.
(vedi lucidi: Ray-Tracing)
- Lu.20/12/10, ore 14.00-16.00, Aula Vitali
, Lezione 24.
Algoritmo di Toth (Newton-Raphson ad intervalli), algoritmo Bezier Clipping di Nishita-
Sederberg-Kakimoto per l'intersezione raggio/superficie; algoritmo "Toth-speed".
Download pacchetti e documenti corso
-
Mini System archivio
-
A History of Curves and Surfaces in CAGD file pdf
-
xccurvdev.tar.gz archivio
-
xcsurfdev.tar.gz archivio
(up-dated)
-
xcraytdev.tar.gz archivio
-
Esercizi su Curve NUBS file pdf
-
slide su directories di XCModel file pdf
-
Ulteriori Esercizi su Curve NUBS file pdf
-
Multiresolution Curves file pdf
-
Esercizi su Superfici file pdf
-
Esercizi su Superfici file pdf
-
modeling_tools.tgz archivio
-
D.Toth-On Ray Tracing Parametric Surfaces file pdf
-
T.Nishita,T.W.Sederberg,M.Kakimoto-Ray Tracing Trimmed Rational Surface Patches file pdf
-
C.Schulz-Bezier clipping is quadratically convergent file pdf
-
slide su XCRayt file pdf
Siti
-
ucsc links
-
Siti vari
Torna alla
home page di Giulio Casciola