The Quest of the Pearl: A Novel

Curve e Superfici
Professor Ivo De Lotto, Ing. Alessandro Martinelli
➢Curve e Superfici Implicite
➢ Coniche
➢ Blob Surfaces
➢Curve e Superfici Parametriche
➢ Retta e Linea Parametrica
➢ Cerchio ed Ellisse
➢ Triangolo Parametrico
➢ Sfera Parametrica
➢ Algoritmo di De Casteljau e Curve di Bezier
➢ Patch Bilineari e Patch Quadratici
➢Proprietà di Curve e Superficie
➢ Retta tangente ad una Curva
➢ Piano tangente ad una curva e Vettore Normale
➢Algoritmi di Tassellazione
➢ Tassellazione Fissa
➢ Tassellazione Adattativa e Tassellazione Adattativa Esplicita
Grafica 3D e Simulazioni Visuali
Modelli Geometrici
I Modelli Geometrici si dividono in due grandi categorie
Modelli Impliciti:
definiscono delle proprietà ( tramite equazioni e
disequazioni ) che i punti devono soddisfare per
appartenere ad una superficie.
Esempio: X 2 + Y 2 = 0
Modelli Parametrici:
Definiscono una superficie attraverso la mappatura di un
altra superficie più semplice:
Esempio  X = O x + tD x

 Y = O y + tD y
 t ≤ t≤ t
1
 0
Curve e Superfici Implicite
Curve implicite nel piano
Curve implicite nello spazio
Superfici implicite nello spazio
Delimitazioni: introducono condizioni aggiuntive e limitano le superfici
X+Y≤1
X + Z ≤ −2
Vedremo
Coniche
Blob Surfaces
Curve Implicite: Coniche (1/4)
La conica generica nel piano è espressa con una equazione
A seconda dei coefficienti la conica può essere
Una Parabola
Un’iperbole
Un’ellisse (eventualmente una circonferenza)
Una curva degenere: Una coppia di rette, un punto,
l’insieme vuoto.
Curve Implicite: Coniche (2/4)
Circonferenza: la generica circonferenza nel piano è nella forma
Che equivale alla forma generica se si scrive
Ellisse: la generica ellisse nel piano con assi paralleli agli assi
ortogonali è nella forma
Che equivale alla forma generica se si scrive
E’ possibile ottenere la forma più generica dell’ellisse applicando una
rotazione degli assi ortogonali
Curve Implicite: Coniche (3/4)
Curve Implicite: Coniche (4/4)
Parabola: forma implicita
Iperbole con assi paralleli agli assi ortogonali
Generalizzazione delle coniche sotto l'effetto di una trasformazione
lineare
Blob Surfaces (1/3)
Consideriamo la funzione distanza da un punto d p ( x, y, z )
Consideriamo inoltre una funzione di 'fusione' blending f(r) come quella
in figura, definita da 0 ad R
Allora la funzione f (d p ( x, y , z )) è un potenziale scalare che vale 0
sulla circonferenza avente centro in P e raggio R e valori crescenti fino
ad 1 per circonferenze di raggio più piccolo
d p ( x, y , z ) = R
R
P
f (d p ( x, y , z )) = 0
Blob Surfaces (2/3)
Date N funzioni di distanza (non necessariamente 'distanza da un punto' ma
anche altre funzioni di distanza )La superficie blob o di blending è definita in
questo modo
f (d1 ( x, y, z )) + f (d 2 ( x, y, z )) + f (d 3 ( x, y, z )) +  = k
Per avere una struttura gerarchica che componga in modo intelligente più
superfici si utilizzano i Blob Tree (prossima slide), che introducono operazioni
aggiuntive sulle superfici
Blob Surfaces (3/3)
Curve e Superfici Parametriche
Curve parametriche nello spazio ( analoga nel piano )
Superfici parametriche nello spazio
Le curve sempre definite dato un intervallo:
t 0 ≤ t ≤ t1
Le superfici sono definite su un dominio in due dimensioni, tipicamente una
figura geometrica semplice come un triangolo o un quadrato
v
v
u
u
Esempi di Curve e Superfici
Rette e Linee
Triangoli
Sfera
Algoritmo di De Casteljau per le curve di Bezier
Algoritmo di De Casteljau per l'interpolazione Bi-Lineare
Algoritmo di De Casteljau per patch di Bezier di secondo grado
Retta e Linea Parametriche (1/2)
Data la direzione
che esce da
in direzione
e il punto
è data
la retta parametrica
P = Q + tD
Dato il punto
e il punto
parametrizzato che congiunge i due punti è dato da
il segmento
P = A + t ( B − A)
Retta e Linea Parametriche (1/2)
Circonferenza ed Ellisse
Dato il centro
e il raggio r, la circonferenza generica può essere
parametrizzata come
Dato il centro
, il raggio r e due pesi a e b rispetto ai due assi principali si
ottiene la generica ellisse nel piano con assi perpendicolari agli assi cartesiani
Il Triangolo Parametrico
Un triangolo è una superficie molto semplice
Ogni triangolo può essere mappato in modo parametrico su un
triangolo di riferimento nello spazio (u,v): quello di vertici
(0,0),(1,0),(0,1)
L’equazione parametrica è lineare
P = A + u ( B − A) + v(C − A)
P = (1 − u − v) A + uB + vC
La Sfera Parametrica
La sfera parametrica è costruita dato centro e raggio
Questo modello della sfera ha un solo problema: i punti con uguale a
0 e a mappano tutti su, rispettivamente, il polo alto e il polo basso
Algoritmo di De Casteljau (1/5)
Dati 3 punti nel piano, chiamiamo
e
segmento che collega rispettivamente
PA = P0 (1 − t ) + tP1
PB = P1 (1 − t ) + tP2
il generico punto del
con
e
con
Algoritmo di De Casteljau (2/5)
Dato un certo valore
con
considero il segmento che congiunge
PC = PA (1 − t* ) + tPB
Algoritmo di De Casteljau (3/5)
Complessivamente, generalizzando su tutti i valori di t
PC = ( P0 (1 − t ) + tP1 ) (1 − t * ) + t ( P1 (1 − t ) + tP2 )
PC = (1 − t ) 2 P0 + 2t (1 − t ) 2 P1 + t 2 P2
Algoritmo di De Casteljau (4/5)
Aggiungendo un punto alla catena, il processo è analogo
PC = (1 − t ) 2 P0 + 2t (1 − t ) 2 P1 + t 2 P2
PD = (1 − t ) 2 P1 + 2t (1 − t ) 2 P2 + t 2 P3
PE = (1 − t ) 3 P0 + 3t (1 − t ) 2 P1 + 3t 2 (1 − t ) P2 + t 3 P3
Algoritmo di De Casteljau (5/5)
L'algoritmo di De Casteljau è un algoritmo che vale sempre ( per
qualsiasi coppia di curve parametriche definita da 0 ad 1 )
Nel caso in cui le curve siano prodotte da una catena di punti come
nell'esempio precedente, le curve realizzate vengono dette Cu rve d i
B ezier
Le curve di Bezier sono uno degli strumenti di modellazione più
utilizzati in ambito grafico. Approfondiremo il problema nella lezione
sulla modellazione
La proprietà principale delle curve di Bezier è la proprietà di tangenza
rispetto ai segmenti iniziale e finale della catena ( cioè le curve sono
tangenti al primo e ultimo segmento della linea )
Patch di Bezier Bi-Lineare
L'algoritmo di De Casteljau è un algoritmo che vale sempre ( per
qualsiasi coppia di curve parametriche definita da 0 ad 1 )
Pv1 = P0 (1 − u ) + uP3
Pv 2 = P1 (1 − u ) + uP4
P = Pv1 (1 − v) + vPv 2
P = ( P0 (1 − u ) + uP3 )(1 − v) + v( P1 (1 − u ) + uP4 )
P = P0 (1 − u )(1 − v) + P1 (1 − u )v + P2 u (1 − v) + P3uv
Patch di Bezier Quadratico (1/3)
In modo analogo al caso delle curve il Patch di Bezier di secondo
grado è definito dato una griglia di 9 punti ed i Patch bilineari definiti su
gruppi di 4 punti alla volta
Patch di Bezier Quadratico (2/3)
Saltando i conti..
P = PA (1 − u )(1 − v) + PB (1 − u )v + PC u (1 − v) + PD uv
Patch di Bezier Quadratico (3/3)
Proprietà di Curve e Superfici
Vedremo ora alcune proprietà di Curve e superfici Parametriche
Parametrizzazione della Retta Tangente ad una Curva
Vettore normale ad una superficie e formula implicita del
piano tangente
Parametrizzazione del Piano Tangente ad una Superficie
Retta Tangente ad una Curva
Data la Curva Parametrica
Dato
La retta tangente in Q è
il vettore tangente in Q è dato da
Piano Tangente ad una Superficie
Data la Superficie Parametrica
Dato
superficie in Q è
, il piano tangente alla
Normale ad una Superficie
Il vettore normale ad una superficie parametrica S(u,v) può essere
calcolata come prodotto vettoriale dei due vettori derivata parziale
della superficie
N
 
 i
∂S ∂S  ∂S
×
= 
∂u ∂v  ∂u X
∂S
 ∂ v X

j
∂S
∂uY
∂S
∂vY
 
k 
∂S 

∂uZ
∂S 
∂ v Z 
∂S
∂u
∂S
∂v
 ∂S ∂S
 ∂S ∂S
∂S ∂S  ∂S ∂S
∂S ∂S
∂S ∂S
∂S ∂S
×
= i(
−
) + j(
−
)+ k(
−
)
∂u ∂v
∂uY ∂v Z ∂vY ∂uZ
∂uZ ∂v X ∂v Z ∂u X
∂u X ∂vY ∂v X ∂uY
Il piano tangente in forma implicita è dato da: ( P − Q ) ⋅ N = 0
Tassellazione
La tassellazione è il processo di approssimazione di una superficie
tramite primitive lineari, solitamente triangoliper le superfici e segmenti
per le curve
Ci limiteremo a curve/superfici parametriche
Per Curve e Superfici Parametriche vediamo 2 tipi di tassellazione:
Tassellazione Fissa
Tassellazione Adattativa
Tassellazione Fissa
Crea i punti necessari per la superficie campionando il suo dominio
con passi fissi
Il vantaggio principale è l'enorme semplicità e la rapidità di
ricostruzione delle primitive lineari
Lo svantaggio è che non tiene sufficientemente conto dell'andamento
della curva/superficie
Ciò nonostante è la filosofia di tassellazione ancora oggi più utilizzata
Tassellazione Fissa su Dominio Lineare
dt costante
t
0
Una Line_Strip
1
Tassellazione Fissa su Dominio Triangolare
Una Lista di
Triangle Strip
Tassellazione Fissa su Dominio Quadrangolare
Una Lista di
Quad Strip
Tassellazione Adattativa
La tassellazione adattativa tassella maggiormente dove ce n'è più
bisogno:
E' necessario definire una funzione 'errore d i
a pprossim a zion e'
Se l'errore di approssimazione su un triangolo supera una
certa soglia, il triangolo è tassellato in modo più fine
Gli algoritmi sono complessi e richiedono la
memorizzazione dell'elenco delle primitive durante il
processo
Tassellazione Adattativa Esplicita (1/2)
E' una forma di tassellazione che
estende la tassellazione fissa
Definisce una funzione di Kernel
f(t) o f(u,v) per riposizionare i
punti di campionamento
all'interno del dominio
Non cambia il numero dei vertici
e il funzionamento degli algoritmi
di tassellazione è identico al
caso fisso
Tassellazione Adattativa Esplicita (2/2)
Può essere applicata a molti contesti di modellazione