Computer Graphics
Marco Tarini
Lezione 3:modellare con triangoli
Università dell’Insubria
Facoltà di Scienze MFN di Varese Corso di Laurea in Informatica Anno Accademico 2010/11
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Rasterization-based HW-supported rendering
• tutto sia composto da triangoli (3D) – o al limite da punti, o segmenti
•ma....
...non tutto nasce composto di triangoli quasi nulla
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Tutto sia composto da triangoli (3D)
un quadrilatero?
"quad" "diagonal split"
due triangoli!
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Tutto sia composto da triangoli (3D)
un poligono a n lati?
triangolarizzazione di poligono:
(in 3D, non un problema del tutto banale...)
(n-2) triangoli!
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
triangoli!
Tutto sia composto da triangoli (3D)
la superficie di un solido geometrico, per es. una sfera?
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Tutto sia composto da triangoli (3D)
la superficie di un solido geometrico, per es. una cono?
triangoli!
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Tutto sia composto da triangoli (3D)
un campo d'altezza?
(array 2D di altezze, e.g. per modellare un terreno?)
triangoli!
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Esempio di campo di altezza triangolato
• "height field"
• un esempio tipico:
– campo d'altezza per modellare un terreno...
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Tutto sia composto da triangoli (3D)
nuvola di punti ?
( point cloud ) triangoli!
problema molto studiato, e (nel caso generale) difficile
Algoritmi comuni: “Ball Pivoting”
x
y z
x
y z
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
da nuvola di punti a triangoli: esempio
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Tutto sia composto da triangoli (3D)
volume? triangoli!
algoritmi di segmentation (e.g. "marching cubes" * )
* verdemo più avanti nel corso, se c'è tempo
triangoli che definiscono
iso-superficie una
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Tutto sia composto da triangoli (3D)
una superficie curva parametrica?
per es. NURBS *, b-splines *...
triangoli!
questo è facile. Il contrario, che qualche volta è utile, MOLTO meno
* verdemo più avanti nel corso, se c'è tempo
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Da dataset volumetrico a triangoli: esempio
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Tutto sia composto da triangoli (3D)
superfici implicite? triangoli!
nb: non c'e' un modo solo per farlo.
Modo + semplice (non ottimo): campionare volume e estrarre isosuperfice a valore 0
triangoli che definiscono
la superficie esplicitamente
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Tornando allo schema generale...
applicazione interattiva mondo reale
/ modello matematico / artista 3D ...
Geometria
Immagine/i
rendering
preprocessing ( modelling)
acquisizione 3D / simulazione / modellazione
(e.g. 3Dstudio max, Maya)
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Tipica fase di preporsessing
Geometria
Immagine/i rendering
preprocessing ( modelling)
diagonal split (da quad a 2 tri) può venire fatto anche qui, al volo
diagonal split (da quad a 2 tri) può venire fatto anche qui, al volo
Tutto il resto che abbiamo visto nei lucidi precedenti
(trasformazione in triangoli) tipicamente qui
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
e r n d e r n i g
Tr ia ng ol i
Riassuntino Quads Campi d'altezza
Forme geo.
di base Superfici parametriche
"al volo"
n-agoni Dati Volumetrici Superfici implicite
Nuvole di punti
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Modellare direttamente con triangoli
• rappresentare gli oggetti con triangoli – o al limite da punti, o linee
una teiera? un coniglio
di porcellana?
triangoli, triangoli, triangoli
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
• rappresentare gli oggetti con triangoli – o anche quads (o al limite da punti, o linee) – molti strumenti interattivi
• Maya (Autodesk) (*),
• 3Dstudio (Max) (*),
• Solidthinking (*),
• Rhinoceros (*), (attraverso superfici parametriche)
• Wings3D,
• Z-brush (Pixologic) (*),
• MeshLab, (VCG-group, Pisa)
• ...
– low low low low----poly modelling poly modelling poly modelling poly modelling:
• l'arte di modellare l'oggetto con POCHI TRIANGOLI
• (evita di rendere l'applicazione transform limited)
• (tipico skill dell'artista digitale per i video games)
Modellare direttamente con triangoli
(*) = commerciali
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Low-poly modelling
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a by Phillip Heckinger (3D modeller)
Low-poly modelling
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Un limite generale di questo approccio
• Non sempre e' semplice modellare le entità da rappresentare con triangoli...
– esempi:
• nuvole
• fuoco
• pelliccia
by Niniane Wang (non real time)
by N. Adabala uni florida (non real time)
by M. Turitzin and J. Jacobs Stanford Uni (real time!)
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Primitive di rendering
• Triangoli
– ok, abbiamo capito
• Quads
– in un certo senso, perchè diventano triangoli al volo
• Segmenti
• Punti
Tutto l'hardware è progettato e ottimizzato principalmente per
questo caso
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Primitive di rendering
• Triangoli
– ok, abbiamo capito
• Quads
– in un certo senso, perchè diventano triangoli al volo
• Segmenti
• Punti
utili ad esempio
per particle systems
M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Primitive di rendering
• Triangoli
– ok, abbiamo capito
• Quads
– in un certo senso, perchè diventano triangoli al volo
• Segmenti
• Punti
nVIDIA tech demo at SIGGRAPH 2001 nVIDIA quadroutile ad esempio per fare rendering di capelli peli etc
(ma non è l'unico sistema e non è detto che sia il migliore)M a r c o T a r i n i ‧ C o m p u t e r G r a p h i c s ‧ 2 0 1 0 / 1 1 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a nVIDIA technology demo at SIGGRAPH 2004
=REAL TIME!=