Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof....

28
Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli

Transcript of Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof....

Page 1: Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli.

Dinamica di corpi deformabili basata sulle posizioni

Candidato: Andrea Bracciale

Relatore: Prof. Marco Schaerf

Correlatore: Ing. Marco Fratarcangeli

Page 2: Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli.

Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

Obbiettivo

simulazione fisicamente plausibile

un numero di frame per secondo superiore ai 20

trovare un compromesso tra velocità e qualità

velocità qualità

giusto compromesso

scarsa interattività

simulazione non reale

Framework che simula il comportamento di corpi deformabili

Page 3: Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli.

Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

Struttura dei corpi

corpo deformabile oggetto complesso da simulare

Particelle

opportunamente disposte nel volume occupato dal corpo

Vincoli

limitano il movimento e le posizioni delle

particelle

viene suddiviso in elementi più piccoli ognuno in relazione con

gli altri

sistema mass-spring

Page 4: Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli.

Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

Struttura dei corpitessuto struttura nascosta

particelle vincoli

Page 5: Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli.

Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

Struttura dei corpiEsempio corpo complesso

Page 6: Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli.

Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

Simulazione

• spostare le particelle applicando la legge di Newton F = ma

• applicare i vincoli per muovere le particelle in una posizione corretta

Page 7: Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli.

Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

Algoritmo

Per ogni time step

Applicare le forze e aggiornare le posizioni

Testare le collisioni

Risolvere i vincoli

Page 8: Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli.

Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

Per ogni time step

Testare le collisioni

Algoritmo

Per ogni oggetto

Applica le forze agenti sul corpo

Aggiorna la posizione delle

particelle

Applicare le forze e aggiornare le

posizioni

Risolvere i vincoli

Page 9: Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli.

Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

Aggiornamento delle posizioni

Equazione della dinamica di una particella

Esistono diversi metodi per risolverla, in questo caso serve uno che garantisce stabilità e prestazioni

Metodo di integrazione di Verlet

Page 10: Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli.

Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

Metodo Verlet

nuova posizione posizione corrente

a = f/m time step

velocità implicitamente memorizzata all’interno

della differenza tra posizione corrente e

quella al passo precedente

sistema stabile e molto veloce anche se non estremamente

accurato (dissipazione di energia)

Page 11: Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli.

Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

Aggiornamento delle posizioni

Simulazione con dinamica basata sulle posizioniMetodo utilizzato:

Controllo diretto sulla posizione dell’oggetto modificando direttamente le coordinate

spaziali delle particelle

Rimozione dei problemi di instabilità

Possibilità di modificare la posizione delle particelle durante la simulazione

Semplicità di applicazione dei vincoli

Algoritmo rapido e semplice

Page 12: Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli.

Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

Per ogni time step

Applicare le forze e aggiornare le

posizioni

Testare le collisioni

Risolvere i vincoli

AlgoritmoPer ogni oggetto

Il numero di

iterazioni è pari a

N?

Aggiorna la posizione delle

particelle per far rispettare tutti i

vincoli dell’oggetto

Aumenta il numero di iterazioni di uno

Cancella i vincoli di collisione

si

no

Page 13: Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli.

Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

Vincoli

Strutturali – generati al momento di creazione dell’oggetto

Stretching

Bending

Overpressure

Collisione – generati durante la simulazione e cancellati alla fine di ogni time-step

Page 14: Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli.

Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

Vincoli - StretchingDeterminano la distanza tra le particelle

Cdist(p1,p2) = |p1 – p2| – d

e costante di rigidità kstretch = [0..1]

conservazione della quantità di moto

conservazione del momento angolare

Page 15: Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli.

Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

Vincoli - Distance

kstretch = 1

kstretch = 0,05

kstretch = 0,001

Page 16: Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli.

Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

Vincoli - Bending

e costante di rigidità kbend = [0..1]

Vincolano gli angoli diedri tra le facce di una mesh

conservazione della quantità di moto

conservazione del momento angolare

Page 17: Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli.

Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

Vincoli - Bending

Costante di bending pari a 1

Costante di bending pari a 0

Page 18: Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli.

Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

Vincoli - OverpressureFanno si che il volume di un’oggetto rimanga invariato

Kpressure determina quanto il volume può variare da quello iniziale

Volume attuale Volume iniziale

Page 19: Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli.

Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

Vincoli - Overpressure

Kpressure = 1

Kpressure = 0

Page 20: Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli.

Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

Vincoli - CollisioneGenerati in caso di collisione e cancellati dopo ogni time-step

n

p1

p2p3

n

q

p

p2 p1p3 q

p n

In effetti il calcolo effettuato è più complesso perché viene considerato anche lo spostamento della faccia dopo l’urto

Page 21: Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli.

Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

Per ogni time step

Algoritmo

Per ogni oggetto

Aggiungi un vincolo di collisioneRisolvere i vincoli

Applicare le forze e aggiornare le

posizioni

Testare le collisioni

C’è una collisione con altri oggetti?

si

noContinua

Page 22: Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli.

Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

Collisioni

Verifica delle collisioni delle Bounding Box

Individuazione dei vertici che collidono

Aggiunta di un vincolo di collisione

Calcolo molto semplice e veloce per testare le collisioni

A fronte di un leggero calcolo in più in caso di collisione, c’è un grande risparmio di calcolo in caso di mancata collisione

Page 23: Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli.

Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

Collisioni

Verifica delle collisioni delle Bounding Box

Individuazione dei vertici che collidono

Aggiunta di un vincolo di collisione

Spatial Hashing

Le facce che compongono la mesh di uno degli oggetti vengono mappate secondo in una griglia di dimensioni definite dall’utente

Vengono calcolati gli indici di hash per ogni cella che contiene le facce dell’oggetto

Si calcolano gli indici di hash per ogni vertice appartenente all’altro oggetto

Se un vertice ha un indice uguale a uno di quelli calcolati in precedenza si verifica una collisione tra la particella e la faccia

Page 24: Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli.

Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

Collisioni

Verifica delle collisioni delle Bounding Box

Individuazione dei vertici che collidono

Aggiunta di un vincolo di collisione

Una volta verificata la collisione, viene generato un vincolo contenente la particella e

la faccia che hanno colliso

Page 25: Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli.

Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

Page 26: Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli.

Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

Risultati ottenuti

framework

simula contemporaneamente corpi deformabili con diverse strutture

gestisce le collisioni senza subire rallentamenti significativi

ha un algoritmo stabile, leggero e visibilmente valido

utilizzabile anche in applicazioni interattive (videogiochi o animazioni in tempo reale)

semplice estensione a nuove caratteristiche

Page 27: Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli.

Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

Risultati ottenuti

75 iterazioni

Page 28: Dinamica di corpi deformabili basata sulle posizioni Candidato: Andrea Bracciale Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli.

Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

Lavori futuri

collisione con corpi rigidi

attrito dinamico e statico

aggiunta del self-collision