Modellare
2
Daniele Marini
Con contributi di Maurizio Rossi
Mesh con curve
parametriche 3D
Si possono creare
superfici a maglia
(mesh) composte
dalla combinazione
di curve
parametriche nello
spazio, qui un
esempio di una
maglia:
Lofting
• Le superfici lofted sono anche
chiamate ruled surfaces (superfici
rigate), ottenute per interpolazione
(trascinamento) di curve
parametriche 3D lungo rette o
altre curve parametriche 3D (sono
anche chiamate patch di Coons)
Video 6
Costruzione per trascinamento (sweep)
lungo curve parametriche 3D
• Data una curva parametrica bicubica, con c0, c1, c2, c3
punti di controllo (P e c sono vettori in 3D):
P(u) = c0 u3 + c1 u2 + c2 u + c3
• Viene detta curva generatrice e rappresenta la
sezione trasversale su cui trascinare un’altra curva P(v)
per costruire una superficie P(u,v).
• È necessario definire un sistema di riferimento
chiamato “frame” per definire l’orientamento di ogni
faccia.
il frame di Frenet
P(u) = c0 u3 + c1 u2 + c2 u + c3
Video 7
il frame di Frenet
Per definire il frame di Frenet relativo alla curva parametrica:
P(u) = c0 u3 + c1 u2 + c2 u + c3
l’origine è un punto qualsiasi lungo la curva P ,
i 3 versori del riferimento sono T, N, B così definiti:
T vettore unitario tangente alla curva in P
per costruirlo ricordiamo che:
T = V / |V| dove V =3 c0u2+ 2 c1u + c2 è la derivata della
curva P
N = K/ |K| chiamato vettore normale
dove K = V x A x V/ |V| e A è la derivata seconda della
curva (A = 6c0u + 2c1)
B = T x N chiamato vettore binormale
il frame di Frenet
Il frame di Frenet può essere utile anche per
definire un sistema di riferimento per una
telecamera virtuale nella animazione
il frame di Frenet
Occorre anche definire come
suddividere in intervalli la sezione:
• la divisione di u in intervalli uguali
può produrre quadrangoli non
uniformi,
• si sceglie la parametrizzazione
rispetto alla lunghezza degli archi: se
la curvatura è elevata si avranno più
poliedri rispetto a tratti con curvatura
bassa.
Superfici parametriche complesse
Oggetti complessi composti da molte patch si
creano con tecniche di interpolazione di punti
campione, imponendo continuità tra le varie
“patch”.
La continuità limitata al primo ordine garantisce
l’assenza di “buchi”, ma dà luogo a superfici con
“spigoli” indesiderati. Si impongono continuità
della derivata prima e seconda.
Decimazione dei triangoli
• Perché triangoli?
– Sono piani!
• Come decimare?
– Ridurre i triangoli in
regioni “piatte”
– Preservare l’aspetto
• Stimare la
curvatura:
Video 8

f f
,
u v
Metodo di Schroeder
•
•
Determinare gli spigoli “rilevanti per
l’aspetto”: questi vanno tenuti
Classificare i vertici:
1.
2.
3.
4.
5.
Punti interni generici
Punti comuni a triangoli con T connessione
Punti del contorno
Punti di uno spigolo rilevante per l’aspetto
Punti comuni a 3 o più spigoli rilevanti per l’aspetto
(punti vertice)
1.Punti interni generici
–Si possono eliminare se la distanza del punto dalla superficie
approssimata è inferiore a una soglia assegnata
2.Punti comuni a triangoli con T connessione
–Non si possono eliminare
3.Punti del contorno
–Si possono eliminare se la distanza dalla retta congiungente i
vertici adiacenti è inferiore a una soglia assegnata
4.Punti di uno spigolo rilevante per l’aspetto
–Si possono eliminare se la distanza dalla retta congiungente i
vertici adiacenti è inferiore a una soglia assegnata
5.Punti comuni a 3 o più spigoli rilevanti per l’aspetto
(punti vertice)
–Non si possono eliminare
Triangolazione
• Triangolazione di Delaunay e diagrammi di
Voronoi
Partizione del
piano in celle t.c.
tutti i punti di una
cella sono piu’
vicini al vertice
generatore della
cella di ogni altro
punto
Algoritmo di Sibson
• Data una coppia di triangoli adiacenti, si
esamina e si scambiano se un vertice e’
interno al cerchio circoscritto:
Un esempio
Video 9
Volumi
Volumi: Schemi di
rappresentazione
•
•
•
•
CSG
Boundary representation (Brep)
suddivisione spaziale
superfici mediali
Ciascuno schema deve permettere di risolvere il
problema dell’appartenenza di un punto al semispazio
individuato dal solido
CSG - Geometria solida
costruttiva
• Constructive Solid Geometry
• Si basa su operazioni booleane su modelli
solidi elementari
CSG: i solidi primitivi
•Sfera
•Piramide
•Parallelepipedo
•Cono
•Cilindro
•toro
Albero CSG
• Le forme base possono
essere composte con
operatori booleani:
unione, intersezione,
differenza
• La composizione può
essere rappresentata
con un albero
Esempio CSG
Video 10
Rappresentazione di volumi
per contorni: B-rep
La modellazione solida richiede specifiche informazioni
per individuare sottospazi e per determinare se un punto
appartiene a un sottospazio.
In ogni caso si tratta di definire semispazi e applicare
operazioni insiemistiche per aggregare i semispazi.
Un semispazio algebrico è definito come:
H
 x, y, z | p( x, y, z)  0
e p(x,y,z) è un polinomio reale con coefficienti reali; il
Polinomio può rappresentare ad esempio l’equazione
di un piano o di una superficie
Volumi:
Rappresentazione B-rep versus
CSG
•Con lo schema CSG si possono ottenere forme assai
complesse applicando tecniche di “sweep”
•Nello schema B-rep un solido è rappresentato da una
superficie delimitata da facce, spigoli e vertici. Gli
elementi di una rappresentazione B-rep possono
intersecarsi solo lungo spigoli o vertici descritti nella
struttura.
•Operatori booleani possono essere applicati anche a
un volume B-rep
Volumi: Rappresentazione Brep
•Gli schemi B-rep si dividono in due grandi classi:
•Manifold B-rep
•Non manifold B-rep
•Manifold (varietà lineari): ammettono spigoli comuni
a due sole facce e vertici comuni a più spigoli raccolti
in un conoide
•Non manifold: ammettono un numero pari qualsiasi di
facce comuni a uno spigolo, si distingue il volume
interno dall’esterno
Volumi poliedrici: Formula di
Eulero
• La formula di Eulero: è una condizione
che deve essere verificata affinché la
superficie del solido sia corretta (no
buchi)
V-E+F=2
• V = vertici
• E = lati (spigoli)
• F = facce
Schemi a suddivisione spaziale
• Mesh - conformi al contorno
• BSP tree - non conformi al contorno
• Voxel (Octree) - non conformi al contorno
• Mesh: possono essere organizzate in tetraedri,
esaedri o altri poliedri – sono usate nel calcolo ad
elementi finiti.
• Binary Space Partition tree: sono suddivisioni
ricorsive dello spazio 3D in regioni disgiunte, la
radice denota un piano separatore - un esempio è
octree
Suddivisione spaziale:
octree
Voxel
Conversioni tra schemi di
rappresentazione
La conversione tra schemi di rappresentazione non è
semplice:
• da CSG a B-rep è ben compresa e facile;
• da B-rep a CSG ci sono punti oscuri in particolare
per conformare la rappresentazione al contorno;
• nel caso dei poliedri la conversione B-rep -> CSG è
analoga alla conversione B-rep -> BSP tree.
Software di modellazione
Ogni sistema di modellazione deve risolvere i
problemi:
1. Intersezione tra superfici
2. Offset di una superficie (luogo di punti a
distanza costante da una superficie)
3. Blending - superficie smooth tra due
superfici
4. Deformazioni locali o globali
Approcci emergenti alla
modellazione
Feature based design
Constraint based design
•Feature based: consiste nel definire elementi di
forma aventi un significato specifico (slitte, fori, tasche,
…)
•Modellazione a vincoli: significa imporre vincoli
numerici o geometrici (anche fisici o strutturali) a un
modello.
•La valutazione dei vincoli è assai complessa: il
problema può essere sovradeterminato (troppi vincoli),
sottodeterminato (troppo pochi); in generale si
esprimono con sistemi di equazioni.
Meta balls o soft balls
• Simulare forme naturali, soffici,
prive di bordi
• Rappresentare forme costruite con
la creta
• Meta balls: simili a gocce d’acqua,
quando si avvicinano si uniscono;
si possono descrivere con funzioni
di potenziale
Video 11
Ad esempio si immagini di
avvolgere con un drappo una
scena fatta di forme geometriche
Esempi di fusione
Modellazione con soft balls
Una sfera soffice
a cui è stato
sottratto un cubo
soffice
Primitive soft
• Derivano da superfici equipotenziali,
ovvero campi scalari descritti da una
funzione f(x,y) dipendente da una distanza
d.
• La funzione f(x,y) è implicita!
– es: circonferenza (2D):
• forma esplicita parametrica: x(t)=r*cos(t); y(t)=r*sin(t)
• forma implicita: f(x,y)
r2=x2+y2
• Risolvere per funzioni implicite è
complesso
Primitive soft
(segue)
• La forma implicita f(x,y,z) identifica un
luogo di punti in 3D
• Interessa trovare tutti i punti che
soddisfano l’equazione: va valutata per
prove ed errori
Primitive soft (segue)
• Se abbiamo due o più equazioni implicite
possiamo sommarle, dovremo valutare il
campo risultante.
• In ogni punto dello spazio il campo è il
risultato del contributo dei due (o più)
campi descritti da ogni singola funzione
Primitive soft (segue)
Dobbiamo avere:
• Una funzione generatrice di un campo, in ogni punto
P il campo è funzione della distanza d(P) da un punto
dato (es. campo termico, campo di intensità di
illuminazione, ...)
• Una funzione che descrive il “potenziale del campo”
f(d(P)). Dà il valore del campo in ogni punto (funzione
di un vettore ad argomenti scalari),
es: f(P) = (1-d2/R2)2 con d <= R (distanza)
• Se abbiamo più generatori del campo dobbiamo
miscelarne il contributo per valutare il campo di
potenziale totale
• Il campo risultante si rappresenta visualizzando
superfici equipotenziali, o iso superfici.
La modellazione con funzioni implicite e
isosuperfici si presta alla animazione di
forme e alla soluzione efficiente della
ricerca di collisioni
Esempi di MetaBalls
Scarica

04_modellare-II - Università degli Studi di Milano