Sapienza Università di Roma Facoltà di Ingegneria Tesi di Laurea in Ingegneria Informatica Animazione Interattiva di Esplosioni Candidato: Claudio Ponziani Relatore: Prof. Marco Schaerf Correlatore: Ing. Marco Fratarcangeli Anno Accademico 2006/2007 Dinamica di una esplosione Una esplosione è un improvviso e violento aumento di volume e rilascio di energia, generalmente accompagnata da alte temperature e diffusione di gas. Può coinvolgere diversi materiali Effetti visivi differenti Dipartimento di Informatica e Sistemistica - Sapienza Università di Roma – Ponziani Claudio Sommario Teoria sulla dinamica dei fluidi Particles System (cfr. Fieldman et al. 2003) Visualizzazione Tecniche di simulazione Fluid Solver Based (cfr. Rasmussen et al. 2003) Dipartimento di Informatica e Sistemistica - di Roma "La Sapienza" – Claudio Ponziani Equazioni di Navier-Stokes 1/3 Un fluido, con densità e temperatura costanti, è determinato da: ◦ un campo di velocità u ◦ un campo di pressione p Questi campi variano nel tempo secondo le equazioni di Navier-Stokes: u 0 Viscosità del fluido u 1 u u p 2u f t Densità del fluido Insieme delle forze esterne Dipartimento di Informatica e Sistemistica - Sapienza Università di Roma – Ponziani Claudio Equazioni di Navier-Stokes 2/3 Imponiamo: ◦ Conservazione massa ◦ Conservazione quantità di moto ◦ Boundary Conditions: Periodic Boundaries Fixed Boundaries Dipartimento di Informatica e Sistemistica - Sapienza Università di Roma – Ponziani Claudio Equazioni di Navier-Stokes 3/3 Combiniamo le due equazioni di NavierStokes u 1 2 u u p u f t u 0 Decomposizione di Helmoltz-Hodge u P u u 2u f t Operatore che proietta qualsiasi vettore w sulla sua parte di divergenza u=Pw Dipartimento di Informatica e Sistemistica - di Roma "La Sapienza" – Claudio Ponziani Metodo di risoluzione Risolviamo l’equazione partendo da uno stato iniziale w0 e procedendo con time step t Quattro passi di risoluzione ad ogni iterazione Add Force w1 Advect w2 Diffuse w3 Project w4 Dipartimento di Informatica e Sistemistica - Sapienza Università di Roma – Ponziani Claudio Aggiungiamo forze esterne Passo semplice da risolvere Se assumiamo che la forza applicata non varia nel tempo abbiamo che il suo risultato sul fluido è dato da w1 w0 x t f x, t Campo di velocità iniziale Forza esterna Dipartimento di Informatica e Sistemistica - Sapienza Università di Roma – Ponziani Claudio Effetto del fenomeno di convezione u 2 P u u u f t Rende l’equazione non lineare Metodo delle caratteristiche w2 x w1 px,t Linea di flusso del campo di velocità Dipartimento di Informatica e Sistemistica - di Roma "La Sapienza" – Claudio Ponziani Metodo delle caratteristiche Conoscere la velocità in un punto x al tempo t t Linea di flusso p(x,s) ( x0 , t ) ( x1 , t t ) w( x1 , t t ) w( x0 , t ) Dipartimento di Informatica e Sistemistica - di Roma "La Sapienza" – Claudio Ponziani Esplosione – Spazio virtuale Spazio rappresentato con griglia tridimensionale Singolo Voxel di coordinate (i,j,k) j k i Densità[i,j,k] Due array tridimensionali Velocità[i,j,k] Dipartimento di Informatica e Sistemistica - di Roma "La Sapienza" – Claudio Ponziani Esplosione - Simulazione Aumentiamo la densità di alcuni voxels Inseriamo delle forze violenti che modificano il campo di velocità Dipartimento di Informatica e Sistemistica - Sapienza Università di Roma – Ponziani Claudio Fase di Rendering Due tecniche provate ◦ Cubes Rendering Visualizziamo ogni singolo voxels in funzione del suo valore di densità. ◦ Textures Planes Volume Rendering Tecnica più complessa che utilizza textures planes Dipartimento di Informatica e Sistemistica - Sapienza Università di Roma – Ponziani Claudio Textures Planes Volume Rendering Sezioniamo la griglia in piani perpendicolari al punto di vista dell’osservatore, prelevando le immagini Alpha Blending attivo Depth Testing disattivo Disegniamo i piani dal più vicino al più lontano Dipartimento di Informatica e Sistemistica - di Roma "La Sapienza" – Claudio Ponziani Analisi dei risultati Valore Dimensione Valore N 30 N 40 TPVR attivo Si TPVR attivo Si Diff Rate 0.0002 Diff Rate 0.0002 Visc Rate 0.0002 Visc Rate 0.0002 Frame Rate Max 16.59 fps Frame Rate Max 7.12 fps Frame Rate Avg 13.30 fps Frame Rate Avg 6.72 fps Draw Density 21.88 % Draw Density 25.65% Density Step 16.6260 % Density Step 16.60% Velocity Step 50 63.30% Velocity Step 71.22% Frames per secondo Dimensione 40 Costo computazione O(n 3 ) 30 20 10 0 10 15 20 25 30 35 Dimensione griglia 40 45 50 Dipartimento di Informatica e Sistemistica - Sapienza Università di Roma – Ponziani Claudio Obiettivi Raggiunti Realizzazione di un’animazione plausibile Minimizzazione del costo computazionale Simulazione guidata dalle leggi fisiche dei fluidi Dipartimento di Informatica e Sistemistica – Sapienza Università di Roma – Ponziani Claudio Possibili miglioramenti Gestione del colore in funzione della temperatura. Interazioni con oggetti virtuali. Riduzione della complessità computazionale. Dipartimento di Informatica e Sistemistica - Sapienza Università di Roma – Ponziani Claudio