• Non ci sono risultati.

•ma.......non tutto nasce composto di triangoli

N/A
N/A
Protected

Academic year: 2021

Condividi "•ma.......non tutto nasce composto di triangoli"

Copied!
7
0
0

Testo completo

(1)

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 2011/12

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 1 / 1 2 ‧ 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 1 / 1 2 ‧ 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 1 / 1 2 ‧ 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 1 / 1 2 ‧ 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 1 / 1 2 ‧ 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!

(2)

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 1 / 1 2 ‧ 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 1 / 1 2 ‧ 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 1 / 1 2 ‧ 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 1 / 1 2 ‧ 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

Tutto sia composto da triangoli (3D)

volume? triangoli!

algoritmi di segmentation (e.g. "marching cubes" * )

triangoli che definiscono

iso-superficie una

Passare da volume a superficie

Dataset Volumetrico:

- griglia 3D regolare di valori di densità - campionamento regolare in 3D - es: output di una scansione TAC

densità: 0.3 densità: 0.45

consumo memoria cubico con la risoluzione

(diventa facilmente

ingestibile)

(3)

Passare da volume a superficie

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 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Dataset Volumetrico V

algoritmo

“Marching- Cubes”

Iso-superficie Triangolata

(di valore S s)

• s = valore soglia

• superficie (chiusa) dove il valore del campo = s

• racchiude i punti di V che hanno valore > s

Algorimo Marching-Cubes : alcuni cenni

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 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

Cubetto con vertici in 2 x 2 x 2 = 8 campioni del dataset

Ogni campione : - o dentro (se >s) - o fuori (se <s)

Per ciascuna combinazione di dentro/fuori

=> una triangolaione predefinita (usare una tabella tabella, 2^8 = 256 casi) (ma solo 15 diversi contando le simmetrie)

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 1 / 1 2 ‧ 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: altro esempio

Dataset Volumetrico Iso-superficie

Triangolata (di valore s)

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 1 / 1 2 ‧ 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

Superficie Parametrica

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 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

 

 

 =

 

z y x v f u

3 2

:

R B

R A

B A f

A B

f

A

p ∈ f ( p ) ∈ B

2D 3D

u

v z

x y

Superficie Parametrica

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 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

 

 

 =

 

z y x v f u

3 2

:

R B

R A

B A f

dominio di f immagine di f

x,y,z sono calcolate come formule di u,v ” Superficie Parametrica:

immagine di una

funzione da R

2

a R

3

per definirne una,

scegliere una funzione

(e il suo dominio)

( f surgettiva)

(4)

ESEMPIO: area laterale cilindro

come Superficie Parametrica:

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 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

 

 

 =

 

v u

u v

f u sin( ) ) cos(

] 1 , 0 [ ] 2 , 0 [ :

×

=

A π

B A f

A f

2D 3D

u v

z

x y

B

2 π 1

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 1 / 1 2 ‧ 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?

Superficie implicita

• E’ il luogo degli zeri di una funzione data:

(tutti i punti p t.c. f (p) = 0 )

• Nota: definiscono un “dentro” e un “fuori”:

– f (p) < 0 <==> p dentro – f (p) > 0 <==> p fuori

– f (p) = 0 <==> p sulla superficie

…sono oggetti solidi! (superfici “watertight”)

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 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

R R f : 3

Superficie implicita

• Es…

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 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

2 2 2

2 y z R

x z y x

f = + + −

 

 

z

x y

Giocare con le sup implicite: GSM

• Molto convenienti…

• Siano A e B oggetti solidi delimitati da superfici implicite, con funzioni f A e f B

• Posso definire (come sup implicite):

– inversioni: - f A

– intersezioni: max( f A , f B ) – unioni: min( f A , f B ) – scavi: max( f A , - f B )

A B

Geometric Solid Modelling

////

(5)

Geometric Solid 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 1 / 1 2 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a

min max min

max

--

f 4 f 4

f 5

f 2 f 1

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 1 / 1 2 ‧ 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 1 / 1 2 ‧ 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 1 / 1 2 ‧ 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 1 / 1 2 ‧ 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 oli

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 1 / 1 2 ‧ 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

(6)

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 1 / 1 2 ‧ 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 1 / 1 2 ‧ 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 1 / 1 2 ‧ 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 1 / 1 2 ‧ 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 è semplice modellare le entità da raffigurare attraverso superfici triangolate...

– esempi:

• una nuvola?

• una fiamma?

• una 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!)

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

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

(7)

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 1 / 1 2 ‧ 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 quadro

utile ad esempio per fare

rendering

di capelli peli etc

(ma non è l'unico sistema e non è detto che sia il migliore)

Riferimenti

Documenti correlati

&#34;marching cubes&#34; * ). triangoli

Il contrario, che qualche volta è utile, MOLTO meno.. * verdemo più avanti nel corso, se

Adabala uni florida (non real time).

Dato un qualsiasi grado di libertà di un gas, la distribuzione di probabilità degli stati energetici relativi a quel grado di libertà (cioè la probabilità di trovare i componenti in

Un lingotto di massa 105 g viene immerso nell’acqua contenuta in un cilindro di 4,00 cm di diametro e il livello del liquido si innalza di 8,00 mm.. Un piccolo soprammobile ha

Con l’espressione densità relativa si esprime invece il rapporto tra la massa di un corpo e la massa di uno stesso volume di acqua distillata misurato alla temperatura di 4 °C..

Naturalmente usando un metodo di previsione ed applicando il fit solo ai residui il risultato sarà plausibilmente più preciso, però questa serie è abbastanza erratica, per cui quanto

Per calcolare il volume del parallelepipedo e del cilindro cavo abbiamo utilizzato un metodo geometrico, mentre per il dado e, in un secondo tempo, anche per