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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i aR 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 4 / 1 5 ‧ 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
Implicit surfaces: categories
• Algebraic surfaces: f () is a polynomial
• Quadratic surfaces : f () degree is 2,
– aka «quadrics»
– important class!
• simple equations, good extressive power
• e.g. perfect spheres (see?)
• Cubic surfaces: f () degree is 3
• etc
Implicit surfaces: good or bad?
The Good:
• Compact
• CSG! (see later)
• Good model for both fluids and solids The Bad:
• Difficult to render
for rasterization-based pipelines
– but, easy for ray-tracers?
Giocare con le sup implicite: GSM
• 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 )
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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
A B
Constructive Solid Geometry CSG
/
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 4 / 1 5 ‧ 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 5
f 3
f 1 f 2
Constructive Solid Geometry
CSG
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 4 / 1 5 ‧ U n i v e r s i t à d e l l ’ I n s u b r i a
Sup implicite:
Rendering con rasterization based?
superfici implicite
nb: non c'e' un modo solo per farlo.
Modo + semplice (non ottimo): campionare volume, ottengo voxel, estrarre isosuperfice a valore 0
triangle mesh
Superfici di suddivisione
• Subdivision surfaces
– Raffinamento progressivo della mesh da lowest res hi res
– Ottimo per oggetti dall’aspetto smooth, organico e “pulito”
Superfici di suddivisione
• Modo molto diffuso per costruire mesh
– 1: fare mesh di controllo
• a bassa risoluzione
• "a mano"
– 2: raffinarla automaticamente
• iterativamente
• (ad ogni interazione si aggiungono facce e vertici)
• molti schemi matematici differenti
– con diverse peoprietà
Superfici di suddivisione
• Esempio: schema butterfly (per mesh triangolari)
– e' uno degli schemi 1=>4
(in un passo di suddivisione, da ogni triangolo se ne ottengono 4) (aggiunta di un vertice per ogni edge)
– MA... quali coordinate assegnare al nuovo vertice?
Ogni schema di suddivisone ha la sua formula. Ad esempio...
Passo suddivisonedi
POS( ) = ( POS( ) + POS( ) ) + ( POS( ) + POS( ) )
+ ( POS( ) + POS( ) + POS( ) + POS( ) )
Superfici di suddivisione
• Esempio: schema butterfly
168 8
16 162
162
16-1
16-1 16-1
16-1
168 162 -116
Superfici di suddivisione Ad ogni passo di suddivisione
• (x,y,z) dei nuovi vertici inseriti
– formula (estrapolazione dei vicini)
• (x,y,z) dei vecchi vertici
– si tiene la vecchia pos (schemi “interpolativi”) oppure
– formula (estrapolazione) (schemi “approssimativi”)
Esempio: con schema Catmull-Clark
level 0
(“control mesh”)
level 1
level 2 level 3
lvl ∞
(“limit surface”)
Differenze fra gli schemi di suddivisione
• interpolativi VS approssimativi
• solo triangoli, solo quads, qualunque cosa
• incremento complessità
– (per ogni passo di suddivisione)
• proprietà della limit surface
– (esistenza, smoothness)
• esistenza forma chiusa per la limit surface
– (esatta o approssimata)
• …
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
Superfici di suddivisione
mesh di controllo
mesh finale
Superfici di suddivisione
Anche iterativamente:
1- Modellare “control mesh”
(editing manuale)
2- Suddivisione
(un passo)
3- Ritocco!
(editing manuale)
4- Goto 2
(fino a raggiungimento risultato voluto alla risuolzione voluta)
Molti schemi…
• Catmull-Clark
• Doo-Sabin
• Loop
• sqrt(3)
• Butterfly
• Mid-edge
• ….
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