1 / 28

Dinamica di corpi deformabili basata sulle posizioni

Dinamica di corpi deformabili basata sulle posizioni. Candidato: Andrea Bracciale. Relatore: Prof. Marco Schaerf. Correlatore: Ing. Marco Fratarcangeli. Obbiettivo. Framework che simula il comportamento di corpi deformabili. simulazione fisicamente plausibile.

uttara
Download Presentation

Dinamica di corpi deformabili basata sulle posizioni

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Obbiettivo Framework che simula il comportamento di corpi deformabili simulazione fisicamente plausibile un numero di frame per secondo superiore ai 20 trovare un compromesso tra velocità e qualità velocità qualità simulazione non reale giusto compromesso scarsa interattività Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

  3. Particelle Vincoli opportunamente disposte nel volume occupato dal corpo limitano il movimento e le posizioni delle particelle Struttura dei corpi oggetto complesso da simulare corpo deformabile viene suddiviso in elementi più piccoli ognuno in relazione con gli altri sistema mass-spring Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

  4. tessuto struttura nascosta Struttura dei corpi particelle vincoli Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

  5. Struttura dei corpi Esempio corpo complesso Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

  6. Simulazione • spostare le particelle applicando la legge di Newton F = ma • applicare i vincoli per muovere le particelle in una posizione corretta Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

  7. Algoritmo Per ogni time step Applicare le forze e aggiornare le posizioni Testare le collisioni Risolvere i vincoli Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

  8. Algoritmo Per ogni time step Per ogni oggetto Applicare le forze e aggiornare le posizioni Applica le forze agenti sul corpo Testare le collisioni Aggiorna la posizione delle particelle Risolvere i vincoli Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

  9. 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 Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

  10. 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) Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

  11. Aggiornamento delle posizioni Metodo utilizzato: Simulazione con dinamica basata sulle posizioni 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 Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

  12. Algoritmo Per ogni oggetto Per ogni time step Il numero di iterazioni è pari a N? Cancella i vincoli di collisione si Applicare le forze e aggiornare le posizioni no Aggiorna la posizione delle particelle per far rispettare tutti i vincoli dell’oggetto Testare le collisioni Risolvere i vincoli Aumenta il numero di iterazioni di uno Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

  13. 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 Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

  14. Vincoli - Stretching Determinano 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 Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

  15. Vincoli - Distance kstretch = 1 kstretch = 0,05 kstretch = 0,001 Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

  16. Vincoli - Bending Vincolano gli angoli diedri tra le facce di una mesh e costante di rigidità kbend = [0..1] • conservazione della quantità di moto • conservazione del momento angolare Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

  17. Vincoli - Bending Costante di bending pari a 1 Costante di bending pari a 0 Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

  18. Vincoli - Overpressure Fanno si che il volume di un’oggetto rimanga invariato Volume iniziale Volume attuale Kpressure determina quanto il volume può variare da quello iniziale Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

  19. Vincoli - Overpressure Kpressure = 1 Kpressure = 0 Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

  20. n q p3 p2 p Vincoli - Collisione Generati in caso di collisione e cancellati dopo ogni time-step p1 p n p2 p3 q p1 n In effetti il calcolo effettuato è più complesso perché viene considerato anche lo spostamento della faccia dopo l’urto Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

  21. Algoritmo Per ogni time step Per ogni oggetto Applicare le forze e aggiornare le posizioni C’è una collisione con altri oggetti? no Continua Testare le collisioni si Aggiungi un vincolo di collisione Risolvere i vincoli Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

  22. 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 Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

  23. 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 Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

  24. 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 Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

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

  26. 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 Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

  27. Risultati ottenuti 75 iterazioni Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

  28. Lavori futuri • collisione con corpi rigidi • attrito dinamico e statico • aggiunta del self-collision Dipartimento di Informatica e Sistemistica -Università di Roma "La Sapienza" - Andrea Bracciale

More Related