![Page 1: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/1.jpg)
Modellare2
Daniele MariniCon contributi di Maurizio Rossi
![Page 2: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/2.jpg)
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:
![Page 3: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/3.jpg)
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
![Page 4: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/4.jpg)
• 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.
Costruzione per trascinamento (sweep) lungo curve parametriche 3D
![Page 5: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/5.jpg)
P(u) = c0 u3 + c1 u2 + c2 u + c3P(u) = c0 u3 + c1 u2 + c2 u + c3
il frame di Frenet
Video 7
![Page 6: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/6.jpg)
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 Pper costruirlo ricordiamo che:T = V / |V| dove V =3 c0u2+ 2 c1u + c2 è la derivata della curva P
N = K/ |K| chiamato vettore normaledove 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
![Page 7: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/7.jpg)
Il frame di Frenet può essere utile anche per definire un sistema di riferimento per una telecamera virtuale nella animazione
il frame di Frenet
![Page 8: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/8.jpg)
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.
il frame di Frenet
![Page 9: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/9.jpg)
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 garantiscel’assenza di “buchi”, ma dà luogo a superfici con“spigoli” indesiderati. Si impongono continuitàdella derivata prima e seconda.
Superfici parametriche complesse
![Page 10: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/10.jpg)
![Page 11: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/11.jpg)
Decimazione dei triangoli
• Perché triangoli?– Sono piani!
• Come decimare? – Ridurre i triangoli in
regioni “piatte”– Preservare l’aspetto
• Stimare la curvatura:
€
Δf
Δu,Δf
Δv
€
Δf
Δu,Δf
Δv
Video 8
![Page 12: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/12.jpg)
Metodo di Schroeder• Determinare gli spigoli “rilevanti per
l’aspetto”: questi vanno tenuti• Classificare i vertici:
1. Punti interni generici2. Punti comuni a triangoli con T connessione3. Punti del contorno4. Punti di uno spigolo rilevante per l’aspetto5. Punti comuni a 3 o più spigoli rilevanti per l’aspetto
(punti vertice)
![Page 13: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/13.jpg)
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
![Page 14: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/14.jpg)
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
![Page 15: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/15.jpg)
Algoritmo di Sibson• Data una coppia di triangoli adiacenti, si
esamina e si scambiano se un vertice e’ interno al cerchio circoscritto:
![Page 16: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/16.jpg)
Un esempioVideo 9
![Page 17: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/17.jpg)
Volumi
![Page 18: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/18.jpg)
• 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
Volumi: Schemi di rappresentazione
![Page 19: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/19.jpg)
CSG - Geometria solida costruttiva
• Constructive Solid Geometry• Si basa su operazioni booleane su modelli
solidi elementari
![Page 20: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/20.jpg)
CSG: i solidi primitivi
•Sfera
•Piramide
•Parallelepipedo
•Cono
•Cilindro
•toro
![Page 21: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/21.jpg)
Albero CSG• Le forme base possono
essere composte con operatori booleani: unione, intersezione, differenza
• La composizione può essere rappresentata con un albero
![Page 22: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/22.jpg)
Esempio CSG
Video 10
![Page 23: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/23.jpg)
![Page 24: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/24.jpg)
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 applicareoperazioni insiemistiche per aggregare isemispazi.
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
Rappresentazione di volumi per contorni: B-rep
![Page 25: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/25.jpg)
•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 B-rep versus
CSG
![Page 26: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/26.jpg)
•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: Rappresentazione B-rep
![Page 27: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/27.jpg)
![Page 28: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/28.jpg)
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
![Page 29: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/29.jpg)
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
![Page 30: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/30.jpg)
Suddivisione spaziale: octree
![Page 31: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/31.jpg)
Voxel
![Page 32: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/32.jpg)
![Page 33: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/33.jpg)
![Page 34: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/34.jpg)
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.
Conversioni tra schemi di rappresentazione
![Page 35: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/35.jpg)
Ogni sistema di modellazione deve risolvere i problemi:
1. Intersezione tra superfici2. Offset di una superficie (luogo di punti a
distanza costante da una superficie)3. Blending - superficie smooth tra due superfici4. Deformazioni locali o globali
Software di modellazione
![Page 36: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/36.jpg)
Feature based designConstraint 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.
Approcci emergenti alla modellazione
![Page 37: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/37.jpg)
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
![Page 38: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/38.jpg)
Ad esempio si immagini di avvolgere con un drappo una scena fatta di forme geometriche
![Page 39: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/39.jpg)
Esempi di fusione
![Page 40: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/40.jpg)
Modellazione con soft balls
Una sfera soffice a cui è stato sottratto un cubo soffice
![Page 41: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/41.jpg)
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
![Page 42: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/42.jpg)
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
![Page 43: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/43.jpg)
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
![Page 44: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/44.jpg)
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.
![Page 45: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/45.jpg)
La modellazione con funzioni implicite e isosuperfici si presta alla animazione di forme e alla soluzione efficiente della ricerca di collisioni
Esempi di MetaBalls
![Page 46: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/46.jpg)
![Page 47: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/47.jpg)
![Page 48: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/48.jpg)
![Page 49: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/49.jpg)
![Page 50: Modellare 2 Daniele Marini Con contributi di Maurizio Rossi](https://reader035.vdocuments.mx/reader035/viewer/2022062701/5542eb65497959361e8d10b1/html5/thumbnails/50.jpg)