Sveučilište u Zagrebu - Fakultet Elektrotehnike i Računarstva
Diplomski radovi računalne grafike
2011./2012. Design by Mikuš
Animiranje fluida relativno je nov problem računalne grafike zato što do prije par desetljeća nije bilo dovoljno računalne moći za simulaciju fluida u područjima koji koriste grafiku, kao što su filmska industrija ili industrija igara. Metode simulacije fluida nisu ništa drugo nego načini rješavanja diferencijalnih jednadžbi koje opisuju ponašanje fluida, najčešće riječ je o Navier-Stokesovim jednadžbama. Rješavanje diferencijalnih jednadžbi nije nepoznanica, ali postojeće metode nisu bile prikladne za računalne simulacije i vizualizacije.
U ovom je radu opisana, istražena i implementirana jedna od metoda pomoću koje je moguće ostvariti animaciju fluida u stvarnom vremenu. Riječ je o metodi hidrodinamike izglađenih čestica (engl. Smoothed Particle Hydrodynamics, SPH) koja je u proteklih desetak godina postala najpopularnija metoda animacije fluida upravo zato što omogućuje dovoljno dobru preciznost računa i rad s velikim količinama podataka. SPH metoda temeljena je na interakciji čestica. Više o metodi ovdje.
Za prikaz fluida razvijeno je mnogo različitih metoda. Na mjesto čestica moguće je postaviti sličice kao što je to pristup u uobičajenim čestičnim sustavima. Bolji pristup je koristiti neku od metoda vizualizacije Metakugli, kao što je bacanje zrake ili algoritam pokretnih kocki. Neke druge metode su prikaz čestica surfelima te prikaz poligonalnom mrežom u prostoru pogleda.
U ovom radu vizualizacija je ostvarena prikazom sličica i algoritmom pokretnih kocki. Za prikaz sličica je s ciljem usporedbe korištena ugrađena funkcionalnost OpenGL-a te vlastiti program za sjenčanje. Ova metoda pruža mogućnost brzog prikaza te je pogodna za provjeravanje ispravnosti fluida. Algoritam pokretnih kocki je način prikaza izopovršine nekog skalarnog polja. U slučaju fluida to su metakugle koje predstavljaju čestice fluida. Na slici je prikaz tri sfere nacrtane algoritmom pokretnih kocki uz različitu razinu detaljnosti.
Prednost pokretnih kocki je što je algoritam u potpunosti izvodiv na GPU uz uporabu programa za sjenčanje geometrije, što znači da su moguće interaktivne brzine crtanja kao i ostvarenje raznih efekata.
Implementacija je napravljena u programskom jeziku C++. Korišten je OpenGL 4 te pripadajući GLSL 4 za pisanje programa za sjenčanje. Od pomoćnih biblioteka korišten je GLEW za rad s OpenGL-om, SFML za rad s prozorima i ulaznim jedinicama te DevIL za rad sa slikama/teksturama. Korišteno je razvojno okruženje Visual Studio 2010 (besplatno dostupan kroz MSDNAA program) i njegov dodatak NShader koji omogućuje označavanje sintakse jezika za sjenčanje.
Prikaz fluida ugrađenim funkcijama polja sličica.
Prikaz fluida poljem sličica koje koristi GPU.
Prikaz fluida pokretnim kockama uz različite razine detaljnosti prostorne rešetke.
Artefakti prilikom prikaza pokretnim kockama.
Pogreška u SPH sustavu zbog koje se čestice grupiraju (gornji dio slike) umjesto da se ravnomjerno rasporede (donji dio slike).
Astrofizičari su krajem 80-ih primijetili kako se ponašanje nekih zvjezdanih događaja može opisati kao ponašanje fluida te je razvijena metoda SPH koja ubrzava rješavanje Navier-Stokesovih jednadžbi tako da ih aproksimira česticama i izglađenim poljem svojstava tih čestica. Za probleme kao što su sudari zvijezda, supernove, binarni sustavi, problem nastanka mjeseca, kretanje blizu crne rupe i slične ova je metoda bila dovoljno dobra kako bi bolje razumjeli ponašanje svemira.
Ubrzo je SPH metoda pronašla svoje mjesto u raznim znanstvenim i industrijskim disciplinama, a posebice tamo gdje nije bilo problem pričekati na dovršetak izračuna. Riječ je primjerice o industriji transporta u kojoj se ovom metodom modelira otpor zraka i tekućina (vode u pomorskoj industriji), geografiji i geologiji za modeliranje fenomena na zemlji, kao i u meteorologiji za modeliranje vremenskih pojava. U industriji zabave je ova metoda postala interesantna tek razvojem animiranih filmova i rastom snage osobnih računala. Što se tiče računalnih igara, neke koriste sustav simulacije fizike u stvarnom vremenu PhysX koji podržava i simulaciju fluida upravo metodom SPH. Npr. to su igre: Cryostasis, Crazy Machines 2, Alice: Madness Returns, Batman: Arkham Asylum i Mafia II.
Metoda prikazuje fluid skupom čestica čije se veličine određuju parametrima gustoće i mase. U simulacijama
je uvjet da mase čestica budu uvijek iste kako bi model fizike ispravno funkcionirao. Na slici je prikazano kako
neki fluid opisati česticama.
Čestice međusobno djeluju silama koje ovise o udaljenosti između čestica. Što su čestice dalje, to je njihov utjecaj
slabiji i stoga postoji prag udaljenosti unutar kojeg čestice djeluju jedna na drugu. Utjecaji izvan sfere praga
su maleni i zanemaruju se. Sile kojima čestice međusobno djeluju određuju se iz jednadžbi za gustoću,
tlak i viskoznost, a skaliraju se "izglađenom" udaljenosti između čestica. Udaljenost se izglađuje posebnim
jezgrenim funkcijama koje su osmišljene tako da je pomoću njih lako računati gradijente i laplasijane prisutne
u Navier-Stokesovim jednadžbama fluida. Iz vektora sila računa se akceleracija te se integriraju pomak i brzina.
Vremenski korak integracije je najčešće konstantan i reda veličine 10-3s. Moguće je koristiti i
varijabilni vremenski korak, ali je potrebno paziti na Courant-Friedrichs-Lewy uvjet. Za integraciju je poželjno
koristiti neku metodu drugog ili višeg stupnja kao što je primjerice
Leap-Frog metoda.
Na ovim stranicama dostupan je diplomski rad, prezentacija rada te izvorni i izvršni kod pripadnog projekta.