of 56 /56
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 1236 SIMULACIJA FLUIDA SUSTAVOM ČESTICA Marta Poštenjak Zagreb, lipanj 2016.

SIMULACIJA FLUIDA SUSTAVOM ČESTICA

Embed Size (px)

Text of SIMULACIJA FLUIDA SUSTAVOM ČESTICA

  • SVEUILITE U ZAGREBU

    FAKULTET ELEKTROTEHNIKE I RAUNARSTVA

    DIPLOMSKI RAD br. 1236

    SIMULACIJA FLUIDA SUSTAVOM ESTICA

    Marta Potenjak

    Zagreb, lipanj 2016.

  • Zahvaljujem se svojim roditeljima, teti Alemki, i sestrama.

    Zahvaljujem se i profesorici eljki Mihajlovi na mentorstvu i pomoi tijekom

    studiranja.

  • Sadraj

    Uvod ....................................................................................................................... 1

    1. Osnovna svojstva fluida .................................................................................. 3

    1.1. Tlak .......................................................................................................... 4

    1.2. Gustoa .................................................................................................... 5

    1.3. Viskoznost ................................................................................................ 5

    1.4. Osnovni pristupi razmatanju fluida ........................................................... 7

    1.5. Navier-Stokesove jednadbe ................................................................... 9

    2. Raunalna dinamika fluida ............................................................................ 12

    2.1. Kratka povijest raunalne dinamike fluida .............................................. 12

    2.2. Kratak pregled danas najzastupljenijih metoda ...................................... 13

    2.2.1. Metode zasnovane na reetci (eulerov pristup) .............................. 14

    2.2.2. Metode zasnovane na esticama (Lagrangeov pristup) .................. 15

    2.2.3. Ostale metode ................................................................................. 15

    2.3. Simulacija i animacija fluida .................................................................. 16

    3. Karakteristike OpenGL-a i osnovna struktura koda ....................................... 18

    3.1. OpenGL ................................................................................................. 18

    3.2. Sjenari (engl. Shader) .......................................................................... 19

    3.3. Cjevovod izrade prikaza ......................................................................... 19

    3.3.1. Generiranje podataka ..................................................................... 20

    3.3.2. Sjenar vrhova (engl. Vertex shader) .............................................. 20

    3.3.3. Mozaik (engl. Teselleation) ............................................................. 21

    3.3.4. Geometrijski sjenar ....................................................................... 21

    3.3.5. Izrada prikaza ................................................................................. 22

    3.3.6. Sjenar fragmenata ......................................................................... 22

  • 3.3.7. Iscrtavanje scene ............................................................................ 22

    3.4. Struktura programa ................................................................................ 22

    4. Simulacija gibanja jednostavnim sustavom estica ....................................... 25

    4.1. Ideja programa ....................................................................................... 25

    4.1.1. Sustav estica u kontekstu raunalne grafike ................................. 26

    4.2. Struktura estice i koda .......................................................................... 27

    4.3. Parametri simulacije ............................................................................... 28

    4.4. Prednosti i nedostatci ovakvog pristupa ................................................. 30

    5. Aproksimacijska visinska mapa ..................................................................... 31

    5.1. Implementacija ....................................................................................... 33

    5.2. Dodavanje estica i njihova kolizija ........................................................ 34

    5.3. Prednosti i mane visinskih mapa ............................................................ 35

    6. Metoda zaglaene hidrodinamike estice (SPH) ........................................... 36

    6.1. Osnove SPH .......................................................................................... 36

    6.2. Osnovni algoritam .................................................................................. 37

    6.2.1. Gustoa estice .............................................................................. 38

    6.2.2. Tlak ................................................................................................. 38

    6.2.3. Viskoznost ...................................................................................... 38

    6.3. Odabir kernel funkcije ............................................................................ 39

    6.4. Implementacija rubnih uvjeta ................................................................. 40

    6.5. Ubrzavanje algoritma ............................................................................. 42

    6.6. Problemi i utjecaj parametara ................................................................ 42

    6.7. Simulacije ............................................................................................... 43

    Zakljuak .............................................................................................................. 45

    Literatura .............................................................................................................. 46

    Saetak ................................................................................................................ 47

  • Summary .............................................................................................................. 48

    Privitak ................................................................................................................. 49

  • Popis slika

    Slika 1.1 Sila na jedinicu povrine .......................................................................... 4

    Slika 1.2 Med kao primjer viskoznog fluida (slika preuzeta iz Agricultural Research

    Service) .................................................................................................................. 6

    Slika 1.3 Lagrangeov nain promatranja fluida....................................................... 7

    Slika 1.4 Eulerov nain promatranja fluida ............................................................. 7

    Slika 2.1 Prikaz vektora brzina fluida na reetci ................................................... 14

    Slika 2.2 Prikaz jednog koraka toka (Preuzeto iz [13]) ........................................ 16

    Slika 3.1 Cijevovod izrade prikaza ........................................................................ 19

    Slika 4.1 Fontana (Slikala Samanta Kreti) .......................................................... 25

    Slika 4.2 Prikaz fontane ........................................................................................ 29

    Slika 5.1 Eksplozija simulacije za prevelik parametar priguenja brzine .............. 32

    Slika 5.2 Simulacija za razliite poetne funkcije .................................................. 32

    Slika 5.3 Valovi uzrokovani interakcijom s korisnikom .......................................... 34

    Slika 5.4 Interakcija mape sa sustavom estica .................................................. 35

    Slika 6.1 Kaotino gibanje po ekranu ................................................................... 40

    Slika 6.2 Lijepljenje estica za rubove .................................................................. 41

    Slika 6.3 Prikaz prve simulacije prije i poslije ....................................................... 43

    Slika 6.4 Prikaz druge simulacije prije i poslije ..................................................... 44

  • Uvod

    Upita li se bilo kojeg strunjaka koji se bavi raunalnom grafikom to je to najtee

    simulirati i prikazati na raunalu, svi odgovori mogli bi se svesti na jedan zajedniki

    nazivnik fizikalno temeljena simulacija. Kolizija pramena kose s podlogom,

    turbulentni vrtlog, elastinost pojedine tkanine, gravitacijske sile sustava zvijezda

    samo su neki od primjera. Stoga nije neobino da je i simulacija fluida zauzela

    mjesto pri vrhu ljestvice. Njezina problematika je dvojaka. Prvo, mehanika fluida

    sama po sebi trai veliko razumijevanje i poznavanje osnovnih teorijskih koncepata

    i naela, prepoznavanje i identificiranje razliitih parametara, njihovog odnosa te

    naina na koji oni utjeu na fluid. Potrebno je napraviti dobar model sustava. Tek

    onda moe se razmiljati o prikazivanju navedenoga na raunalu. Kad se to u

    konanici i uspije svesti na matematiki model i implementirati na raunalu, dolazi

    se do drugoga problema. Raunanje je vremenski iznimno skupo i zahtjevno. Ne

    samo da je potrebno napraviti ogroman broj izrauna prije iscrtavanja na ekran

    nego su tekstura i povrina fluida problemi sami za sebe.

    Tema ovoga diplomskoga rada bit e simulacija fluida s naglaskom na simulaciju

    sustavom estica. Simulacija fluida grana je raunalne grafike s ulogom prikazivanja

    fluida na ekranu. Prouit e se osnove simulacije te razliiti pogledi na to. Napraviti

    e se implementacija nekih osnovnih metoda te usporediti dobiveni rezultati.

    Pokuat e se napraviti gradacija pregleda razliitih tehnika poevi od

    najjednostavnije pa do one koja u sebi ukljuuje najvie fizike. Bez poznavanja

    osnovna fluida bilo bi neizvedivo simulirati njihovo ponaanje. Zato e se prvo

    poglavlje pozabaviti fizikalnom pozadinom i osnovnim svojstava fluida. Uslijedit e

    kratka povijest raunalne dinamike fluida (CFD) te par rijei o tome kako se ona

    moe iskoristiti za simulaciju fluida. S obzirom da e sve implementacije biti na

    programskom jeziku C++ uz OpenGL, opisat e se pojedinosti OpenGL-a i osnovna

    struktura programa koja e svoju formu zadrati u svim projektima. Zatim e se

    opisati nekolika razliitih naina promatranja fluida, poevi od najjednostavnijeg ka

    sloenijima. Poseban naglasak dat e se metodama koje fluid promatraju kao

    sustav estica. Prva metoda koja e biti implementirana krajnje je jednostavna

    simulacija fluida esticama koja ne uzima u obzir interakcije meu pojedinim

  • esticama. Zatim e se koritenjem proceduralne animacije i visinskih mapa

    generirati povrina fluida. U zadnjem poglavlju pokuat e se u 2D prostoru

    implementirati metoda koja svoje korijene vue iz CFD-a jednostavni SPH

    simulator. Svi nepoznati pojmovi bit e bolje objanjeni u daljnjem tekstu.

  • 1. Osnovna svojstva fluida

    Veina ljudi pojam fluida asocira s tekuinom. Meutim fluid je puno vie od toga.

    Zrak koji nas okruuje, magma u vulkanima pa ak i zrnca od kojih se sastoje

    Saturnovi prstenovi spadaju u tu kategoriju. Ako pak proirimo kategoriju s tekuine

    na tvari u tekuem i plinovitom agregatnom stanju, kako onda objanjavamo da i

    plastika esto pokazuje svojstva fluida? to je onda fluid zapravo? Fluid je

    supstanca koja se kontinuirano deformira pod djelovanjem smicanja. (McDonough,

    2009) Smicanje je sila koja je paralelna sa smjerom gibanja (toka). Prethodna

    definicija poprilino dobro hvata sr, a to je injenica da je fluid pod djelovanjem sile

    smicanja tee.

    Fluidima se bavi zasebna disciplina fizike mehanika fluida. Njena osnovna podjela

    je na hidromehaniku (kretanje fluida) i hidrostatiku (fluidi u mirovanju). Obje

    discipline svoje korijene seu jo u doba antike Grke i Arhimeda. Postoji nekoliko

    osnovnih zakonitosti koje su uvijek zadovoljene, to su:

    Hipoteza kontinuuma

    Ouvanje mase

    Ouvanje gibanja

    Ouvanje energije

    Hipoteza kontinuuma u kontekstu dinamike fluida znai sljedee Bez obzira koliko

    mali dio volumena fluida promatrali, on zadrava sva makroskopska svojstva fluida

    koja povezujemo s veom koliinom (McDonough, 2009). Objanjene ouvanja

    mase poprilini je trivijalno bez obzira giba li se fluid ili miruje, ukupna masa ostaje

    nepromijenjena. Ouvanje gibanja reformulacija je drugog Newtonovog zakona, dok

    je ouvanje energije posljedica prvog zakona termodinamike. On kae da se

    energija ne moe unititi ili stvoriti iz niega. Moe se samo prenijeti iz jednog oblika

    u drugi.

  • Osnovna svojstva fluida koja e direktno utjecati na njegovo gibanje bit e tlak,

    gustoa i viskoznost. Zbog svoje vanosti svaki e biti promotren u razliitom

    potpoglavlju.

    1.1. Tlak

    Slika 1.1 Sila na jedinicu povrine

    Tlak u fluidu nastaje uslijed njegove vlastite teine ili vanjskih sila, a karakteristino

    za njega je da djeluje uvijek okomito na plohu na kojoj ga se promatra. (Andrei,

    2014) Odgovora sili po jedinici povrine (Slika 1.1).

    =

    Mjerna jedinica za tlak je Pascal (Pa) te odgovara sili od jednog N koja djeluje na

    povrinu 1 2. Tlak je veliina koja se poveava s dubinom fluida jer vii slojevi

    svojom teinom pritiskuju donje slojeve. Takoer, na mjestima iste dubine iznos

    tlaka je jednak. Zamislimo neki tekui fluid koji miruje u posudi. Tlak kojim djeluje na

    dno posude ovisi samo o visini stupca te gustoi tekuine. Nikako ne ovisi o obliku

    posude u koju smo ga stavili ili ukupnoj koliini tekuine u toj posudi. Ova pojava

    naziva se hidrostatski paradoks. Tlak je veliina koja se propagira kroz fluid

    trenutno te djeluje u svim smjerovima jednako. Bilo kakva promjena na jednom kraju

    istodobno e se osjetiti na drugom. Ta zakonitost je osnova rada hidraulike dizalice

    koja koristi malu silu na malu povrinu kako bi podigla objekt vee teine koristei

    veu povrinu.

  • 1.2. Gustoa

    Gustoa materijala svojstvo je neovisno o veliini promatranoga uzorka te se

    fizikalno opisuje kao koeficijent mase i volumena. Ukoliko je taj koeficijent stalan u

    svakom djeliu materijala, nazivamo ga homogenim. Kod nehomogenih materijala

    definicija gustoe se proiruje na promjenu mase po jedinci volumena.

    D =dm

    dV

    Fizikalna veliina za gustou po SI sustavu je

    3 . To je izvedena mjerna jedinica

    koja proizlazi direktno iz formule. Gustoa je svojstvo koje uvelike ovisi o

    temperaturi. Osim kod vode, kod svih materijala opada s porastom temperature.

    Voda je najgua na 4 C. To je klju ivota u vodi za vrijeme zimskih mjeseci. Led

    ja znatno laki od tekue vode pri niskim temperaturama. Kopnene vode se zbog

    toga lede od povrine prema dubini.

    Osim temperature, tlak takoer utjee na gustou fluida. Kod tekuina to nije

    izraeno te je ta vrijednost neznatna. S druge strane, kod plinova tlak igra jako veliku

    ulogu te je poveanje tlaka proporcionalno poveavanju gustoe.

    1.3. Viskoznost

    Viskoznost fluida mjera je kojom se fluid opire deformaciji pri smicanju. To je

    zapravo koeficijent unutarnjeg trenja fluida. Matematiki opis ovoga svojstva je

    koeficijent smicanja i gradijenta brzine.

  • Ova formula odgovara dinamikoj viskoznosti. Postoji jo i kinetika viskoznost. Ona

    opisuje otpor uz gravitaciju i jednaka je koeficijentu dinamike viskoznosti I gustoe

    materijala.

    Uzroci viskoznosti kod plinova i tekuina su razliiti. Kod prvih se javlja zbog

    molekularnih sila, dok kod potonjih difuzijske sile meu slojevima uzrokuju izmjenu

    impulsa. Viskoznost je iskljuivo svojstvo materijala i javlja se samo pri gibanju. to

    je vea, fluid se tee giba i obrnuto. Sada lako moemo zakljuiti da je med puno

    viskozniji od vode koja je pak viskoznija od zraka (Slika 1.1). Nadalje, ona ovisi o

    temperaturi. Kod tekuina je obrnuto proporcionalna porastu temperature. to je

    temperatura vea, molekule se sve vie udaljavaju i manje utjeu jedna na drugu.

    Kod plinova je drukija situacija. Porast temperature uzrokuje sve kaotinije gibanje

    molekula, to rezultira sve eim kolizijama.

    Ukoliko je viskoznost fluida kao koeficijent ve navedenih veliina linearna funkcija,

    takav fluid smatrat emo njutnovski. Njutnovski fluid zadrava svojstva fluida bez

    obzira koliko ga mijeali, trgali ili primjenjivali smicanje. Fluid je nenjutnovski inae.

    Kod takvog moe doi do trganja i pojavljivanja rupa.

    Slika 1.2 Med kao primjer viskoznog fluida (slika preuzeta iz Agricultural Research

    Service)

  • 1.4. Osnovni pristupi razmatanju fluida

    Slika 1.3 Lagrangeov nain promatranja fluida

    Slika 1.4 Eulerov nain promatranja fluida

    U fizikalnom razmatranju fluida dva su osnovna pristupa lagrangeovski i

    eulerovski. Kako bi se bolje razumio pojedini pristup, povui e se analogija s

    restoranom. Zamislimo restoran s konobarima koji posluuju po cijelom restoranu i

    stolovima kao fiksnim tokama. Serviranje hrane moemo promatrati na dva naina.

  • Prvi bi bio da pratimo svakog konobara i gledamo kuda se kree i koje stolove

    obilazi. Jedan konobar e u jednoj veeri obii puno razliitih stolova. Drugi bi bio

    da se fiksiramo na stolove i gledamo koji konobar dolazi do njega. U jednoj veeri

    puno razliitih konobara e doi do stola. Prvi nain odgovarao bi lagrangeovom, a

    drugi eulerovskom pristupu. Sada emo to primijeniti na fluide. Slike 1.3 i 1.4

    predstavljaju fluid. Ukoliko ih promatramo lagranegovski (Slika 1.3) , fokusirat emo

    se na sitne dijelove fluida, tzv. estice i pratiti njihovo kretanje u vremenskom

    kontekstu. Zasebno promatramo svaku plavu tokicu (esticu) sa slike. Svaka

    estica nositelj je svojstva fluida kao to su masa, brzina... Svako takvo svojstvo

    estice oznaava se u vremenskom kontekstu, npr v(t), x(t). Eulerovski pristup

    fiksirat e odreene toke prostora i gledati to se dogaa u njima (Slika 1.4), to

    utjee, to istjee. Na slici 1.4 kvadrat oznaava fiksan prostor koji gledamo, a plave

    tokice su dio fluida koji se u promatranom trenutku tamo zatekao. Svako svojstvo

    oznaavat e se i u vremenskom i u prostornom kontekstu, primjerice v(x,t). Prostor

    se dijeli na imaginarnu reetke i u vremenskom trenutku promatraju se stanja

    pojedinih elija. I jedan i drugi pristup imaju prednosti i mane. Razliite fizikalne

    veliine bolje odgovaraju jednom ili drugom sustavu. Primjerice, kada priamo o

    akceleraciji, puno ju je lake i intuitivnije opisati u lagrangeovom sustavu. To je

    promjena brzine jedine estice po jedinci vremena. Ako pak to pokuamo prenijeti

    u eulerov sustav, formula se znatno komplicira. U jednom vremenskom trenutku t1

    promatranjem odreene elije i estice u njoj. U vremenu t2 te estice vie nisu

    tamo. One se sada nalaze na novoj poziciji koju takoer moramo uzeti u obzir pri

    raunanju. Druge veliine poput viskoznosti, lake je opisati u eulerovom sustavu.

    Iz ovoga proizlazi jedan od fundamentalnih problema dinamike fluida razliiti

    parametri bolje odgovaraju jednoj ili drugoj interpretaciji, ali veinom svi moraju biti

    uzeti u obzir. Moramo se odluiti za jednu, ali koju god odabrali, uvijek e se morati

    rtvovati neto.

    Ipak postoji nain da se ova dva pristupa poveu, a to je materijalna derivacija.

    Materijalna derivacija izraava brzinu promjene fizikalnog svojstva estice fluida, tj.

    promjenu koju bi osjetio promatra kad bi se gibao zajedno sa esticom (avar,

    Virag, & Dijan, 2014). Inicijalno se materijalna derivacija povezuje s lagrangeovim

    pristupom. Njenim zapisivanjem u eulerovom dobiva se direktna povezanost

    promjene svojstava eulerovom. Time e se primjerice bez problema moi zapisati

  • akceleracija u eulerovom sustavu koju smo ve istaknuli kao kompliciranu

    komponentu.

    Lijeva strana jednadbe je lagrangeova dok je prvi izraz desne strane Eulerova

    interpretacija. Desna strana kae da se promjena svojstva moe dogaati iz dva

    razloga. Ili se svojstvo mijenja u vremenu (prvi lan) ili je estica otila na mjesto

    gdje je drukija vrijednost toga svojstva (drugi lan). Sada se konano moe i

    raspisati izraz za akceleraciju u Eulerovom sustavu. U gornjoj formuli svojstvo F

    zamijeniti e se sa brzinom, koja se u mehanici fluida standardno oznaava sa

    slovom u, te se dobiva

    U trodimenzionalnom prostoru brzina u sastoji se od triju komponenti: x, y, i z, od

    kojih je svaka usmjerena u odgovarajuem smjeru pripadajue koordinatne osi.

    Simbol oznaava del operator i predstavlja parcijalnu derivaciju. Raspisivanjem

    parcijalne derivacije dolazi se do sljedeega oblika zapisa

    1.5. Navier-Stokesove jednadbe

    Do poetka 19. stoljea za opis toka fluida koristila se Eulerova jednadba.

    Claude-Louis Navier, francuski fiziar s poetka 19. stoljea, uveo je viskoznost u

    tu jednadbu. Otprilike 100 godina kasnije irski fiziar Gabriel Stokes redefinirao je

    te jednadbe koje danas znamo pod imenom Navier-Stokesove jednadbe, a ine

    fundamentalnu osnovu toka fluida. U kontekstu ovoga rada promatrat e se samo

    jednadbe koje se odnose na nestlaive fluide. Nestlaivi fluid je onaj iji je volumen

    postojan bez obzira na tlak i temperaturu. U realnosti takav fluid ne postoji. Kada bi

  • voda bila takav fluid, nikad ne bismo mogli uti pod vodom. Ipak, tekuine se

    pribliavaju onome to bismo nazvali nestlaivim fluidom.

    Jednadbe svoje podrijetlo vuku iz drugog Newtonovog zakona F = m* , ali dodaju

    i dodatne parametre kao to je viskoznost. Prva jednadba odnosi se na ouvanje

    mase i kae da se prenoenjem mase vektorom brzine ukupna masa fluida ne moe

    promijeniti.

    Druga jednadba glasi

    Na prvi pogled, jednadba se ini kompliciranom. Zapravo se ve upoznalo s njenim

    dijelovima u prethodnim poglavljima. Desna strana oznaava izraz za akceleraciju

    u Eulerovom pogledu na fluide. Ova jednadba govori emu je zapravo jednaka

    akceleracija, odnosno promjena brzine. Lijeva strana se sastoji od triju komponenti.

    Prva oznaava gravitaciju. Ukoliko su u sustav ukljuene neke dodatne sile koje

    djeluju na fluid, one e se takoer ukljuiti i ovaj dio po formuli

    Drugi dio odnosi se na tlak kojim estice fluida djeluju jedna na drugu. Oko estice

    javljaju se razliita polja tlakova koja nisu istoga iznosa. estica se onda giba iz

    smjera viega prema smjeru niega tlaka, suprotno od gradijenta vektora tlaka.

    Zadnji dio desne strane odnosi se na viskoznost koju smo ve definirali kao otpor

    fluida prema teenju. to je vea viskoznost, dio fluida koji se prvi poinje gibati jae

    e za sobom povlaiti ostatak fluida jer e se fluid vie opirati toku. Viskoznost je

    usko povezana s brzinom te se nikad ne oituje, osim pri gibanju. To objanjava

    komponentu brzine u jednadbi.

  • Sada kada su poznate sve komponente jednadbe, moemo je izrei rijeima. Fluid

    se giba pod utjecajem gravitacijske sile, vanjskih sila koje djeluju na sustav, razlike

    tlakova i viskoznosti kao svojstva fluida.

    Potrebno je definirati rubne uvjete Navier-Stokesovih jednadbi. Fluid moe imati

    dvije granice podlogu i slobodnu povrinu. Ako se nalazi uz podlogu brzina toga

    dijela fluida postavlja se na brzinu te podloge. Ako se podloga giba, daje se ta

    brzina, ako se ne giba stavlja se na nulu. Slobodna povrina oznaava granicu s

    drugim fluidom kao to je zrak ili neka druga fluidna supstanca. U tom sluaju za

    drugi fluid treba definirati gustou i brzinu granice.

  • 2. Raunalna dinamika fluida

    2.1. Kratka povijest raunalne dinamike fluida

    Uz danu godinju koliinu padalina, kako se moraju oblikovati odvodi kako bi

    uklonili pravu koliinu vode? (Ashford, 1985) jedno je od najvanijih pitanja povijesti

    raunalne dinamike fluida ( u daljnjem tekstu CFD). To je pitanje koje je postavljeno

    poetkom 20. stoljea mladom Lewisu Fry Richardsonu, eklektinom engleskom

    znanstveniku iroka polja interesa. Moda je ba to bila prva domina u domino

    efektu otkria koji su CFD doveli do dananje razine. Ono to je on tada uio bilo je

    revolucionarno do te razine da su mnoge ozbiljne ustanove ideju odbacile kao

    previe aproksimativnu i smijenu. Richardson je napravio slijedee; imao je

    Laplaceovu jednadbu, ali domena na kojoj je morao provesti izraun bila je

    presloena. Njegova ideja bila je upotreba aproksimativnih jednadbi na samo

    malenim djeliima toka, gdje bi onda mogao koristiti osnovne matematike

    zakonitosti. Odlika koja ga je istakla bila je promatranje problema koji se do tada

    nisu smatrali matematikima u matematikome svjetlu. Njegov doprinos nije se

    ograniio na samo jedno polje znanosti. Ostavio je neizbrisiv trag i u meteorologiji

    i psihologiji. Takoer, poznat je po velikom broju eksperimenata. Najpoznatiji je,

    zasigurno, pokuaj da se promatranjem vremenskih uvjeta jednoga dana predvidi

    vremenska prognoza za sutranji dan. Malo je rei da je procjena bila pogrena.

    Meutim, danas je pokazano da bi se, primjenom metoda zaglaivanja na izraun,

    tadanji izraun pokazao tonim.

    Slijedee veliki korak donio je trio znanstvenika Courant, Friedrichs i Levy. Oni su

    tridesetih godina prouavali linearne parcijalne diferencijalne jednadbe. Pokazali

    su nuan uvjet koji mora biti zadovoljen da bi se takva jednadba s diferencijala

    mogla svesti na razliku. Takav se postupak naziva metoda konane razlike.

    () = ( + ) ()

  • Uvjet koji mora biti zadovoljen kako bi se ta metoda mogla primijeniti naziva se CFL

    uvjet po inicijalima znanstvenika koji su ga otkrili.

    ezdesetih godina znanstvenici Harlow i Welch dugotrajnim radom doli su do

    metode Marker i elija (MAC). Zasnovana na Euerovoj reetci, MAC metoda je

    tehnika konanih razlika za istraivanje dinamike nestlaivih viskoznih fluida

    (McKee, i dr., 2007). U osnovi algoritma bile su lagrangeove estice koje su putovale

    s poljima brzine. One su oznaavala rubove granica fluida i fluida ili fluida i zraka.

    Ukoliko je neka elija sadravala takvu esticu, bila je oznaena kao rub.

    Metoda konanih volumena javila se krajem stoljea. Prostor se diskretizirao na

    malene volumene. U centru svakog takvog volumena bio bi nositelj podataka za taj

    volumen. Podjelom prostora mogue je diferencijalne jednadbe svesti na

    algebarske.

    2.2. Kratak pregled danas najzastupljenijih metoda

    Danas najzastupljenije metode se slino kao i kod mehanike fluida dijele na dvije

    osnovne one zasnovane na eulerovom i lagrangianovom pogledu na fluide. Obje

    imaju svoje prednosti i mane. Eulerov pogled esto daje sporije i tonije rezultate,

    ali je loiji kod prikazivanja turbulentnijih tokova kao to su zapljuskivanje ili

    eksplozija. Lagrangeov pristup je esto bri, ali generalno manje precizan te ostavlja

    problem prikazivanja povrine. Ukoliko bismo promatrali odreen broj fiksnih toaka

    u eulerovom sustava te broj estica u lagrangeovom, vea rezolucija bi se dobila u

    prvom. U svojoj osnovi i jedna i druga metoda sadre rjeavanje diferencijalne

    Navier-Stokesove jednadbe.

  • 2.2.1. Metode zasnovane na reetci (eulerov pristup)

    Slika 2.1 Prikaz vektora brzina fluida na reetci

    Eulerovske metode, slino kao i eulereov pristup promatranju fluida, diskretiziraju

    domenu na tzv. reetku te promatraju to se dogaa u pojedinim elijama. Na takvoj

    domeni za dovoljno malu veliinu elije mogue je diferencijalne jednadbe svesti

    na razliku. Svaka elija pamti za sebe podatke o dijelu fluida koji prolazi kroz nju (

    gustoa, tlak, brzina). Mogue je sve podatke pamtiti u istu reetku, ali puno bolji

    pristup je rasporeena reetka. Reetka se zove rasporeena zato to pamti

    razliite veliine na razliitim lokacijama. (Tech, Sandu, & Braley) Na poetku

    algoritam inicijalizira se retka te se fluid rasporedi po njoj. U svakom prolazu

    algoritma izraunavaju se nove vrijednosti svojstava pojedine elije u ovisnosti o

    brzini fluida i toj eliji i o prethodnim vrijednostima svojstava (Slika 2.1). Osnova

    svakog koraka je advekcija prenoenje svojstava vektorom brzine. Opis advekcije

    je slijedei: Ako je Q neka koliina na simulacijskoj reetci, kako e se Q promijeniti

    kasnije. (Tech, Sandu, & Braley) Postoji vie naina izrauna, od kojih nisu svi

    jednako stabilni.

    Ovaj pristup ima svojih prednosti i mana. Ukupna masa nije uvijek ouvana.

    Potrebno je provoditi izraune te ukljuiti u reetku svaki dio prostora u kojem se

    fluid moe nai tijekom simulacije. Eulerove metode su stoga znatno sporije.

    Prednost im je preciznost simulacije te puno bolje opisivanje povrine.

  • 2.2.2. Metode zasnovane na esticama (Lagrangeov pristup)

    Metode zasnovane na esticama temelje se na lagrangevom pogledu na fluide.

    Fluid je predstavljen skupom estica te se raunaju interakcije meu njima.

    Osnovna prednost ovoga pristupa je brzina. Mogue je postii dobre rezultate u

    realnom vremenu te je pogodna za raunalne igrice. Takoer, ouvanje mase je

    trivijalno jer konstantno baratamo s istim brojem estica koje imaju jednaku masu

    cijelo vrijeme. Predstavnik ove skupine metoda, koji je danas najzastupljeniji, je

    metoda SPH ( zaglaena hidrodinamika estica), o kojoj e biti vie rijei u zadnjem

    poglavlju. Glavni nedostatak je problem prikazivanja povrine za koji je potrebno

    upotrijebiti neke dodatne tehnike. Jedna od najpoznatijih je tehnika marirajuih

    kocki (engl. Marching cubes algorithm). Njegovi kreatori su Cline i Lorensen. Do

    2005. godine bio je zatien patentom, ali sada se smije slobodno koristiti. Algoritam

    za 8 susjednih toaka rauna poligon koji bi najbolje predstavio povrinu unutar te

    kocke u ovisnosti i poloajima estica.

    2.2.3. Ostale metode

    Zadnjih godina osim navedenih javljaju se i novi pristupi. Najpoznatiji je boltzmanova

    latica (eng. Lattice Boltzmann method). Za razliku od prethodnih, metoda ne

    rjeava direktno Navier-Stokesove jednadbe te se ne bavi makroskopskim

    svojstvima fluida. Fluid predstavlja skupom estica te rauna odnose meu njima

    na puno nioj razini - molekularnoj. U konanici, ono to je poznatije kao

    makroskopsko svojstvo ustvari je samo rezultat ili manifestacija razliitih procesa na

    nioj razini. estice svojim sudarima izmjenjuju energiju i gibanje. Prostor se dijeli u

    elije te se za svaku definiraju dva svojstva gustoa i brzina. Jedna iteracija

    algoritma odvija se u dva koraka:

    Kolizija

    Tok

    U koraku kolizije za pojedinu eliju rauna se gustoa i brzina. Ta brzina koristi se

    u koraku toka (Slika 2.2) za pomicanje estica fluida u drugu eliju. Ovisno o strukturi

    latice mogue je ogranieno gibanje iz jedne elije u drugu. Postoje tono

    predefinirani smjerovi kojima se smije ii. Prednost ove metode je mogunost

  • paralelizacije kod programske implementacije. Relativno je brza te puno bolje barata

    s rubnim uvjetima.

    Slika 2.2 Prikaz jednog koraka toka (Preuzeto iz [13])

    2.3. Simulacija i animacija fluida

    Postoji specijalna grana raunalne grafike zaduene za realistinu animaciju fluida.

    Iako ima velik broj dodirnih toaka sa CFD-om, ipak se razlikuje u nekoliko osnovnih

    stvari. Dok je kod CFD-a naglasak na realistinoj simulaciji toka i to realnijem

    ponaanju fluida pri zadanim uvjetima, kod animacije je naglasak na tome da neto

    izgleda kao fluid. Nije nuno potrebno znanje o svim procesima i jednadbama koje

    se dogaaju te e se puno manje kompleksni modeli pokazati zadovoljavajuima.

    Dvije glavne industrije koje koriste simulaciju fluida su filmska industrija i industrija

    razvoja igara.

    Poetci ove industrije najvie duguju Nicku Fosteru i Dimitrisu Metaxasu. Do

    njihovog preokreta fluid se na raunalu simulirao bez raunanja formula statike i

    dinamike fluida. Oni su 1996. uspjeli vizualizirati fluid u trodimenzionalnome

    prostoru na raunalu koristei Navier-Stokesove jednadbe. Bio je to poetak nove

    ere raunalne grafike. Prvi koji je uspio napraviti simulaciju fluida koja je bila stabilna

    u svim uvjetima, a bila je relativno brza bio je Joe Stam. Poelo se najprije sa

    simulacijama relativno mirnih povrina vode. Danas je simulacija fluida vizualno

    toliko dobro razvijena da je teko odrediti to je pravi fluid, a to raunalno

    izraunato i generirano. Naravno, primat ima izgled. Njegova realnost postie se

  • upotrebom taman dovoljno fizikalnih zakona da bi izgledalo realno, ali ne mora

    nuno biti sto posto tono. Takoer, izgled se postie i nautrb vremena kojeg u

    filmskoj industriji ima dovoljno.

  • 3. Karakteristike OpenGL-a i osnovna struktura

    koda

    3.1. OpenGL

    OpenGL grafiki sustav je programsko suelje grafikom sklopovlju (Shrainer,

    Sellers, Kessenich, & Licea-Kane). Prva verzija razvijena je 1992. kao nastavak

    projekta IrisGL. Od tada je postao imperativ raunalne grafike i dio koji se vrti ispod

    haube u mnogobrojnim pogonima za grafiku simulaciju i izradu igara. U poetku

    je bio dosta ogranien, na dosta stvari se nije moglo utjecati jer tadanje grafike

    kartice nisu bile programirljive kao to su danas. Kako se sklopovska oprema

    mijenjala, razliitim ekstenzijama OpenGL moglo se pristupiti do tada

    programirljivim dijelovima hardvera. Meutim, od 2007 i OpenGL verzije 2.0 fiksni

    cjevovod je maknut te je OpenGL omoguio vlastito programiranje sklopovskih

    dijelova. Trenutno aktivna verzija na tritu je 4.5, a putena je 11. 8. 2014.

    OpenGL ima klijent-server arhitekturu. Korisnik daje naredbe koje se zatim

    izvravaju tono onim redoslijedom kojim su zadane. OpenGL barata samo s

    najjednostavnijim tipovima podataka vrhovima (engl. verteksima), linijama i

    trokutima. Verteks je toka u homogenom 4D prostoru koja oznaava sjecite dviju

    linija ili rub jedne. Linija u matematikom smislu odgovara onome to asociramo s

    duinom kao najkraom udaljenosti dviju toaka. Svaki sloeniji objekt prikazuje se

    kao kompozicija ovih primitiva.

    OpenGL ne ovisi o platformi i stoga ima ogranien skup mogunosti kad je rije o

    interakciji s korisnikom. Iz tog razloga razvijene su dodatne biblioteke. GLEW

    (OpenGL Extension Wrapper) nadopunjuje OpenGL s funkcionalnostima koje su

    specifine za pojedinu platformu. GLUT i GLFW imaju slinu funkcionalnost. One

    nadoknauju odsustvo sposobnosti za interakciju s korisnikom. Obrauju ulazno

    izlazne jedinice, inicijaliziraju kontekst, stvaraju prozor.

  • 3.2. Sjenari (engl. Shader)

    Laika definicija sjenara bi bila program koji govori raunalu kako da crta neto na

    specifian i unikatan nain. (JiJi) Postoji posebna kategorija jezika koji su raeni za

    sjenare. Osnovna podjela je na one koje se prevode prije ili za vrijeme izvoenja

    glavnog programa. U OpenGL-u jezik za shadere je GSLS (OpenGL Shading

    Language). To je visokoproceduralni jezik temeljen na C-u. Prevodi se za vrijeme

    izvoenja. Time se omoguuje interakcija s korisnikom. Postoji vie vrsta sjenara i

    svaki ima svoju funkciju u cjevovodu izrade prikaza. Njihove specifine funkcije

    usklaene su s funkcijama programirjlivog dijela GPU-a.

    3.3. Cjevovod izrade prikaza

    Slika 3.1 Cijevovod izrade prikaza

    Cjevovod izrade prikaza (Slika 3.1) napravljen je tako da odgovara redoslijedu

    izvoenja GPU-a u svrhu postizanja maksimalnog ubrzanja. Glavna prednost

    ovakvog pristupa je slanje struja podataka. im se jedan podatak obradi u jednoj

  • fazi, automatski se alje u drugu. Pritom ga u prethodnoj fazi zamjenjuje novi

    podatak.

    3.3.1. Generiranje podataka

    Sve podatke koji se alju na obradu i iscrtavanje potrebno je uitati u posebnu

    strukturu podataka buffer objekt (engl.). Pozivom funkcije glGenBuffer() stvara

    se jedan takav objekt, ali tek poziv glBindBuffer alocira memoriju i pridjeljuje stanje

    objektu.

    3.3.2. Sjenar vrhova (engl. Vertex shader)

    Vertex shader obavezna je faza koja kao ulaz prima jedan po jedan verteks toku

    u homogenom 4D prostoru. Kao izlaz mora dati takoer jednu vrijednost, odnosno

    onoliko vrhova koliko primi toliko e ih i poslati dalje. Jedan sjenar vrhova za svaki

    isti ulaz daje i identian izlaz. Stoga, on ima svoju priuvnu memoriju u koju

    privremeno pamti parove ulaza i izlaza tako da ako mu se ponovno pojavi neki ulaz

    za koji on ve ima izraunatu vrijednost samo e je proslijediti dalje.

    Zadatak sjenara vrhova je pretvoriti koordinate objekta u koordinate svijeta. to to

    zapravo znai? Zamislimo 3D toku u prostoru koja se nalazi na koordinati (3,0,1).

    Ako to elimo iscrtat na ekranu javlja se nekoliko problema Za poetak, u odnosu

    na to se mjeri 3, 0 i 1? Gdje je ishodite koordinatnog sustava? U kojem se smjeru

    nalazi os x. Postaje jasno da je potrebno definirati neka pravila kojima e se

    jednoznano odrediti iscrtavanje elementa na ekran. Definirat e se tri matrice ijim

    mnoenjem s koordinatama objekta dobivamo takvu transformaciju. Prva matrica je

    matrica modela. Svaki model ima svoj lokalni koordinatni sustav u kojem se nalazi.

    Njega je potrebno prebaciti u globalni koordinatni sustav svijeta u kojem se nalazi.

    Slijedea je matrica pogleda. Ona definira nain na koji se globalni koordinatni

    iscrtavan na sceni. Odreena je trima vektorima

    Oite gdje se nalazi promatra

    Gledite gdje se nalazi toka u koju je usmjeren pogled

    View up vektor- gdje se nalazi gore

  • Projekcijska matrica definira nain iscrtavanja. Postoje dva osnovna naina, a to su

    ortografski i perspektivni. Ako zamislimo snop paralelnih linija kod ortografske

    projekcije oni uvijek ostaju paralelni dok se kod projekcijske u daljini spajaju. Glavna

    mana ortografske projekcije je odsustvo dubine. Stoga realnom svijetu puno vie

    odgovara projekcijska matrica. Ove matrice najbolje je ujediniti u jednu mnoenjem

    prije slanja sjenaru radi jednostavnosti i smanjenja broja operacija. Redoslijed

    mnoenja je matrica modela, pogleda pa projekcije. Svaki vrh e se u sjenaru

    pomnoiti s tom matricom.

    3.3.3. Mozaik (engl. Teselleation)

    U ovoj fazi dijelovi mogua je podjela ulaznih podataka na manje dijelove.??? Ono

    to se time moe postii jest tzv. Razina detalja (eng. Level of Details). to je

    promatra blie objektu, kompleksnost i razina detalja se poveava, vrijedi i

    obrnuto. To je analogno promatranju objekata u realnom svijetu gdje se razina

    detalja koje primjeujemo proporcionalno smanjuje s poveavanjem udaljenosti.

    Ovaj sjenar nije obavezni dio cjevovoda. Odvija se u dvije proizvoljne faze koje su

    povezane jednom fiksnom fazom. Prva faza je TCS (engl. Tesselation Control

    Shader). Tu se postavljaju parametri postupka. U srednjoj (fiksnoj) fazi se na

    temelju tih parametera primitiv dijeli na manje. U zadnjoj se fazi generiraju

    vrijednosti generiranih verteksa. Postoji posebna vrsta primitiva s kojima barata ovaj

    sjenar, a to su tzv. zakrpe (engl. patches).

    3.3.4. Geometrijski sjenar

    Geometrijski sjenar nije obavezni dio cjevovoda. Kao ulaz prima jedan primitiv dok

    mu izlaz moe biti nula ili vie njih. Jedino je u ovoj fazi mogue generirati nove

    primitive ili odbaciti neke. Moe se koristiti za veu razinu detalja, ali to mu nije

    primarna svrha te ve postoji sjenar s tim zadatkom. Geometrijski sjenar najee

    se koristi za renderiranje u razliitim slojevima.

  • 3.3.5. Izrada prikaza

    Renderiranje je proces kojim se 3D objekt preslikava na 2D povrinu. Moe se raditi

    na vie naina. U OpenGL provodi se rasterizacijom. Rasterizacija obuhvaa dva

    koraka. U prvom se za 3D primitiv odreuje gdje e ga se na ekranu tono smjestiti.

    Drugi korak pikselu na ekranu na kojem se iscrtava dio tog objekta pridruuje

    odgovarajuu boju.

    3.3.6. Sjenar fragmenata

    Kao to je sjenar vrhova baratao s vrhovima, tako sjenar fragmenata barata s

    fragmentima. Fragment je konani produkt rasterizacije. Sjenar na ulaz prima

    jedan fragment te mu pridruuje boju i dubinu. U ovoj se fazi radi i preslikavanje

    teksture.

    3.3.7. Iscrtavanje scene

    Za iscrtavanje scene moe se koristit jednostruki ili dvostruki spremnik. Kad se

    koristi jednostruki spremnik onda se i iscrtavanje scene i prikaz odvija u jednom

    spremniku. Moe doi do usporenog osvjeavanja ekrana ili kombinacije slike kojoj

    dio pripada prethodnoj fazi iscrtavanja, a dio slijedeoj. Puno bolja alternativa je

    dvostruki spremnik. U jedan spremnik se iscrtava scena, a drugi se koristi za prikaz.

    Nakon toga funkcionalnosti ta dva spremnika se mijenjaju. U drugom e se iscrtavati

    scena dok e se prvi koristiti za prikaz.

    3.4. Struktura programa

    Struktura glavnoga dijela programa svih navedenih implementaciji bit e ista te e

    se stoga opisati samo jednom.

    Pseudokod:

    Inicijaliziraj_GLFW()

    Inicijaliziraj glew()

    Kreiraj_Porozor()

  • Generiraj_potrebne_objekte();

    dok (ne_treba_zatvorit_prozor)

    ako je potrebno

    generiraj nove objekte()

    obnovi_izracune()

    prikaziScenu()

    oslobodi memoriju

    Na poetku programa potrebno je izvriti potrebne inicijalizacije i stvoriti prozor.

    Nakon toga generiraju se poetni objekti i uvjeti. Program ulazi u petlju koja se

    izvrava sve dok korisnik ne zatvori prozor. U jednom koraku petlje obavljaju se

    potrebni izrauni fizikalne simulacije te se ponovno iscrtava scena.

    Za sve trodimenzionalne prikaze potrebno je bilo napraviti odgovarajue sjenare

    kako bi se objekt mogao smjestiti na scenu. U sklopu ovog rada napravljeni su samo

    sjenar vrhova i sjenar fragmenta. Napisana je posebna klasa koja barata s njima.

    U toj klasi uitavaju se sjenari, kompajliraju i povezuju sa programom. U glavnom

    programu definiraju se vektori modela, pogleda i vektor koji oznaava gdje se na

    sceni nalazi gore. Korisnikim tipkama se moe upravljati pogledom, stoga je nuno

    definirati ih u glavnom programu. Na temelju njih pravi se matrica pogleda. Matrica

    modela objektu samo dodaje 4 koordinatu. Za projekciju odabrana je perspektivna

    matrice jer daje realniju sliku. Matrice su pomnoene u glavnom programu te se daju

    na ulaz sjenara vrhova. U njemu se svaki verteks mnoi sa tom matricom. Zadatak

    sjenara fragmenata je pridruivanje boje. esticama se pridruuje plava boja jer

    se simulira voda. Jedan fragment dobiva 4 vrijednosti boja (RGBA). Prva tri

    oznauju crvenu, zelenu i plavu komponentu. Slovo A oznauje alfa kanal i koristi

    se da za davanje prozirnosti.

    Svi programi pisani su u C++ iskljuivo zbog brzine izvoenja. C++ je daleko najbri

    objektno orijentirani jezik. Kao razvojno okruenje koriten je Microsoft Visual

    Studio 2015. On u sebi ima mogunost ugrade paketa NupenGL koji dolazi sa

    slijedeim bibliotekama:

  • Freeglut

    Glew

    Glfw

    Od navedenih koritene su glew i glfw. Za laki rad s matricama i vektorima

    koritena je dodatna biblioteka glm (OpenGL Mathematics), matematika biblioteka

    pisana za C++ i OpenGl. Koritena verzija OpenGL-a je 3.1. To je posljednja verzija

    koju podrava Intelova grafika kartica na kojoj se se vrtjele simulacije.

  • 4. Simulacija gibanja jednostavnim sustavom

    estica

    4.1. Ideja programa

    Slika 4.1 Fontana (Slikala Samanta Kreti)

    Pogledajmo primjer vodoskoka iz kojega voda tee dijagonalno prema gore (Slika

    4.1). Izgledom podsjea na ono to se u fizici naziva kosi hitac sloeno gibanje

    koje se sastoji od jednoliko ubrzanog i jednolikog gibanja po pravcu u razliitim

    smjerovima. to bi se dogodilo ako bi se voda zamijenila pijeskom ili nekim drugim

    skupom krute tvari malog volumena i velike brojnosti. Primjeujemo da bi gibanje

    ostalo vrlo slino. Ukoliko onda elimo simulirati neko takvo gibanje je li zbilja nuno

    raunati povrinsku napetost, tlak vode i viskoznost ili je pak mogue primijeniti

    pravila koja bi primijenili i na kosi hitac? Odgovor je prvo, nije nuno raunati.

    Mogue je postii zadovoljavajuu aproksimativnu simulaciju tako da na ekranu

  • prikaemo malene kapljice vode koje se gibaju pod utjecajem gravitacijske sile. Ne

    mora tu nuno biti rije o kosom hitcu, moe se primijeniti bilo kakvo sloeno gibanje

    ovisno zadatku simulacije. Prva i najjednostavnija implementacija napravljena u

    okviru diplomskog rada je simulacija jednog takvog vodoskoka. Fluid e biti

    dekomponiran na malene estice i na njega e se primijeniti formule iz dinamike

    krutih tijela.

    4.1.1. Sustav estica u kontekstu raunalne grafike

    Postoji skup objekata koji za razliku od tipinih krutih tijela nema jasno definiranu

    povrinu, volumen ili tono zadano karakteristino ponaanje. U takve objekte mogli

    bi ubrojiti padaline, vatromet, eksploziju. Sama za sebe instanca takvog objekta

    nema veliko znaenje, tek u zajednici sa ostalima dobiva smisao i cijela kompozicija

    neto predstavlja. William Reeves je 1983. godine objavio rad Sustav estica

    Tehnika za modeliranje klase nejasnih objekata. Uveo je pojam estice kao jedne

    instance takvog objekta i sustava estica kao spomenute kompozicije. Iako je

    navedeni rad prvi sustavni opis jednog takvog sustava, on se bez imena ve prije

    pojavljivao u industriji igara i filmova. Rani sustavi estica nisu podrazumijevali

    meusobnu interakciju estica, ali dananji se koriste i za to. Prema Reeveseu1

    objekti koje emo predstavit esticama za njega imaju nekoliko osnovnih svojstava.

    Nisu predstavljeni skupom poligona te je njihova putanja esto poprilino sloena.

    estice imaju sposobnost tzv. raanja i umiranja odnosno kreiranja i unitavanja.

    To sustav estica ini dinamikim sustavom kojem se mijenja broj lanova.

    Razdoblje u kojem postoji jedan objekt estice naziva se njezinim ivotnim ciklusom

    . Sastoji se od triju osnovnih faza

    Generiranje estice

    ivot

    Umiranje estice

    Generiranje estice i njezin ivot temelji se na stohastikim procesima. Dio

    svojstava odabire se sluajnim generiranjem brojeva to uvelike olakava posao

    1 Za vie detalja o navedenoj tematici vidi (Reeves, 1983)

  • programerima. Generiranje estica moe se obaviti jednom na poetku ili vie puta

    tijekom izvoenja algoritma. Kod generiranja estici daju se njezina osnovna

    svojstva, a to su:

    Poetni poloaj

    Iznos i vektor smjera brzine

    Vizualna svojstva kao to su boja, veliina i oblik

    ivotni vijek

    estica tijekom svojega ivota mijenja poloaj u ovisnosti u o vektoru brzine.

    Prilikom svake iteracije algoritma ivot joj se smanjuje za jedan. Umrle estice briu

    se iz memorije. Kada bi se konstantno generirale nove estice bez prethodnog

    brisanja starih, oigledno je da bismo mogli ostati bez resursa u memoriji. Dobro je

    stoga definirati neke dodatne uvjete u kojim nam estica vie nee biti zanimljiva.

    Jedan od takvih moe biti da se makla s vidljivog dijela scene ili joj se veliina toliko

    smanjila da je vie uope ne vidimo. U takvim sluajevima bespotrebno je ekati da

    joj se preostali ivotni vijek smanji na nulu da bismo je pobrisali.

    Nuno je odrediti nain na koji e se estice iscrtavati na ekran. Najjednostavniji

    pristup je iscrtavanje osnovnog primitiva - verteksa (toke). Moe se prikazati i

    poligonom s teksturom. Tada je potrebno prilagoditi rotaciju poligona tako da je

    normala ravnine usmjerena prema promatrau. Takvom poligonu mogue je

    pridruiti i teksturu.

    4.2. Struktura estice i koda

    Osnovni pseudokod algoritma odgovara prethodno spomenutom. Ono to se

    posebno istie je struktura estice koja predstavlja maleni dio volumena fluida.

    Modelirana je zasebnom klasom i ima sljedea svojstva koja odgovaraju osnovnim

    svojstvima estice navedenim u prethodnom potpoglavlju:

    Pozicija u prostoru (r)

    Brzina (v)

  • Veliina

    ivotni vijek

    Varijabla koja govori ivi li estica vjeno

    Pozicija i brzina predstavljene su 3D vektorom. Na poetku programa inicijalizira se

    poetna vrijednost pozicije i brzine svake estice. U svakom koraku glavne petlje

    generiraju se nove estice te se zatim raunaju nove vrijednosti starih. Nova

    vrijednost vektora pozicije i brzine za svaku pojedinu esticu rauna se na sljedei

    nain

    ( t + ) = (t) +

    ( t + ) = (t) + (t + ) * ;

    Akceleracija e iskljuivo biti pod utjecajem sile tee koja djeluje negativno od

    smjera osi y. U svakom vremenskom koraku vrijednosti brzina promijenit e se

    na nain koji je prikazan slijedeim formulama.

    = = + 0 =

    = =

    = = + 0 =

    Nakon to su izraunate nove pozicije, one se spremaju u polje koje e se poslati

    spremniku za iscrtavanje. Nakon to se sve nacrta, sve estice koje su pale ispod 0

    po os y briu se. Stoga, u poetku broj estica raste, no nakon nekog vremena se

    stabilizira. Otprilike jednak broj estica se generira i izbrie u jednom vremenskom

    koraku .

    4.3. Parametri simulacije

    Ovaj algoritam upotrijebiti e se za simulaciju fontane u dva sloja pri emu jedan ide

    vie u visinu, dok se drugi prua vie u irinu. Postoji nekoliko osnovnih kontrolnih

    parametra

    Uestalost generiranja estica

  • Broj novonastalih estica po jednom generiranju

    Veliina vremenskog koraka

    Odreivanje ovih parametara bilo je eksperimentalno. Ne postoji raunski nain za

    odrediti sve parametre jer dosta toga ovisi i o jaini grafike kartice i radnoj memoriji

    kompjutora. Kao dobar vremenski razmak pokazao se 0.01. Dovoljno je malen da

    simulacija ne eksplodira, a opet ne previe da bi znatno usporio. Svako 4 koraka

    glavne petlje generira se nova populacija veliine 80, od ega 2/3 idu u donji, a 1/3

    u gornji sloj fontane. Sve estice poinju gibanje u ishoditu O(0,0,0), ali svaka

    dobiva vektor brzine u razliitom smjeru. Orijentacija u odnosu na osi x i z odreuje

    se stohastiki. Apsolutna vrijednost vektora brzine razliitih estica istog sloja

    relativno je slina uz male varijance kako bi se izbjegao artificijelan izgled simulacije.

    Nije odreena apsolutna vrijednost ivotnoga vijeka jedne estice. esticu emo

    proglasiti mrtvom ukoliko nam vie nije vidljiva, a to se dogaa kad vrijednost y

    komponente padne ispod 0. Smatra se da je tada ispod razine vode u fontani te je

    ne moemo uoiti. Na slici 4.2 moe se vidjeti konaan produkt implementacije.

    Slika 4.2 Prikaz fontane

  • 4.4. Prednosti i nedostatci ovakvog pristupa

    Osnovna prednost ovakvog promatranja jest brzina kojom se odvijaju izrauni, pa

    samim time i cijela simulacija. Kod izrauna vrijednosti jedne estice potrebni su

    samo podaci pohranjeni u toj estici. Sloenost jednog prolaska petlje jest O(n) pri

    emu je n broj estica. Kod jednostavnijih simulacija ovakav naivan pristup esto je

    zadovoljavajui. Meutim, ukoliko elimo prikazati povrinu fluida koja se mie,

    uviamo kako ovaj pristup nikako nije dobar.

  • 5. Aproksimacijska visinska mapa

    Simulacija esticama nije dobar odabir ukoliko se eli pokazati samo povrina nekog

    fluida (ocean, rijeka, jezero). Bespotrebno kompliciranje raunski moe biti

    zahtjevno, a u grafikom smislu nee pretjerano uljepati simulaciju. Ako smo

    zainteresirani za animaciju dvodimenzionalne plohe, bilo bi pretjerana simulacija

    cijelog tijela vode. (Bridson & Muller-Fischer, 2007) U tom sluaju moe se koristiti

    algoritam aproksimacije visinskom mapom. Jednostavan je za implementirati i

    postie vizualno atraktivne rezultate.

    Povrina koja se simulira podijeli se na 2D mreu. to je mrea gua, to e

    vizualizacija biti detaljnija. Za svaki element te mree pamte se slijedei podaci

    visina (u) tog stupca i brzina kojom se visina u stupcu mijenja (v). Za poetnu

    vrijednost moe se postaviti oblik mree kakav god se eli. Pseudokod za mijenjanje

    izgleda mree preuzet je iz SIGGRAPH-ovog teaja za simulaciju fluida. (Bridson &

    Muller-Fischer, 2007)

    Pseudokod:

    za svaki i,j

    v[i,j] = (u[i-1,j] + u[i+1,j] + u [i,j-1] + u[i,j+1]) / 4 u[i,j]

    v[i,j] * = tezinski_faktor_manji_od_jedan

    u[i,j]+=v[i,j]

    U literaturi se kao teinski faktor za smanjenje brzine predlae 0.99. Kod

    implementacije algoritma taj se broj pokazao prevelik i s njime bi nakon nekoliko

  • iteracija simulacija eksplodirala (Slika 5.1). Idealnim se pokazao faktor koji iznosi

    0.68.

    Slika 5.1 Eksplozija simulacije za prevelik parametar priguenja brzine

    Treba definirati to se dogaa kod rubnih uvjeta, tonije kada su i i k manji od nula

    ili vei od maksimalne duine (irine). Najjednostavnije je tada ih prilagoditi

    vrijednosti koja je do njih tako da u[-1,j] = u[0,j] i analogno tome za sva 4 ruba.

    Konaan izgled simulacije moe se vidjeti na slici 5.2.

    Slika 5.2 Simulacija za razliite poetne funkcije

  • 5.1. Implementacija

    Cilj programa je simulirati vodenu povrinu koja moe poinjati iz nekoliko razliitih

    poloaja. Moe biti skroz mirna za poetak ili uhvaena u gibanju. Program e

    omoguiti interakciju s korisnikom na nain da korisnik moe tijekom izvoenja birat

    poetni izgled ili povlait mi po vodi i time uzburkavati povrinu. Na poetku se

    definiraju nuni parametri za izvoenje simulacije, a to su irina i duljina plohe te

    granulacija mree. Visinu u i brzinu v se pohranjuje u jednodimenzionalnu strukturu

    podataka vektor. Ako se eli pristupiti elementu koji se nalazi na mjestu i i j, indeks

    e biti i*broj_celija_duljine + j.

    Korisnik na simulaciju moe utjecati preko mia i tipkovnice. To je ostvareno

    pomou GLFW standardnih funkcija za baratanje s takvim dogaajima. Definiraju

    se funkcije koje se pozivaju kada korisnik stisne tipku na tipkovnici ili miu. Ukoliko

    korisnik eli ponovno pokrenuti simulaciju dovoljno je kliknuti na tipku S. Kako bi se

    omoguilo promatranje razliitih poetnih uvjeta, odabirom broja na tipkovnici bira

    se funkcija koja e postaviti inicijalnu visinu cijele mree. Tipke gore, dolje, lijevo i

    desno slue za pomicanje oita. Gledite je fiksno i nalazi se u ishoditu 3D

    koordinatnog sustava. Osim toga, ostvarena je jo jedna funkcionalnost korisnik

    povlaenjem mia po ekranu moe uzburkati povrinu. Od trenutka kada korisnik

    spusti lijevu tipku mia pa do trenutka kad je otpusti, sve toke na ekranu koje obie

    pamte se u za to namijenjeno polje. Nakon toga provodi se transformacija

    koordinata ekrana u koordinate svijeta. Rubovi ekrana odgovaraju rubovima

    povrina, a toke u sredini raunaju se tako da omjer ostaje isti. Primjerice, klikne li

    se na toku koja na ekranu odgovara 90% irine i 10% visine, i na simulaciji e se

    odabrati toku koja odgovara tom omjeru. Problem je to se u sluaju kada korisnik

    prebrzo mie mi po ekranu ne uspiju uhvatiti sve toke. Zato se izmeu svakoga

    para toaka povlai imaginaran pravac te se sve elije koje lee na tom pravcu i

    nalaze se izmeu zadanih toaka takoer ukljuuju. Svim takvim tokama mijenja

    se visina to se onda dalje propagira kroz simulaciju (Slika 5.2).

  • Slika 5.3 Valovi uzrokovani interakcijom s korisnikom

    5.2. Dodavanje estica i njihova kolizija

    Kako bi se simulacija uinila zanimljivijom, dodane su i estice koje bi trebale

    simulirati vodu koja pada na povrinu. estice su napravljene na nain koji je opisan

    u prethodnim poglavljima. Jedino je dodatno potrebno omoguiti provjeru dolaska

    estice do povrine vode. Svaki put kada se estici obnovi pozicija, potrebno je na

    mrei nai koji indeks odgovara poziciji estice koju obnavljamo. Zatim se

    provjerava visina vode na tom indeksu. Ukoliko se estica nalazi ispod vode, brie

    se. Zatim se simulira sila kojom je ta estica djelovala na slian nain kao i kad je

    korisnik kliknuo mi (Slika 5.3).

  • Slika 5.4 Interakcija mape sa sustavom estica

    5.3. Prednosti i mane visinskih mapa

    Glavna prednost uporabe visinskih mapa je brzina izrauna. Svaka elija za svoju

    vrijednost koristi samo 4 neposredna susjeda. Optereenje memorije takoer nije

    veliko jer se pamte podaci samo povrine, za razliku od eulerovog ili lagrangeovog

    pristupa. Mana ovog pristupa je ogranienost izbora toka fluida. Mogu se simulirati

    relativno mirni uvjeti jer se u svakom trenutku na jednoj eliji moe nalaziti samo

    jedna razina vode. Rjeenje tog problema bilo bi dodati sustav estica na kritinim

    tokama gdje pretpostavljamo da bi se fluid trebao burnije ponaati. Ovo

    pretpostavlja odreeno apriorno znanje o problemu koji simuliramo i gdje bi se fluid

    mogao ponaati na specifian nain.

  • 6. Metoda zaglaene hidrodinamike estice (SPH)

    6.1. Osnove SPH

    Kada je 1977. godine izumljena metoda zaglaene hidrodinamike estice (SPH),

    nije bila namijenjene CFD. Monaghan i Gingold te Lucy metodu su razvili sa svrhom

    rjeavanja astrofizikih problema. Meutim, metoda se pokazala puno brom od

    Eulerove i pogodnijom za simulaciju turbulentnijih tokova. Nije dugo trebalo da

    tehnika pronae svoj put do CFD-a.

    U sreditu metode nalazi se estica kao predstavnik malog dijela volumena fluida

    te nositelj makroskopskih svojstava kao to su brzina, gustoa, tlak. Ova tvrdnja

    korijene vue iz ranije spomenute teorije kontinuuma koja osigurava postojanost

    makroskopskih svojstava i na ovako malom redu veliine. SPH kae da vrijednost

    svojstva pojedine estice moemo dobiti zbrajanjem svojstava susjednih estica

    pomnoenih s odgovarajuom zagaujuom funkcijom (kernelom). Matematika

    podloga te tvrdnje bit e objanjenja i dokazan u nastavku. Neka je dana funkcija

    f(x). Prema definiciji, jedno od osnovnih svojstava delta (dirac) funkcije () jest:

    Prebacit emo to u 3D domenu i funkciju f(x) zamijeniti s nekim svojstvom A(r) nad

    volumenom V. Imamo sljedee

    () ( ) = ()

    Pri emu su r i r' vrijednosti unutar volumena V. Dirac delta funkcija zamjenjuje se s

    kernel funkcijom W koja djeluje na radiju su h.

    () ( , ) = ()

    Prema (Nataesescu & Gavrila, 2011) kernel je funkcija sa slijedeim svojstvima:

  • ( )

    = 1

    0

    ( ) = ( )

    Kernel je, takoer simetrina funkcija koja je uvijek vea ili jednaka 0. Kada ide iz

    negativne beskonanosti u 0 mora biti monotono rastua, dok je od 0 do pozitivne

    beskonanosti monotono padajua. Najveu vrijednost poprima u 0 odnosno kada

    je r=r'.

    Ranije spomenuto svojstvo A(r) sada e se zapisati u diskretnoj domeni za svaku

    pojedinu esticu i. Pri tom se u obzir uzima injenica da je =

    Ako se eli izraunati neko svojstvo A estice i, potrebno je zbrojiti to isto svojstvo

    svih susjednih estica zaglaeno odgovarajuom funkcijom.

    6.2. Osnovni algoritam

    Algoritam koji je implementiran temelji se na radu Smoothed Particle

    Hydrodynamics on GPUs autora Takaira Harade, Seiichi Koshizukaa i Yoichira

    Kawaguchija. (Harada, Koshizuka, & Kawaguchi). Navier- Stokesova jednadba u

    Lagrangeovom sustavu daje nam akceleraciju pojedine estice.

    Algoritam e se provoditi u tri koraka. U prvom e se izraunati sve komponente i

    ukupna akceleracija. Zatim e se vektor brzine promijeniti za iznos akceleracije. U

    konanici e se izraunati nove pozicije estica tako da nova brzina nadoda vektoru

    pozicije. Akceleracija e se mijenjati zbog triju komponenti. Gravitacija e djelovati

    u smjeru sile tee, tlak e gurati u smjeru negativnog gradijenta s mjesta viega na

    mjesto niega tlaka. Viskoznost e djelovati u smjeru akceleracije.

  • 6.2.1. Gustoa estice

    Kako bi se izraunala gustoa estice, svojstvo A(r) zamijeniti e se sa .

    6.2.2. Tlak

    Kad se izraunala gustoa svake estice, moe se krenuti na izraun tlaka. Ovdje

    e se koristiti svojstvo linearnosti derivacije pa se

    moe pisati kao

    Rauna se

    U pojedinoj estici tlak raunat e se kao k * (( 0). K je konstanta plinova, je

    trenutna gustoa, a 0 je gustoa pri mirovanju.

    6.2.3. Viskoznost

    Zadnje se rauna akceleracija zbog viskoznosti koja iznosi . I ovdje e se

    iskoristi svojstvo linearne derivacije koje kae da je

  • Slijedi:

    6.3. Odabir kernel funkcije

    Za kernel funkciju odabrana je funkcija (Harada, Koshizuka, & Kawaguchi)

    Pseudokod algoritma je slijedei:

    Za svaku cesticu:

    Izracunaj gustocu

    Za svaku cesticu:

    Izracunaj akceleraciju zbog promjene tlak

    Izracunaj akcelraciju viskoznosti

    Izracunaj ukupnu promjenu brzine

    Povecaj brzinu

    Promjeni polozaj cestice

  • 6.4. Implementacija rubnih uvjeta

    Potrebno je definirati nain na koji se fluid ponaa kad se susretne s podlogom.

    Odbija li se ili pak ostaje mirovati? Za poetak, iz dinamike je preuzeta ideja

    savrenog elastinog sudara. Pretpostavka je bila da bi trebalo funkcionirati dobro

    s obzirom da taj zakon jami ouvanje koliine gibanja i kinetike energije.

    Implementacija je bila sljedee kod svake kolizije estice s rubom promjeni se

    smjer parametra brzine okomitog na plohu sudara. Odmah pri prvom pokretanju bilo

    je jasno da ideja nije bila dobra. U realnim uvjetima fluidi se nikad ne odbijaju

    savreno elastino, dio energije gubi se pri sudaru. Simulacija je poslije svakog

    sudara bivala sve kaotinija i kaotinija dok u konanici fluid nije izgubio oblik i

    estice su se kaotino gibalo po ekranu.

    Slika 6.1 Kaotino gibanje po ekranu

    Nakon tog neuspjeha trebalo je pronai fiziki realnije rjeenje. Kada bi se u razliite

    slojeve vode koja tee dodao obojani fluid, mogla bi se promatrati brzina toka u

    razliitim slojevima. Tada bi se primijetila zanimljiva injenica, a to je da se dijelovi

  • fluida tik uz podlogu koja miruje ne kreu. Ta se pojava naziva uvjetom bez klizanja

    (engl. No-slip condition). Uzrok tome je viskoznost fluida. To je ujedno i sljedei

    pokuaj implementacije sudara estice sa rubom. Sada svaki put kada neka estica

    doe do ruba, brzina joj se postavlja na nul vektor. Simulacija se pokazala

    zadovoljavajuom. Jedini problem je to ponekad pojedina estica takne rub i

    ukoliko oko nje nema nekog susjeda da djeluje na nju, moe zaglavit zalijepljena

    tamo.

    Slika 6.2 Lijepljenje estica za rubove

    To se pokualo rijeiti tako da se pri sudaru s vrstom podlogom na nulu postavi

    samo ona komponenta brzine koja je okomita na udarenu plohu. To je dovelo do

    drugog problema. estice su imale sklonost etati po rubu lijevo i desno od toke

    sudara, ali se izbjeglo lijepljenje estica s rubova.

  • 6.5. Ubrzavanje algoritma

    Asimptotska sloenost opisanog algoritma je (2). Poveavajui broj estica, ija

    je veliina nuan uvjet to realnije simulaciji, brzina simulacije znatno otpada. No,

    mogue je ostvariti znatno ubrzanje uvoenjem susjedstva. Kada bi svaka estica

    znala svoje susjede, ne bi morala pretraivati itav prostor rjeenja ve samo one

    koje utjeu na nju. Kontrolni parametar h govori granicu kada estice prestaju

    djelovati jedna na drugu. Kada bi se itav prostor simulacije podijelio na elije

    veliine parametra h, svaka estica znala bi da joj se susjedi mogu nalaziti ili u

    vlastitoj eliji ili u elijama koje su joj susjedne. Ako je broj tih elija N znai da bi

    se u svakoj u prosjeku nalazilo

    estica. Iz tog proizlazi da bi prosjean broj

    susjeda jedne elije bio 8

    . Oznaimo taj broj sa a. Sada bi sloenost jednog

    prolaska algoritma bila O(aN).

    Ubrzanje e biti na tetu memorijskog prostora. Na poetku programa potrebno je

    inicijalizirati reetku koja e se pri svakom prolasku glavne petlje puniti indeksima

    estica koji se u prostoru nalaze na mjestu te elije. Poslije, kod traenja susjeda

    pojedine estice, pogledat e se vrijednosti zapisane u toj eliji, i po jednoj manje

    (vie) u svim smjerovima.

    6.6. Problemi i utjecaj parametara

    Glavni problem pri implementaciji SPH bio je namjetanje parametara. Navier-

    Stokesove jednadbe iznimno su osjetljive na parametre. ak i promjena od 0.01

    moe oznaavati kljunu razliku izmeu uspjene simulacije i neuspjene.

    Parametri koji su zadavali najvie problema bili su 0 i k. Prvi je gustoa fluida pri

    mirovanju, a drugi konstanta. Oni direktno utjee na tlak koji je u simulaciji definiran

    kao k( 0). Ukoliko tlak kojim estice djeluju jedna na drugu bude prevelik,

    simulacija se raspadne po ekranu i eksplodira. S druge strane, ukoliko je premalen,

    estice plove jedna prema drugoj i cijela se simulacija urui sama u sebe.

    Drugi problematian parametar bio je odreivanje mase pojedine estice. Ukoliko

    se postavi premalena masa, estice se kaotino gibaju po ekranu te se simulacija

    vie moe primijeniti na ponaanje plinova nego na ponaanje tekuina.

  • Parametar h odreuje podruje koje se zaglauje kernel funkcijom. Premalen

    parametar h uzrokuje to da niti jedna estica ne djeluje jedna na drugu i cijela se

    simulacija urui u par toaka na ekranu. Prevelik h znatno poveava vrijeme

    raunanja jer vie estica smatramo susjednim te za svaku moramo obaviti

    potrebne proraune gustoe, tlaka i viskoznosti.

    Parametar vremenskog koraka odreuje diskretizaciju vremenske domene. On

    mora biti dovoljno velik da simulaciji ne bi bila previe usporena. Takoer mora biti

    dovoljno malen kako bi osigurao realno ponaanje simulacije. U obzir se treba

    uzeti injenice da se sve diferencijalne jednadbe aproksimiraju odgovarajuim

    funkcijama. to je manja granulacija diskretizacije, rezultati e biti blii stvarnim

    rjeenjima.

    6.7. Simulacije

    Napravljene su dvije simulacije. Prva prikazuje kvadrat fluid koji se poinje gibati

    pod utjecajem sile tee. Rezultat se moe vidjeti na slici 6.3.

    Slika 6.3 Prikaz prve simulacije prije i poslije

    Druga simulacije poinje sa praznim ekranom. U svakom koraku glavnog algoritma

    na ekranu se generira jedna estica fluida. Rezultat je na slici 6.4.

  • Slika 6.4 Prikaz druge simulacije prije i poslije

  • Zakljuak

    Kao znanost kompjutorska dinamika fluida jo je uvijek u velikom razvoju. Teko je

    ne primijetiti da je kroz povijest njezin razvoj bio ogranien poznavanjem

    diferencijalnih jednadbi. Najbolje rjeenje i najbolji opis uvijek je bio jednak ili loiji

    od najboljeg postupka baratanja i rjeavanja diferencijalnih jednadbi.

    Simulacija fluida nije nimalo naivan i jednostavan postupak. Njegova realnost ide

    nautrb vremena i raunalnih resursa. ak je i za jako snana raunala

    problematina. Potrebno je razumjeti da danas jo uvijek ne moemo imati sve. Sa

    snagom dananjih raunala i tehnikama koje se koriste nije mogue postii

    realistinu, fizikalno tonu, vizualno privlano animaciju fluida koja se izvodi i

    renderira u realnom vremenu. Kljuno je, stoga, na poetku identificirati razloge

    zato uope simuliramo fluid. Ako je rije o simulaciji za igru, sigurno e naglasak

    biti na izvoenju u realnom vremenu. Simulacija filmskih efekata e, s druge strane,

    zahtijevati to ljepi izgled bez obzira na vrijeme koje je potrebno utroiti da bi se

    dobilo. Ako se pak eli simulirati rad motora i protok fluida u njemu, imperativ e

    imati fizikalna tonost. Svaki put kad pojaamo neku komponentu simulacije i damo

    joj veu vanost, to e biti nautrb ostalih.

  • Literatura

    [1] Andrei, . (2014). Temelji mehanike fluida. Zagreb: Sveuilite u Zagrebu - Rudarsko- geoloko- naftni fakultet.

    [2] Ashford, O. (1985). Proheptor Profesor: The Life and Work of L. E. Richardson.

    [3] Braley, C., i Tech. (n.d.). Fluid Simulation For Computer Graphics: A Tutorial in Grid Based and Particle.

    [4] Bridson, R., & Muller-Fischer, M. (2007). Fluid Simulation SIGGRAPH 2007 Course Notes.

    [5] Harada, T., Koshizuka, S., i Kawaguchi, Y. (n.d.).

    [6] JiJi, V. (n.d.). CSCI 480 Computer Graphics.

    [7] McDonough, J. M. (2009). Lectures in elementary fluid dynamics: Physics, Mathematics and Applications. Lexington.

    [8] McKee, S., Tome, Tome, M., Ferreira, V., Cuminato, J., Castelo, A., Mangiavacchi, N. (2007). The MAC method.

    [9] Nataesescu, V., i Gavrila, L. (2011). About smoothing functions used in SPH methods. Brasov.

    [10] avar, M., Virag, Z., i Dijan, I. (2014). Mehanika fluida (Skripta). Zagreb.

    [11] Shrainer, D., Sellers, G., Kessenich, J., i Licea-Kane, B. (n.d.). OpenGLProgramming guide, Eight Edition. Michigan.

    [12] upi, Marko i Mihajlovi, eljka Interaktivna raunalna grafika kroz primjere u

    OpenGL-u, 2016 , http://www.zemris.fer.hr/predmeti/irg/knjiga.pdf

    [13] Bao, Y. B., Meskas J., Lattice Boltzman Method for Fluid Simulation, 2011.

    http://www.zemris.fer.hr/predmeti/irg/knjiga.pdf

  • Saetak

    Naslov: Simulacija fluida sustavom estica

    Najprije su prouena osnovna fizikalna svojstva fluida te jednadbe po kojima se

    fluid giba. S obzirom da je za rad koriten i OpenGL prouene su njegove osnove.

    Rad se pozabavio trima osnovnim metodama kojima se postie animacija fluida, a

    koje su izvodive u realnom vremenu. Prva je bila jednostavni sustav estica bez

    interakcijskih sila meu pojedinim esticama. Sljedea je bila aproksimacijska

    visinska mapa koja je zatim integrirala i prvu metodu u svoj rad. Na kraju je

    implementiran jednostavni SPH simulator.

    Kljune rijei: fluid, SPH, viskoznost, gustoa. tlak, estica, visinska mapa, kernel

    funkcija, zaglaivanje

  • Summary

    Title: Fluid simulation using particle system

    Firstly basic physical attributes of fluids have been observed. Differential equations

    that describes fluid motion were also took in consideration. Considering the fact that

    OpenGL have been used for solution programming, the basic concepts of that

    programming language were described. There are there three methods that were

    implemented and described. Each one can run in real time. First method was simple

    particle system which doesn't calculate particle's interaction forces. The next one

    was heightmap. In the end simple SPH simulator was implemented.

    Keywords: fluid, SPH, viscosity, density, pressure, particle, heightmap, kernel

    function, smoothing

  • Privitak

    Programska potpora napravljena u sklopu teme diplomskog rada priloena je na

    CD-u.