Upload
phungnguyet
View
222
Download
1
Embed Size (px)
Citation preview
SVEUČILIŠTE U ZAGREBU
FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA
Marjan Sikora
POSTUPCI SIMULACIJE I VIZUALIZACIJE ŠIRENJA VALA U NEHOMOGENIM
SREDINAMA
DOKTORSKA DISERTACIJA
Zagreb, 2010.
Doktorska disertacija je izrađena u Zavodu za elektroniku, mikroelektroniku,
računalne i inteligentne sustave Fakulteta elektrotehnike i računarstva.
Mentor: Dr.sc. Nikola Bogunović, redoviti profesor
Doktorska disertacija ima 193 stranice.
Disertacija br.:
Povjerenstvo za ocjenu doktorske disertacije:
1. Dr.sc. Bojan Ivančević, redoviti profesor
Sveučilište u Zagrebu, Fakultet elektrotehnike i računarstva
2. Dr.sc. Nikola Bogunović, redoviti profesor
Sveučilište u Zagrebu, Fakultet elektrotehnike i računarstva
3. Dr.sc. Dinko Begušić, izvanredni profesor
Sveučilište u Splitu, Fakultet elektrotehnike, strojarstva i brodogradnje
Povjerenstvo za obranu doktorske disertacije:
1. Dr.sc. Bojan Ivančević, redoviti profesor
Sveučilište u Zagrebu, Fakultet elektrotehnike i računarstva
2. Dr.sc. Nikola Bogunović, redoviti profesor
Sveučilište u Zagrebu, Fakultet elektrotehnike i računarstva
3. Dr.sc. Dinko Begušić, izvanredni profesor
Sveučilište u Splitu, Fakultet elektrotehnike, strojarstva i brodogradnje
4. Dr.sc. Željka Mihajlović, izvanredna profesorica
Sveučilište u Zagrebu, Fakultet elektrotehnike i računarstva
5. Dr.sc. Vlado Sruk, izvanredni profesor
Sveučilište u Zagrebu, Fakultet elektrotehnike i računarstva
Datum obrane disertacije: 12. studenoga 2010. godine
ZAHVALE
Zahvaljujem prof. dr. Ivi Mateljanu na podršci i brojnim savjetima tijekom rada na
doktoratu. Zahvaljujem svom mentoru prof. dr. Nikoli Bogunoviću na strpljenju i
vođenju ovog doktorskog rada. Također zahvaljujem svojim mentorima diplomskog i
magistarskog rada prof. dr. Hrvoju Domitroviću i prof. dr. Bojanu Ivančeviću, koji su
zaslužni za početak mog rada na akustičkim simulacijama.
SADRŽAJ:
1 UVOD.......................................................................................................................................................... 1
2 PREGLED POSTOJEĆIH METODA.................................................................................................................. 5
2.1 UVOD .................................................................................................................................................................. 5
2.2 METODA KONAČNIH ELEMENATA .............................................................................................................................. 5
2.3 METODA VIRTUALNIH IZVORA ................................................................................................................................... 7
2.4 METODA PRAĆENJA ZRAKA .................................................................................................................................... 10
2.5 METODA PRAĆENJA FONONA ................................................................................................................................. 14
2.6 METODA PRAĆENJA SNOPOVA ................................................................................................................................ 14
2.6.1 Uvod ...................................................................................................................................................... 14
2.6.2 Opis metode .......................................................................................................................................... 14
2.6.3 Prednosti i mane u odnosu na ostale metode ...................................................................................... 15
2.6.4 Razvoj .................................................................................................................................................... 16
2.6.5 Korištenje metode praćenja snopova u drugim područjima osim akustike ........................................ 19
2.6.6 Prilagodljivo praćenje snopova ............................................................................................................. 20
2.6.7 Difuzne refleksije i praćenje snopova ................................................................................................... 22
2.6.8 Difrakcija i praćenje snopova ................................................................................................................ 23
2.6.9 Refrakcija i praćenje snopova ............................................................................................................... 24
2.7 ZAKLJUČAK .......................................................................................................................................................... 24
3 METODA SIMULACIJE ............................................................................................................................... 27
3.1 UVOD ................................................................................................................................................................ 27
3.2 OPĆE ZNAČAJKE ................................................................................................................................................... 27
3.3 STRUKTURA SCENE ............................................................................................................................................... 28
3.3.1 Nova struktura scene ............................................................................................................................ 28
3.3.2 Homogeni medij .................................................................................................................................... 31
3.3.3 Nehomogeni medij ................................................................................................................................ 32
3.3.4 Objekti scene ......................................................................................................................................... 34
3.3.5 Topologija scene .................................................................................................................................... 40
3.3.6 Pomoćne prostorne strukture podataka .............................................................................................. 42
3.4 TIJEK SIMULACIJE .................................................................................................................................................. 46
3.4.1 Prikupljanje ulaznih podataka .............................................................................................................. 47
3.4.2 Prethodna obrada scene ....................................................................................................................... 48
3.4.3 Praćenje snopova .................................................................................................................................. 49
3.4.4 Generiranje rezultata ............................................................................................................................ 66
3.5 FIZIKALNI PROCESI U POSTUPKU SIMULACIJE .............................................................................................................. 69
3.5.1 Atenuacija zbog širenja prostorom....................................................................................................... 69
3.5.2 Atenuacija zbog viskoziteta i drugih disipacijskih procesa u mediju ................................................... 70
3.5.3 Promjena na diskontinuitetu ................................................................................................................ 71
3.5.4 Izračun intenziteta na mjestu prijemnika ............................................................................................. 74
3.5.5 Akustički intenzitet snopa u PMPS‐u .................................................................................................... 77
3.5.6 Završna razmatranja ............................................................................................................................. 79
4 PROGRAMSKO OKRUŽENJE U KOJEM JE REALIZIRANA SIMULACIJA ......................................................... 88
4.1 UVOD ................................................................................................................................................................ 88
4.2 KORISNIČKO SUČELJE ............................................................................................................................................. 88
4.2.1 Kontrola 3D prikaza .............................................................................................................................. 91
4.2.2 Kontrola scene putem kontrole stabla ................................................................................................. 91
4.3 STRUKTURA KODA ................................................................................................................................................ 94
4.3.1 Kod simulacije – klase PMPS‐a ............................................................................................................. 97
4.4 OCJENA PROSTORNE I VREMENSKE SLOŽENOSTI ....................................................................................................... 100
4.4.1 Složenost algoritma praćenja snopova .............................................................................................. 100
4.4.2 Složenost generiranja plošne raspodjele intenziteta zvuka ............................................................... 105
4.4.3 Ukupna prostorna i vremenska složenost proračuna ........................................................................ 108
4.5 MOGUĆNOST PARALELNOG IZVOĐENJA ALGORITAMA ............................................................................................... 108
4.5.1 Paralelno izvršavanje na grafičkom procesoru .................................................................................. 109
4.5.2 Paralelno izvršavanje na računalnom grozdu i višenitno izvršavanje na višejezgrenom procesoru 109
4.5.3 Paralelizacija algoritma praćenja snopova ........................................................................................ 110
4.5.4 Paralelizacija algoritma stvaranja plošne raspodjele intenziteta zvuka ........................................... 112
4.5.5 Potencijalno ubrzanje kao rezultat paralelizacije algoritama ........................................................... 114
5 REZULTATI I MJERENJA ........................................................................................................................... 116
5.1 SIMULACIJA SCENA IZ PROSTORNE AKUSTIKE ............................................................................................................ 116
5.1.1 KVADAR ............................................................................................................................................... 118
5.1.2 AURA ................................................................................................................................................... 122
5.1.3 KONKAVNI ........................................................................................................................................... 128
5.1.4 Usporedba prostornih i vremenskih performansi sve tri scene ......................................................... 132
5.1.5 Promjena vremenskih performansi simulacija ovisno o određenim parametrima ........................... 134
5.1.6 Odstupanje simulacije PMPS ovisno o pragu dijeljenja ..................................................................... 142
5.2 SIMULACIJA REFRAKCIJE AKUSTIČKOM LEĆOM .......................................................................................................... 146
5.2.1 Usporedba PMPS metode sa geometrijskom konstrukcijom zraka ................................................... 147
5.2.2 Usporedba simulacije PMPS metodom sa metodom FEM ................................................................ 149
6 ZAKLJUČAK ............................................................................................................................................. 154
7 DODACI ................................................................................................................................................... 160
7.1 OSNOVNE DEFINICIJE RAČUNALNE GEOMETRIJE ....................................................................................................... 160
7.2 OPERACIJE NAD TROKUTIMA ................................................................................................................................ 163
7.3 ALGORITAM TRAŽENJA „OSVIJETLJENIH“ TROKUTA ................................................................................................... 165
7.4 TRANSFORMACIJA I PROJEKCIJA U KOORDINATNI SUSTAV SNOPA ................................................................................. 166
7.5 JEDNOSTAVNI PRIMJER ODVIJANJA ALGORITMA ZA SKRIVANJE I DIJELJENJE TROKUTA ....................................................... 168
7.6 ALGORITAM IZVOĐENJA RELACIJSKIH OPERACIJA SA SVRHOM SMANJENJA UTJECAJA NUMERIČKIH GREŠAKA ........................ 171
8 POPIS LITERATURE .................................................................................................................................. 174
9 POPIS INTERNETSKIH ADRESA ................................................................................................................ 186
SAŽETAK .......................................................................................................................................................... 187
SUMMARY ....................................................................................................................................................... 189
KLJUČNE RIJEČI: ................................................................................................................................................ 191
KEYWORDS: ..................................................................................................................................................... 191
ŽIVOTOPIS ........................................................................................................................................................ 192
CURICULIM VITAE ............................................................................................................................................ 193
1
P o g l a v l j e 1
1 UVOD
Simulacije širenja valova važan su alat korišten kako u inženjerskim aplikacijama ‐ za potrebe
proračuna u projektima, tako i u multimedijalnim primjenama, gdje se koriste za što vjernije
dočaravanje realnosti [34, 89]. U svijetu simulacija širenja valova najčešće se simuliraju
svjetlosni i zvučni valovi, iako simulacije valova mogu pronaći primjenu i u drugim područjima
[71]. Simulacije svjetlosnih valova često primjenu nalaze u multimediji, posebno od
devedesetih godina prošlog stoljeća, potaknute primjenom računalne grafike u svijetu zabave.
Simulacije širenja zvuka se u tom razdoblju također brzo razvijaju, a njihova primjena je
pretežno u inženjerske svrhe – koriste se prilikom projektiranja akustički osjetljivih prostora.
Pomoću njih mogu se dobiti vjerniji akustički parametri prostora nego je to moguće
korištenjem klasičnih Sabinovih i Eyringovih formula [96, 130]. U 21. stoljeću i akustičke
simulacije postaju dijelom svijeta zabave, jer se određene vrste mogu odvijati u realnom
vremenu [64], te tako koristiti interaktivno.
Matematičke metode koje se koriste u simulacijama širenja optičkih i akustičkih valova su
srodne, posebno u grupi geometrijskih metoda, pa se uz male promjene mogu koristiti i za
jednu i drugu vrstu simulacije širenja vala. Ova činjenica je vrlo korisna, jer se određene
spoznaje i algoritmi do kojih se došlo na jednom području lako mogu primijeniti i u drugom. S
obzirom da se tehnika vizualizacije razvijala brže, mnoga iskustva u razvoju algoritama i
specijaliziranog hardvera s područja vizualizacija mogu se primijeniti i u akustici. Algoritmi
predstavljeni u ovom radu razvijani su prvenstveno zbog simulacije širenja zvučnog vala, ali se
uz male preinake mogu koristiti i za simulaciju širenja svjetlosnog vala.
Metode koje se koriste za simulaciju širenja valova ugrubo se mogu svrstati u dvije grupe:
numeričke (metoda konačnih elemenata ‐ FEM – finite element method, metoda graničnih
elemenata ‐ BEM – boundary element method...) i geometrijske (metoda virtualnih izvora,
praćenje zraka – ray tracing...) [34, 114]. Metode iz prve grupe s obzirom na svoju prirodu,
uspješno simuliraju sve relevantne valne efekte – refrakciju, difrakciju, interferenciju,
refleksiju, atenuaciju. Medij dijele na male, konačne elemente, od kojih je svaki definiran
svojim akustičkim parametrima. Konačni elementi na kojima se odvija simulacija mogu biti
srodni ili raznorodni, pa ove metode uspješno simuliraju širenje u homogenim i nehomogenim
2
sredinama. Međutim, ove metode su pogodne za rad isključivo na niskim frekvencijama, a
učinkovitost im je dobra samo u jednostavnim geometrijama – uglavnom se koriste za
dvodimenzionalne simulacije, dok za simuliranje širenja vala u trodimenzionalnom prostoru
treba velika procesorska snaga [34, 112].
Geometrijske metode manje su ovisne o frekvenciji vala koji se širi. Kod njih se pojavljuje
problem prilikom rada na niskim frekvencijama, kada valna duljina ima red veličine geometrije
prostora. U tom slučaju za izračun simulacije više se ne mogu koristiti pravila geometrijskog
širenja vala. Međutim one se uspješno koriste i u geometrijski najsloženijim trodimenzionalnim
okruženjima. Primarni fenomen koji se simulira ovim metodama je refleksija vala. Razrađeni su
algoritmi za zrcalne i difuzne refleksije [96]. Također, uspješno su razvijeni algoritmi i za
simulaciju difrakcije (ogiba) [64, 77]. Za sada najsofisticiranija geometrijska metoda je metoda
praćenja snopova (eng. beam tracing) [34, 96]. Kod geometrijskih metoda, u pravilu je cijeli
prostor kojim se širi val ispunjen istim, homogenim medijem. Zbog toga se pomoću njih ne
simulira širenje nehomogenim medijem. Također niti refrakcija (lom) vala u ovim metodama
nije uzet u obzir – s obzirom da je svugdje isti medij, ne simulira se refrakcija na prijelazu iz
jednog medija u drugi. Ovome je iznimka simuliranje kaustičnog efekta kod praćenja zraka,
koja se primjenjuje u vizualizacijama radi što vjernijeg prikazivanja efekta loma svjetla nemirne
morske površine [17, 19].
U ovom radu prikazani su algoritmi simulacije širenja vala u nehomogenim sredinama, koji
koriste geometrijsku metodu praćenja snopova. U nastavku teksta, metoda simulacije širenja
valova u nehomogenim sredinama, koja je prikazana u ovom radu, radi jednostavnosti će se
zvati proširena metoda praćenja snopova – PMPS (eng. comprehensive beam‐tracing method
– CBTM). Cilj proširene metode praćenja snopova je da se uz zadržavanje prednosti
geometrijskih metoda, posebno metode praćenja snopova, omogući simuliranje širenja i
refrakcije vala u složenim sredinama. Ovom metodom obuhvaćen je proračun refrakcije
između dvaju homogenih materijala. Da bi se ovo postiglo, scena u kojoj se simulacija odvija
nije više definirana samo reflektivnim plohama, koje su uronjene u jedan, homogeni medij.
Simulirano okruženje kod proširene metode praćenja snopova je više nalik stvarnom svijetu:
ono je sastavljeno od volumena koji predstavljaju objekte iz stvarnog svijeta. Međusobno su
odijeljeni plohama diskontinuiteta. Na tim diskontinuitetima događa se, kao i u klasičnim
3
geometrijskim metodama, refleksija vala, ali osim nje, istovremeno i refrakcija vala, pri čemu
se širenje vala nastavlja u novom volumenu‐materijalu.
Proširena metoda praćenja snopova, koja je prikazana u ovom radu, pogodna je za simulaciju
kako zvučnog tako i svjetlosnog vala. U oba slučaja geometrijski principi simulacije su slični,
dok se kod proračuna intenziteta vala treba za svako područje primjene koristiti različite,
odgovarajuće formule. U nastavku ovog rada će PMPS biti primijenjena isključivo na simulaciju
zvučnog vala. Tako će i poglavlje 3.5 koje opisuje fizikalne procese u postupku simulacije biti
specijalizirano za zvučni val. Primjeri na kojima je simulacija ispitana također tretiraju širenje
zvučnog vala.
Znanstveni doprinosi ovog rada su slijedeći:
- razvoj struktura podataka i algoritama objedinjenih u PMPS, koji osim refleksija
računaju i refrakciju zvučnog vala
- simulacija širenja zvučnog vala u nehomogenoj sredini geometrijskom metodom
- model prostora utemeljen na volumenima i plohama diskontinuiteta koje ih dijele –
proširenje pojednostavljenog modela sa jednim medijem i reflektivnim plohama
- plohe diskontinuiteta su definirane u obliku nepravilne trokutaste mreže, što
omogućava proširenje područja primjene – osim arhitektonske akustike i pravilnih
strukturama, mogu se simulirati i prirodni, organski, nepravilni oblici
Ova teza ima za svrhu prikazati detalje predmetne metode, kako bi se istražile njene prednosti
i doprinosi, te ustanovili nedostaci i područja za daljnji razvoj. Trenutno prema saznanju autora
ne postoji niti jedna geometrijska metoda koja može simulirati ovakve kompleksne sredine.
Stoga je najvažniji cilj ovog rada dokazati da je pomoću PMPS‐a moguće izvršiti simulaciju
ovakvih sredina. To će biti dokazano određivanjem prostorno‐vremenske performanse
metode. Metoda će biti uspoređena sa postojećim geometrijskim simulacijama u onom
području u kojem te simulacije rade (širenje u jednom mediju). Metoda će također biti ispitana
na modelu sa više medija, a rezultati simulacije takvog okruženja biti će uspoređeni sa
teoretskim predviđanjem.
4
Rad je sastavljen na sljedeći način. U drugom poglavlju prikazan je dosadašnji rad na području
simulacija širenja valova, s posebnim naglaskom na metodu praćenja snopova, koja predstavlja
temelj PMPS‐a. U trećem poglavlju su prikazane strukture podataka i algoritmi koji čine PMPS,
te je predstavljena fizikalna podloga proračuna. Četvrto poglavlje sadrži opis programskog
okruženja u kojem je na računalu simulacija realizirana. Peto poglavlje prikazuje rezultate
simulacije, te njene prostorne i vremenske performanse. Šesto poglavlje donosi zaključak, te
razmatranja mogućnosti daljnjeg razvoja metode. Potom je predstavljena literatura korištena
tijekom rada, a nakon nje dodaci u kojim su predstavljeni neki dijelovi rada, koji su iz glavnog
izlaganja izdvojeni, kako ne bi opterećivali tijek obrazlaganja predmetne simulacijske metode.
Naposljetku je predstavljen sažetak rada uz kratki životopis autora.
5
P o g l a v l j e 2
2 PREGLED POSTOJEĆIH METODA
2.1 Uvod
Metode simulacije širenja zvučnih valova, razvijaju se već nekoliko desetljeća [114, 50]. U
ovom poglavlju bit će opisane poznate metode za simulaciju širenja zvučnih valova. Bit će
objašnjena priroda pojedine metode, njezine dobre strane i nedostaci, posebno u odnosu na
temu ove disertacije – širenje zvučnog vala u nehomogenoj sredini. Metode simulacije se
mogu podijeliti u dvije temeljne skupine:
1) Numeričke metode – temelje se na numeričkom rješavanju akustičke valne jednadžbe.
Tu spadaju metoda konačnih elemenata , metoda graničnih elemenata i metoda
konačnih razlika (eng. finite difference method ‐ FDM).
2) Geometrijske metode – koriste pravila geometrijske akustike. Temelje se na
aproksimaciji, da je frekvencija zvučnog vala visoka u odnosu na dimenzije prostora u
kojem se širi, te da se stoga putanja širenja vala zvuka određuje geometrijskim
metodama. U ovu grupu spadaju metoda virtualnih izvora, metoda praćenja zraka, te
metode praćenja snopova.
Posebna pažnja bit će posvećena metodi praćenja snopova, jer se tema disertacije temelji na
njoj.
2.2 Metoda konačnih elemenata
Metoda konačnih elemenata za proračun širenja zvučnog vala koristi numeričku integraciju
valne jednadžbe [116]. Prostor u kojem se val širi dijeli se na konačni broj elemenata (trokuta,
kvadrata...). Za te elemente, zatim se definira sustav linearnih jednadžbi. Rješavanjem sustava
jednadžbi dolazi se do vrijednosti amplitude i faze zvučnog vala u konačnom broju točaka u
prostoru, te se na taj način simulira njegovo širenje (slika 2‐1).
6
Slika 2‐1 ‐ Podjela na konačne elemente – simulacija
ultrazvučnog pretvarača – PZFlex
Kako numeričke metode obavljaju izravnu integraciju akustičke valne jednadžbe, a ona u
potpunosti opisuje širenje vala u prostoru, ovom metodom simuliraju se svi valni fenomeni,
poput: refleksije, refrakcije, difrakcije, interferencije, apsorpcije u mediju i sl. Time je
izbjegnuto pribjegavanje hibridnim metodama, kako bi se simulirali neki fenomeni, koje
osnovna metoda ne obuhvaća. Prednost metode je u činjenici da konačni elementi sredstva, u
kojem se širi zvučni val, mogu imati različite karakteristike. Zato sredina ne mora biti
homogena (primjerice, ljudsko tkivo).
Kod numeričkih metoda vrlo je važan izbor akustičke valne jednadžbe, čija će se numerička
integracija obavljati. Kod simulacija ultrazvuka, kako bi se simulacija mogla obavljati efikasno i
za veće modele, koriste se KZK numeričke metode, koje se temelje na jednosmjernoj
aproksimaciji valne jednadžbe zvuka. Ova aproksimacija osigurava točan i efikasan proračun
jednosmjernog širenja zvučnog vala. Međutim, zbog ove aproksimacije se ograničava proračun
višestrukih refleksija zvuka. Ukoliko se one žele uzeti u obzir, moraju se uzeti potpuniji oblici
7
valne jednadžbe. Mana ovakvih oblika valne jednadžbe zvuka je da nisu točni prilikom
računanja duljih putanja širenja zvuka [83].
Kod metode konačnih elemenata proračun se temelji na računanju rješenja sistema linearnih
jednadžbi. Broj jednadžbi u sustavu jednak je broju konačnih elemenata koji pokrivaju
područje koje se simulira. Kako bi se osigurala brzina proračuna i njegova konvergencija,
potrebno je ograničiti broj jednadžbi, a samim time i broj konačnih elemenata. Ovo pak
postavlja ograničenja na frekvencijsko područje, te veličinu i složenost geometrije objekata koji
se simuliraju.
Veličina konačnih elemenata treba biti manja od valne duljine, odnosno za kvalitetnu
simulaciju potrebno je da bude manja od četvrtine valne duljine. Zbog toga broj elemenata
raste s frekvencijom na kojoj se obavlja simulacija. Za jednodimenzionalnu simulaciju taj porast
je linearan, za dvodimenzionalnu simulaciju kvadratan, a za simulaciju u tri dimenzije porast je
proporcionalan trećoj potenciji frekvencije.
Broj elemenata raste i s veličinom prostora koji se simulira. Dakle, kod metode konačnih
elemenata se zahtjevi na procesorsku snagu i memorijski prostor bitno povećavaju sa
frekvencijom i veličinom simuliranog prostora. Zato se ove simulacije koriste uglavnom pri
nižim frekvencijama. Kod simulacija širenja ultrazvuka gdje se koriste visoke frekvencije,
obično je ograničena veličina prostora koji se simulira [112, 116]. Također, zbog problema s
brojem konačnih elemenata, ove simulacije se odvijaju u jednoj ili dvije dimenzije. Prelaskom
na treću dimenziju drastično raste broj konačnih elemenata pa prema [112] simulacija postaje
nepraktična za izvođenje na radnim stanicama, te se može odvijati na superkompjuterima ili
računalnim gridovima.
2.3 Metoda virtualnih izvora
Metoda virtualnih izvora se često koristi u akustičkim simulacijama za proračun impulsnog
odziva prostorije [114]. Ova metoda je izuzetno točna, puno točnija od metode praćenja zraka,
a za analizu ranih (bliskih) refleksija je i njena učinkovitost zadovoljavajuća.
Kod ove metode [103], refleksije se računaju stvaranjem virtualnih, zrcalnih slika izvora (slika
2‐2). Da bi dobili virtualnu sliku izvora S, zrcalimo ga oko stranice čija je normala ni, a
8
udaljenost od stranice i iznosi di. Na taj način se dobije virtualni izvor Si. Postupak je opisan sa
slijedećim izrazom:
Si = S + 2di ni (2.1)
Slika 2‐2 – Metoda virtualnih izvora
Putanja reflektiranog zvuka računa se tako da se prvo nađe točka refleksije. Povuče se linija od
prijemnika R do virtualnog izvora Si te se nađe presjecište sa stranicom i. To presjecište
predstavlja točku refleksije. Putanja zvuka se zatim konstruira tako da se povuče linija od
izvora S do točke refleksije, te zatim od točke refleksije do prijemnika R. Višestruke refleksije
računaju se tako da se virtualni izvori nižeg reda ponovno zrcale oko stranica prostorije (slika
2‐3).
Slika 2‐3 – Mreža višestrukih izvora oko simulirane
prostorije
9
Putanje zvuka kod virtualnih izvora višeg reda rekonstruiraju se slično kao kod virtualnih izvora
prvog reda: postupak se odvija tako da se prvo konstruiraju točke refleksije višeg reda
(povlačenjem linije između prijemnika i virtualnog izvora višeg reda), a onda progresivno one
nižeg reda.
Najvažnija prednost ove metode je njena točnost i potpunost. Pomoću ove metode se mogu
pronaći sve putanje zvuka, jer ona ispituje sve kombinacije mogućih putanja zvuka, odnosno
refleksija. Međutim, upravo zbog provjeravanja svih kombinacija, složenost algoritma iznosi
O(nr), gdje je n ‐ broj stranica ploha od kojih se zvuk reflektira, a r ‐ najviši red refleksija koje se
uzimaju u obzir. Stvar se dodatno pogoršava činjenicom da za pronalaženje refleksije algoritam
ne obuhvaća samo gore navedeni proračun putanje, već se moraju obavljati i složene provjere
ispravnosti i vidljivosti izvora. Neispravne su one refleksije koje nastaju odbijanjem o poleđinu
stranice (zida). Ovakve refleksije, kao i sve nasljedne refleksije se mogu zanemariti.
Problem nastaje kada se točka refleksije nalazi na pravcu na kojem leži stranica, ali pada izvan
rubnih točaka stranice (primjerice, prva refleksija od stranice a) ili je neki od segmenata
putanje refleksije zaklonjen kakvom drugom stranicom. Tada se kaže da prijemnik "ne vidi"
dotični virtualni izvor. Ovakve refleksije se ne uzimaju u obzir, ali se svejedno moraju
razmatrati refleksije nasljednice (primjerice, refleksije drugog reda koja nastaje zrcaljenjem
izvora Sa preko stranice d).
Zbog složenih testova vidljivosti i ispravnosti, te zbog eksponencijalnog rasta broja refleksija
viših redova, metoda virtualnih izvora upotrebljiva je samo za proračun ranih refleksija, što u
praksi znači do refleksija trećeg reda. Međutim njena točnost, te karakteristika da ne podliježe
"aliasingu" kao kod praćenja zraka, održali su je u praksi, te se danas koristi u hibridnim
sustavima. Često se kombinira s metodom praćenja zraka, gdje se početni dio impulsnog
odziva računa metodom virtualnih izvora, a kasniji dio odziva se računa metodom praćenja
zraka. Kako su rane refleksije najvažnije za akustički dojam i proračun parametara prostora,
metodom virtualnih izvora osigurava se njihov točan i potpun proračun, a metodom praćenja
zraka se ubrzava proračun kasnijeg dijela impulsnog odziva.
Mana ove metode je također što računa samo zrcalne refleksije, dok je za proračun difuznih
refleksija potrebno upotrijebiti neku dodatnu metodu [56]. Metoda također u obzir ne uzima
10
refrakciju, što je čini nepogodnom za simuliranje širenja zvučnog vala u nehomogenim
prostorima.
2.4 Metoda praćenja zraka
Metoda praćenja zraka se po raširenosti može usporediti sa metodom virtualnih izvora. U
svijetu kompjuterske grafike, ova metoda je najčešće korištena metoda u praksi. U
kompjuterskoj grafici postupak praćenja zraka je obrnut od onog u akustici ‐ kod kompjuterske
grafike zrake se prate od očišta do objekta. Princip metode praćenja zraka u akustici prikazan
je na slici 2‐4.
Slika 2‐4 – Princip metode praćenja zraka
U prostor oko izvora S odašilju se zrake, na način da je kut između dviju zraka konstantan. Što
je kut manji, broj zraka će biti veći. Time se povećava točnost simulacije, ali i usporava vrijeme
proračuna. Nakon generiranja, svaka se zraka zasebno prati, na način da se ispituje nalazi li se
na njezinom putu kakva prepreka. Kada zraka naiđe na prepreku, ona se reflektira, te se
nastavlja njeno praćenje. Trajanje praćenja zrake se obično ograničava na jedan od slijedećih
načina:
- prekida se nakon što je dostignut najveći dozvoljeni broj refleksija
- prekida se kada ukupna atenuacija postane veća od kritične – znači da doprinos
ukupnoj energiji postaje zanemariv, pa više nije potrebno računati.
- prekida se kada duljina zrake (ili vrijeme potrebno da zvuk pređe putanju zrake)
postane veća od maksimalne dozvoljene
Kako bi se izračunala razina energije na mjestu prijemnika, potrebno je koristiti kuglasti
detektor, a ne točkasti. Naime, kako je kutna gustoća zraka oko izvora konačna (između dvije
zrake se uvijek nalazi prostor), pomoću točkastog detektora ne bi mogli detektirati niti jednu
11
zraku. Zato se za pronalaženje zraka koje dolaze do prijemnika, koristi kuglasti detektor,
konačnog radijusa. Ukoliko zraka dotakne, odnosno dijelom prođe, kroz takav sferni detektor,
smatra se da je došla do izvora, te da daje doprinos ukupnoj energiji i impulsnom odzivu na
mjestu prijemnika.
Metoda praćenja zraka je izuzetno jednostavna za računalnu implementaciju. Prilikom
implementacije na računalu potrebno je realizirati samo nekoliko jednostavnih geometrijskih
operacija. Proračun refleksija višeg reda ne usložnjuje proračun kao kod metode virtualnih
izvora. Zbog jednostavnosti proračuna, ove metoda je brza – njena brzina raste u najgorem
slučaju linearno s povećanjem broja reflektivnih ploha [34] pa složenost algoritma iznosi O(n),
gdje je n ‐ broj reflektivnih ploha u simulaciji. Pomoću ove metode se osim refleksija mogu
računati i druge valne pojave – refrakcija i difrakcija. Izračun difuznih refleksija nije moguće
obavljati izravno, već se implementiraju hibridne metode, poput metode razmjene zračenja
(eng. radiosity). Osim brzine, te većeg broja valnih fenomena, ova metoda ima prednost i u
tome što se dobro mogu simulirati i modeli sa zakrivljenim površinama i s velikim brojem
reflektivnih ploha, za razliku od metode virtualnih izvora.
Slika 2‐5 – Pojava aliasinga kod metode praćenja
zraka: a) dvostruka detekcija, b) neispravna detekcija
Osim prije navedenih prednosti ova metoda ima i nekoliko nedostataka. S obzirom da se za
detekciju zraka koristi sferni detektor, kod metode praćenja zraka pojavljuje se problem
"aliasinga". Pod ovim imenom podrazumijeva se pojava višestrukih, lažnih detekcija zraka sa
sfernim detektorom. Ova pojava ilustrirana je na slici 2‐5:
a) b)
12
Na slici 2‐5a ‐ vidi se da ne postoji vidljivost između prijemnika R i izvora S. Zraka koja od izvora
ide izravno prema prijemniku R naići će na prepreku i neće biti detektirana. Međutim, druga
zraka, generirana algoritmom praćenja zraka, koja se od izvora širi u odnosu na prvu
posmaknuta za konačni kut, prolazi točno uz prepreku, te je prepreka ne zaustavlja. Kako se
sferni detektor prijemnika nalazi blizu izvora, njegov radijus je dovoljno velik da obuhvati ovu
zraku, te detektira prijam. Na taj se način, iako ne postoji vidljivost između prijemnika i izvora,
detektira dolazak izravnog zvuka, što predstavlja grešku "aliasinga". Slučaj prikazan na slici
2‐5b, još je teži oblik greške, jer se prijemnik opće ne nalazi u istom prostoru kao izvor.
Međutim, zbog svog radijusa, kugla detekcije prijemnika, prolazi kroz zid i neispravno detektira
prijem zrake. Osim ove dvije vrste "aliasinga" postoji i treća, koja je i najčešća. Kod ovog
slučaja postoji vidljivost između izvoda i detektora, ali se umjesto jedne putanje zvuka, zbog
veličine detektora neispravno detektiraju dvije ili više zraka. Na taj način se unosi greška jer se
amplitude zvukova zbrajaju, pa se neispravno dobiva veća vrijednost od stvarne.
Problem "aliasinga" donekle se može ublažiti smanjivanjem radijusa sfernog detektora, ali
samo do neke granice – naime ukoliko je detektor premali, postoji vjerojatnost da i neke
ispravne detekcije neće biti registrirane.
Slika 2‐6 – Problem nedetektiranih zraka
Upravo ova pojava je druga mana metode praćenja zraka, a po svojoj prirodi suprotna je
"aliasingu". Ona nastaje uglavnom kod refleksija višeg reda. Naime, zrake koje su se u početku
gusto širile oko izvora, svojim prolaskom kroz prostor divergiraju, te kod viših refleksija postaju
tako razmaknute, da je radijus sfernog detektora premali da pokrije prostor između dvije
susjedne zrake. Na slici 2‐6 vidi se da iako se prijemnik R nalazi u području gdje postoji prva
13
refleksija, zbog razmaka između zraka, niti jedna zraka prve refleksije neće biti detektirana. Na
taj način neke potpuno ispravne refleksije ostaju nedetektirane.
Ovaj problem se može ublažiti povećanjem broja emitiranih zraka (odnosno smanjenjem kuta
između njih), ali se tada povećava i vjerojatnost "aliasinga". Kako bi se napravio kompromis
između dva suprotna zahtjeva, koji postavljaju problemi "aliasinga" i propuštenih zraka,
veličina sfernog detektora [96] računa se prema jednadžbi:
Nlr
2 (2.2)
gdje je N ‐ broj zraka, l ‐ srednja duljina zrake, r ‐ radijus sfernog detektora.
Problem propuštenih zraka posebno je izražen kod akustičkih simulacija, gdje je vrlo bitno
detektirati ispravan impulsni odziv, odnosno vremenski slijed refleksija. Međutim, kod kasnih
refleksija, zbog gore navedenog problema, drastično se smanjuje vjerojatnost detekcije, pa
većina ispravnih refleksija ostaje nedetektirana. Zato se u impulsnom odzivu primjećuje nagli
prestanak slijeda refleksija. Ova pojava može bitno uticati na proračun akustičkih parametara,
te na auralizaciju zvuka.
U praksi se ova metoda često koristi zbog svoje brzine i jednostavnosti. Međutim, na području
akustike, često se nadopunjuje s metodom virtualnih izvora za proračun ranih refleksija (kako
bi se izbjegao "aliasing"), te statističkim metodama za proračun kasnog dijela impulsnog odziva
(kako bi se nadomjestile nedetektirane kasne refleksije).
Većina akustičkih simulacija metodom praćenja zraka opisanih u znanstvenoj literaturi ne
uzima refrakciju u obzir. Iznimku čine simulacije UTSIM i Imagine3D [9], koje metodom
praćenja zraka računaju širenje ultrazvučnog vala, u svrhu pronalaženja defekata u
materijalima.
Kod komercijalnih vizualizacijskih simulacija refrakcija je često implementirana, kako bi se
mogao prikazati lom svjetlosti na staklenim predmetima. U prošlom stoljeću refrakcija
svjetlosti se simulirala isključivo metodom praćenja zraka, dok je u posljednjem desetljeću u
literaturi objavljeno nekoliko radova koje za tu svrhu koriste metodu praćenja snopova [19].
14
2.5 Metoda praćenja fonona
Ovu metodu predstavili su Bertram i dr. 2005. godine [27]. Inspirirani metodom praćenja
fotona za primjenu u vizualizacijama razvili su metodu praćenja zamišljenih akustičkih čestica,
koje su nazvali fononi ‐ analogno nazivu fotona. Praćenjem fonona autori u ovoj metodi
računaju impulsni odziv prostorije, te na vrlo ilustrativan način (računalnom animacijom)
prikazuju širenje zvučnog vala kroz prostor u vremenu.
2.6 Metoda praćenja snopova
2.6.1 Uvod
Metoda širenja zvučnog vala u nehomogenim sredinama, prikazana u ovoj doktorskoj
disertaciji, temelji se na metodi praćenja snopova. Stoga će ova metoda biti prikazana
detaljnije od ostalih metoda. U ovom poglavlju, osim opisa same metode, posebna pažnja
obratit će se na razvoj metode, algoritam prilagodljivog praćenja snopova, te na način kako se
metodom praćenja snopova mogu simulirati ostale valne pojave.
2.6.2 Opis metode
Metoda praćenja snopova počela se razvijati kasnije od metode virtualnih izvora i metode
praćenja zraka. Ova metoda radi na sljedeći način: prostor oko izvora podjeli se na konačni broj
snopova (slično kao kod metode praćenja zraka) u obliku stožaca ili piramida (Slika 2‐7a).
Slika 2‐7 – a) podjela prostora oko izvora na snopove, b)
refleksija snopa od prepreke
Zatim se prati širenje snopova kroz prostor, a kada snop naiđe na prepreku, računa se njegova
refleksija (Slika 2‐7b). Dok traje praćenje snopova, obavlja se detekcija prijema snopa i to s
a) b
15
točkastim detektorom. Za razliku od praćenja zraka, koje su beskonačno tanke, te kod kojih je
potreban detektor određenog volumena (kugla), kod ove metode, pošto snopovi imaju
konačni volumen, kao detektor se koristi točka. Ukoliko dođe do detekcije, pomoću snopa se
računa vrijeme i akustički intenzitet vala koji dolazi do prijemnika, te se on dodaje impulsnom
odzivu.
2.6.3 Prednosti i mane u odnosu na ostale metode
Kako metoda praćenja snopova koristi točkasti detektor, a snopovima je ispunjeno cijelo
područje oko izvora, kod nje ne dolazi do problema "aliasinga" i propuštenih zraka. Naime,
prostor oko izvora zvuka je u cijelosti pokriven snopovima (Slika 2‐7a), pa na taj način ne
postoji mogućnost da se, bilo prije, bilo poslije refleksije, detektor nađe u kakvoj "rupi",
odnosno nepokrivenom području. Stoga, ne može doći do propuštenih putanja zvuka, kao kod
metode praćenja zraka. S druge strane, ne postoji opasnost ni od "aliasinga", zato jer se za
detekciju koristi točkasti detektor. Kod metode praćenja zraka se kao detektor koristi kugla,
koja ima svoj volumen, pa se može dogoditi da kroz nju prođe više zraka reflektiranih od istog
poligona – što je greška. Kada se kao detektor koristi točka, kao kod metode praćenja snopova,
ne može se dogoditi da zbog veličine detektora dođe do neispravne detekcije više putanja
zvuka. Zbog ovoga se kaže da je metoda praćenja snopova prostorno koherentna.
Ova metoda je bolja i od metode virtualnih izvora, zato jer zadržava njenu glavnu prednost
(točnost i potpunost detekcije zvučnog vala – ispravan početni radni dio impulsnog odziva), a
nema problem neučinkovitosti kod refleksija višeg reda.
Algoritam metode praćenja snopova je kompleksniji od algoritma metode praćenja zraka, jer
kod refleksije treba računati geometriju snopa, a ne samo jedne zrake. Zato je ova metoda
donekle sporija od metode praćenja zraka, međutim, vrijeme potrebno za proračun metodom
praćenja snopova ne raste eksponencijalno s povećanjem broja refleksija, kao kod metode
virtualnih izvora, već puno sporije [96]. Stoga, ova metoda efikasnije računa refleksije višeg
reda, odnosno kasniji dio impulsnog odziva nego metoda virtualnih izvora. Razlog ovome je u
činjenici da metoda praćenja snopova po svojoj prirodi pronalazi valjane refleksije odmah, a ne
razmatra sve moguće kombinacije refleksija, pa naknadno provjerava njihovu valjanost kao
metoda virtualnih izvora.
16
Metoda praćenja snopova pogodna je i za složene geometrije. Kod metode virtualnih izvora
vrijeme proračuna raste eksponencijalno sa složenošću geometrije, jer se u razmatranje
moraju uzeti sve plohe, kako bi se provjerila valjanost svih mogućih virtualnih izvora. Nasuprot
tome, kod metode praćenja snopova, pomoću topološke strukture određuju se potencijalno
vidljive reflektivne plohe, te se zatim samo one uzimaju u obzir za proračun. Na taj način
moguće je efikasno raditi s globalno izuzetno složenim geometrijama, jer na brzinu proračuna
utiče samo lokalna složenost [34].
Dakle, vidljivo je da metoda praćenja snopova spaja točnost i potpunost metode virtualnih
izvora, sa brzinom bliskoj metodi praćenja zraka.
2.6.4 Razvoj
Osnove metode postavili su Walsh i dr. [126] , te Heckbert i Hanrahan [127] kao usavršavanje
metode praćenja zraka za otkrivanje skrivenih ploha. Maercke i Martin su 1992. u simulaciji
imena Epidaure za praćenje upotrijebili stošce umjesto zraka. Ova promjena predstavljala je
napredak u odnosu na praćenje zraka, zato jer se mogao koristiti točkasti detektor. Međutim,
iako je predstavljalo napredak, ovakvo rješenje patilo je od nedostataka – stošci su se zbog
pokrivanja cijelog prostora preklapali (Slika 2‐8), a refleksije se nisu prilagođavale obliku
reflektivnih ploha (Slika 2‐9).
Slika 2‐8 – Preklapanje stožaca
Nastavak razvoja uslijedio je 1993., kada je Lewers umjesto stožaca upotrijebio snopove
trokutastog presjeka u obliku piramide. Na taj način riješen je problem preklapanja stožaca –
piramidalni snopovi su bez preklapanja ispunjavali cijeli prostor oko izvora (Slika 2‐7a).
Međutim, refleksije se i dalje ne računaju adaptivno ‐ kod refleksija od kutova i malih
nepravilnosti na plohama, reflektirani se snop ne dijeli, nego aproksimira. Lewers se u svojem
rješenju usredotočio na difuzne refleksije, koje je riješio sustavom razmjene zračenja (vidi
poglavlje 2.6.7) .
17
Daljnji pomak u razvoju metode čini Farina 1995. godine [106, 79, 68], koji koristeći metodu
praćenja snopova razvija komercijalnu simulaciju Ramsette. U svojoj implementaciji Farina
snopove naziva piramidama, a uspješno je primjenjuje na simulaciju nekoliko poznatih
talijanskih koncertnih dvorana i teatara. U početku je algoritam računao samo zrcalne
refleksije, dok je u kasnijim verzijama proširen i na difuzne refleksije [78]. Algoritam je
uspješno provjeren mjerenjem, kako u laboratorijskim uvjetima, tako i u stvarnosti.
Usporedbom mjerenih i simuliranih rezultata, primijećeno je da se bez obzira na povećanje
broja piramida, ne može postići točnost veća od jednog određenog praga. Uzrok ovome je u
činjenici da ovaj model nije refleksije piramida računao adaptivno, na način da se prilagođavaju
geometriji refleksivne plohe. Jedan ulazni snop rezultira uvijek samo jednim reflektiranim
snopom, iako u stvarnosti on može obasjavati više ploha pod različitim kutovima. To znači da
se u obzir ne uzimaju neke putanje zvuka, što ograničava točnost.
Sljedeći korak u razvoju metode praćenja snopova napravio je Drum 1997. godine s
adaptivnom metodom praćenja snopova [76]. Do tada poznatu metodu praćenja snopova
proširuje s adaptivnim algoritmom refleksije (vidi poglavlje 2.6.6). Difuzne refleksije rješava
kao i Lewers pomoću metode razmjene zračenja. U svom radu obavlja usporedbu svoje
adaptivne metode, s metodama virtualnih izvora i praćenja zraka, te dokazuje njenu
superiornost po pitanju točnosti i brzine. Svoju metodu provjerio je i mjerenjem, a određene
netočnosti mogu se objasniti činjenicom da u obzir nije uzeo fenomen difrakcije zvučnog vala.
Slika 2‐9 – a) jednostavna refleksija snopa, b)
refleksija snopa od kuta prostorije, c) refleksija od
malih posmaknutih ploha
a) b)
c)
18
Daljnji doprinos razvoju ove metode daju Funkouser i dr., koji 2004. godine razvijaju algoritam
praćenja snopova za interaktivne primjene u arhitektonskoj akustici [34]. Oni su pokazali da se
uz određeno predprocesiranje može uspješno obavljati interaktivna auralizacija zvuka u
uredskom i gradskom okruženju. Na taj način se uz stacionarne izvore zvuka može za
pokretnog slušatelja vršiti auralizacija u realnom vremenu. Algoritam se temelji na simulaciji
prostora metodom prilagodljivog praćenja snopova, koja računa akustiku prostora (širenje
snopova zvuka), napose, prije same auralizacije. Na taj način se za interaktivnu auralizaciju
ostavlja samo manji dio proračuna, koji se može obavljati u realnom vremenu. Osim ove
interaktivne metode, važan doprinos ovog rada je i u tretiranju difrakcije, koja je simulirana
prema općoj teoriji difrakcije (vidi poglavlje 2.6.8). Autori su pokazali da difrakcija u uvjetima
uredske i gradske akustike, gdje postoji puno oštrih kutova, daje vrlo važan doprinos vjernoj
zvučnoj slici.
Slika 2‐10 – Četvrtasti snopovi (frusta) i njihovo dijeljenje
Chandak i Lauterbach [12, 5] su 2007. predstavili metodu također izrađenu za interaktivne
aplikacije. U tom se algoritmu također koristi praćenje snopova, međutim ti snopovi nisu
prilagodljivi okolini – njihov presjek je uvijek kvadrat. Autori nazivaju takav snop imenom
"frusta" (slika 2‐10). Nailaskom na prepreku, gdje se ne reflektira cijeli snop, on se dijeli na
četiri jednaka dijela, pa se onda za te dijelove testira prolaz/refleksija. Naravno, ovakva
metoda unosi određenu grešku, jer se geometrija snopa ne prilagođava točno geometriji
okoline. Prednost ove metode jest u njenoj brzini.
Laine i dr. 2009. godine u svom radu [3] daju prikaz još jednog akustičkog algoritma praćenja
snopova prilagođenog interaktivnim primjenama. Algoritam tretira samo zrcalne refleksije, bez
difrakcije, te za modele umjerene složenosti daje dobre rezultate.
19
2.6.5 Korištenje metode praćenja snopova u drugim područjima osim akustike
Metoda praćenja snopova koristi se osim u akustici i u vizualizacijama. Ona je prisutna već
duže vrijeme, od osamdesetih godina prošlog stoljeća [89]. Međutim praćenje snopova u
vizualizacijama, nije tako rašireno kao metoda praćenja zraka, niti u znanstvenom niti u
komercijalnom smislu. Korištenje metode praćenja snopova u vizualizacijama započelo je sa
simulacijom kaustičnog efekta, prilikom interakcije svjetla i vodenih površina [19, 121, 20].
Razvoj metode za ovu svrhu traje od 1990. do danas. Primjena se proširila sa simulacije
interakcije svjetla i vode, te na sve ostale situacije gdje dolazi do kaustike, primjerice kod
vizualizacije zaobljenih objekata od stakla [17]. Osim za simulaciju efekta kaustike, metoda
praćenja snopova koristi se i za proračun vidljivosti i simulaciju mekanih sjena. Takovu
primjenu prikazali su 2005. Laine [25], te 2007. Overback i dr. [18].
Kod metode praćenja zraka u vizualizacijama, postoje dvije vrste postupaka s obzirom na
praćenje višestrukih refleksija: kod postupka ray‐casting ne prate se daljnje refleksije, dok se
kod postupka ray‐tracing prate daljnje refleksije. Kod metode praćenja snopova u
vizualizacijama, nije izražena ova distinkcija, već se pod istim terminom javljaju oba koncepta.
Kod metode praćenja snopova u akustici se uvijek računaju višestruke refleksije, što u velikoj
mjeri usložnjuje proračun. Razlog jest u tome što se prilikom svake refleksije snop dijeli zbog
prilagođavanja okolnoj geometriji, pa se naknadno širenje, umjesto samo za jedan snop,
računa za više snopova.
U posljednjih deset godina, metoda praćenja snopova koristi se i za simulaciju širenja
elektromagnetskih valova, čija je frekvencija van vidljivog spektra. Najčešće su to frekvencije
na kojima radi mobilna telefonija, te se koriste za predviđanje pokrivenosti urbanih područja
signalom [2, 42, 37]. U ovoj primjeni računa se propagacija, refleksija i difrakcija
elektromagnetskog vala, međutim za sada se simulacije odvijaju u 2D.
20
2.6.6 Prilagodljivo praćenje snopova
Jedna od glavnih prednosti metode praćenja snopova jest što je prostorno koherentna.
Snopovima je ispunjeno cijelo područje oko izvora zvuka, pa je stoga moguće detektirati sve
moguće putanje zvuka.
Kod refleksija često dolazi do situacija poput onih prikazanih na slici 2‐11:
Slika 2‐11 – Problem sa snopovima čija se refleksija
ne događa samo na jednom poligonu
Na slici 2‐11a prikazana je situacija kada snop prije nego dođe do zida nailazi na prepreku, na
način da ga prepreka siječe samo u jednom dijelu. U stvarnosti dolazi do tri refleksije, jedne od
prepreke, a druge dvije nastaju kada ostatak snopa naiđe zid. Klasična metoda praćenja
snopova ovu situaciju idealizira na način da računa refleksiju samo jednog snopa. Zbog ove
idealizacije neke od mogućih putanja zvuka se ne uzimaju u obzir, te postoji mogućnost
pogreške.
Druga kritična situacija prikazana je na slici 2‐11b gdje snop nailazi na prepreku, međutim ta
prepreka iako jedinstvena, sastavljena je od poligona koji u odnosu na snop leže pod različitim
kutom. U stvarnosti se snop dijeli na onoliko dijelova, koliko poligona ima. Refleksija se zatim
događa od svakog poligona pojedinačno, ovisno o kutu između njega i upadnog snopa.
Klasična metoda snopova i ovu situaciju idealizira, te računa refleksiju samo jednog snopa.
Zbog toga se i ovdje zanemaruju neke potencijalne putanje zvuka, pa se otvara mogućnost
greške.
a) b)
21
Kako bi se izbjegle ovakve greške razvijena je prilagodljiva metoda praćenja snopova [96, 34].
Ova metoda prilikom gore navedenih situacija, dijeli upadni snop na segmente, te zatim
refleksije računa za svaki od novonastalih segmenata. Na taj način se upadni snopovi
prilagođavaju geometriji prostora u kojem se nalaze. Na slici dolje prikazana je ilustracija
procesa dijeljenja.
Slika 2‐12 – Dijeljenje upadnog snopa kod
prilagodljive metode praćenja snopova
Na slici je prikazana jedna vrlo složena situacija. Snop nailazi na zid br. 3, ali je površina snopa
veća od samog zida. Jedan dio "viška" snopa zahvaća pod, a drugi dio nastavlja širenje kroz
prostor, dok ne naiđe na uvučene zidove br. 2 i 1. Kod prilagodljive metode praćenja snopova
u ovom slučaju se upadni snop dijeli na četiri sastavna dijela – svaki za svoj reflektivni poligon
(zid ili pod). Nakon što se upadni snop podjeli, reflektirani snopovi se računaju posebno, svaki
ovisno o geometrijskim i apsorpcijskim karakteristikama pojedinog poligona.
Na ovaj način zadržava se prostorna koherencija i nakon refleksije, a ne samo u prostoru
izravnog širenja zvuka. Naravno neki od reflektiranih snopova, u ovom slučaju br. 3 i 4, će se
djelomično preklapati, zato jer su zidovi međusobno konkavno postavljeni. Ovo međutim nije
greška, jer će se ista pojava dogoditi i u stvarnosti.
S obzirom na oblik snopa, odnosno njegov presjek, te osnovni element kojim je opisana
geometrija, razni autori imaju razne pristupe. Tako Overback i dr. u [18] koristi snop
poligonalnog presjeka, koji se presijeca s geometrijom temeljenom na trokutima, te stoga u
22
interakciji snopa sa geometrijom imamo operacije poligon‐trokut. Drumm [96] i Funkouser
[34] također koriste snopove poligonalnog presjeka, međutim, u svojim simulacijama i
geometriju temelje na poligonima, pa su geometrijske operacije vrste poligon‐poligon.
2.6.7 Difuzne refleksije i praćenje snopova
Difuzne refleksije daju važan doprinos zvučnoj slici, jer se samo mali broj reflektivnih ploha
može aproksimirati potpuno zrcalnim refleksijama. Postoji nekoliko različitih implementacija
proračuna difuznih refleksija. Svaki od tih modela dijeli ukupnu reflektiranu energiju zvučnog
vala na zrcalnu i difuznu. Udio difuzne refleksije u ukupnoj energiji za svaki pojedini materijal
definiran je koeficijentom difuznosti.
Jedna od najčešćih metoda u vizualizacijama je metoda razmjene zračenja. U akustičkim
simulacijama ovakvu metodu koriste Lewers i Drumm [96] – te je nazivaju sustavom razmjene
zračenja. Kod ovog sustava svaka ploha predstavlja difuzni izvor zvuka, koji zrači difuznu
energiju u prostor, odnosno na svaku vidljivu plohu (slika 2‐13).
Slika 2‐13 – Difuzna energija donje plohe se
zračenjem prenosi na ostale tri plohe
Proračun se obavlja na način, da se pomoću metode snopova računa faktor vidljivosti za svaku
kombinaciju dvaju ploha. Prilikom praćenja snopova, osim energije koja se prenosi zrcalnom
refleksijom, na temelju koeficijenta difuznosti, svaka ploha prima određenu količinu difuzne
akustičke energije. Ta se energija zatim predaje svim plohama za koje postoji vidljivost. Količina
predane energije svakoj pojedinoj vidljivoj plohi, računa se pomoću koeficijenta vidljivosti.
Nakon obavljenog procesa razmjene energije, računa se utjecaj difuzne energije ploha na
prijemnik. Doprinos ukupnoj energiji koja se predaje prijemniku, računa se tako da se izvrši
povratno praćenje snopova s ishodištem u prijemniku, te samo izravnim snopovima, bez
23
refleksija. Na taj način se pomoću snopova detektira koliki je dio pojedine plohe vidljiv
prijemniku. Razmjerno toj vidljivosti, ukupni difuzni impulsni odziv svake plohe se zatim
pridodaje konačnoj zvučnoj slici na mjestu prijemnika.
Osim ove metode za proračun difuznih refleksija u praksi postoje i druge, poput metode koju
koristi Farina [77, 78].
2.6.8 Difrakcija i praćenje snopova
Tsingos i dr. pokazali su da se metoda praćenja snopova može proširiti, kako bi se u obzir
uzela i difrakcija [64, 34]. Difrakcija je inače važan fenomen, posebno u analizi gradske buke, s
puno zaklanjajućih ploha. U takvim sredinama, bez simuliranja difrakcije, nije moguće ostvariti
vjernu simulaciju. Kada se u takvim sredinama interaktivno krećemo kroz scenu, često
naprasno upadamo u tzv. "mrtve zone", gdje je geometrija takva da nema zrcalnih refleksija.
Ukoliko se u simulaciji ne uzimaju u obzir difuzne refleksije, na ovakvim mjestima zvučni tlak
pada na nulu, što je u suprotnosti sa svakodnevnim iskustvom iz stvarnog svijeta [64].
Slika 2‐14 – Difrakcija modelirana prema općoj teoriji
difrakcije
Uzrok difrakcije su oštri rubovi između dviju reflektivnih ploha. Ovi rubovi su beskonačno tanki,
pa se kod praćenja zraka pojavljuje problem "aliasinga". Kod metode praćenja snopova rubovi,
koji su potencijalni uzročnici difrakcije, mogu se otkriti bez rizika od "aliasinga". Kada se u
izvršenju algoritama praćenja snopova naiđe na rub, generira se snop koji sadrži potencijalne
putanje zvuka nastalog difrakcijom (slika 2‐14). U idealnom slučaju takav snop treba sadržavati
sve moguće putanje zvuka, koje kod difrakcije ispunjaju cijeli prostor oko ruba. Takvi pristup
24
nije praktičan jer uzrokuje eksplozivni rast broja snopova i usporenje proračuna. Zato se uvodi
aproksimacija da se snop nastao difrakcijom prostorno ograniči, ali na način da se ne umanji
realnost simulacije [64]. On se zatim obrađuje zajedno s ostalim snopovima te je podložan
daljnjim refleksijama i difrakcijama.
2.6.9 Refrakcija i praćenje snopova
Prema saznanju autora ove disertacije, niti jedna metoda za simulaciju širenja zvuka, temeljena
na praćenju snopova, ne obuhvaća refrakciju. Za razliku od područja akustičkih simulacija, u
vizualizacijama je simulacija refrakcije pomoću metode praćenja snopova prisutna [17, 19].
Ona je najčešće namijenjena simulaciji efekta kaustike, gdje refraktirane zrake svjetla
konvergiraju u jednu točku. Ovaj efekt primjetan je prilikom prolaska svjetla kroz zakrivljene
staklene objekte ili kod igre loma svjetla na stjenkama bazena. Zanimljivo je da su još u jednom
od prvih radova s područja praćenja snopova u vizualizacijama Heckbert i Hanrahan [127]
uvrstili refrakciju, pored refleksije kao simulirani fenomen. Analizirajući refrakciju došli su do
sličnog zaključka kao autor ove disertacije, a to je da je metodom praćenja snopova zbog
nelinearnosti fenomena refrakcije nju moguće simulirati samo s određenom točnošću (vidi
poglavlje 3.5.6.1).
2.7 Zaključak
Na slici 2‐15 prikazan je graf koji oslikava najpogodnija područja primjene pojedinih vrsta
simulacija. Na ordinati je prikazana frekvenciju simuliranog zvučnog vala, a na apscisi duljina
vremenskog okvira koji se simulira (kašnjenje refleksija).
Numeričke metode su pogodne za niže frekvencije, dok se na višim frekvencijama drastično
povećava kompleksnost proračuna, pa simulaciju putem numeričkih metoda nije zgodno
obavljati na radnim stanicama, već samo na paralelnim računalima ili računalnim grozdovima
[112]. Geometrijske metode su pogodne samo za više frekvencije, jer valna duljina mora biti
manja od simulirane geometrije. Metoda virtualnih izvora je zgodna samo za kraće simulirane
vremenske okvire, zbog kompleksnosti proračuna za refleksije višeg reda. Za kasnije refleksije
koriste se metode praćenja zraka i snopova.
25
Slika 2‐15 – Razne vrste simulacije pogodne su za razna frekvencijska područja, te
za vremenski različita područja refleksija (MVI ‐ metoda virtualnih izvora, MPZ ‐
metoda praćenja zraka, MPS ‐ metoda praćenja snopova)
Na slici 2‐16 prikazan je graf sa analizom primjenjivosti pojedine metode. Na ordinati je
prikazan broj medija kroz kojih se zvuk širi, dok je na apscisi veličina scene i broj refleksija, koje
se simuliraju.
Slika 2‐16 – Odnos geometrijskih, numeričkih vrsta simulacija te PMPS
26
Za manje scene, te za simulaciju manjeg broja refleksija pogodne su numeričke metode. One
također uspješno simuliraju scene s većim brojem različitih medija. Njihova efikasnost se gubi
kada veličina scene raste (zbog kompleksnosti proračuna) i kada je potrebno računati refleksije
višeg reda (ograničenje valne jednadžbe). Za takve slučajeve zgodne su geometrijske
simulacije, kod kojih veličina scene ne igra ulogu. Osim toga, kod metoda praćenja zraka i
snopova, niti refleksije višeg reda ne predstavljaju problem. Međutim, uobičajene metode
geometrijske simulacije rade samo s jednim medijem, te ne mogu simulirati širenje u većem
broju medija.
Iz svega navedenog vidljivo je da postoji jedan tip primjena, koje nisu pogodne za simulaciju
niti numeričkim, niti dosadašnjim oblicima geometrijskih metoda. To su scene kod kojih se
zvuk širi kroz više medija, sama scena je velika u odnosu na valnu duljinu, a potrebno je
računati višestruke refleksije/refrakcije zvuka. Metoda opisana u ovoj disertaciji namijenjena je
za simulaciju takvih sredina.
27
P o g l a v l j e 3
3 METODA SIMULACIJE
3.1 Uvod
U ovom poglavlju biti će opisana metoda simulacije širenja zvučnog vala u nehomogenim
sredinama, što je glavna tema ove doktorske disertacije. Najprije će biti iznesen općeniti prikaz
metode. Nakon toga će biti detaljno opisani pojedini važni algoritmi simulacije, te će biti
objašnjeno kakve će se strukture podataka koristiti tijekom simulacije. Potom će detaljno biti
opisani fizikalni zakoni na kojima se temelje proračuni u simulaciji. Naposljetku će biti
razmotrene dvije aproksimacije korištene u simulaciji.
3.2 Opće značajke
Proširena metoda praćenja snopova, realizirana je kao prilagodljiva, što znači da se snopovi
prilikom nailaska na diskontinuitet dijele. Temeljna jedinica geometrije nisu poligoni, kao u
dosadašnjim aplikacijama [34, 96] nego trokuti. Naime, navedene aplikacije prilagođene su
analizi širenja zvuka u prostorijama, te u gradskom okruženju, gdje se zvuk širi među
zgradama. U takvim okruženjima scena je sastavljena od ravnih poligona, koji simuliraju
zidove, kao najvažnije reflektivne plohe. Kako je tema ove disertacije simulacija širenja zvuka u
nehomogenim sredinama, za očekivati je da će se one češće nalaziti u organskim ili drugim
prirodno nastalim okruženjima, čija geometrija nije sastavljena od pravilnih, ravnih poligona.
Stoga će plohe diskontinuiteta u modelu biti definirane nepravilnim trokutastim mrežama, a
temeljna jedinica za proračun geometrije bit će – trokut.
Kako se ne bi dodatno komplicirao proračun, simulacijom nisu obuhvaćene pojave difrakcije i
difuznih refleksija. Ove pojave su već u praksi dobro riješene, te se ukoliko bude potrebno,
uvijek mogu naknadno dodati postojećem modelu. Također, izvor i prijemnik se tretiraju kao
neusmjereni, odnosno u obzir neće biti uzeta njihova usmjerna karakteristika. Kako se za svaku
putanju zvuka zna pod kojim je kutom odaslana u prostor, te pod kojim je kutom primljena, u
kasnijem razvoju se jednostavno mogu u obzir uzeti i usmjerne karakteristike.
U PMPS‐u ravnopravno su tretirani i medij i objekti na kojima se događa refleksija. Scena je
sastavljena od materijala (poliedara) i diskontinuiteta (ploha) među njima. Na
diskontinuitetima se, kao i u stvarnosti, događaju refleksija i refrakcija zvučnog vala. Na taj
28
način, prilikom nailaska na prepreku, prati se i onaj dio zvuka koji "prolazi" kroz nju, te
nastavlja širenje iza prepreke, kroz novi medij. Do sada se taj način širenja zvučnog vala u
geometrijskim simulacijama u pravilu zanemarivao.
3.3 Struktura scene
Cilj PMPS‐a jest što vjernija i učinkovitija simulacija širenja zvučnog vala u složenim sredinama.
Pod tim se misli na sredine koje su geometrijski složene, gdje se zvuk širi kroz više materijala. U
dosadašnjim akustičkim simulacijama [34, 89, 96] val se širi kroz prostor ispunjen jednim,
homogenim medijem. Cilj ovoga rada je proširenje i prilagodba metode praćenja snopova,
tako da osim takvog jednostavnog slučaja može obuhvatiti širenje složenom sredinom
ispunjenom raznorodnim medijima.
3.3.1 Nova struktura scene
Kod klasičnih akustičkih simulacija geometrijskim metodama, scena koja se simulira definirana
je samo pomoću reflektivnih ploha, a prostor između njih ispunjen je jednim, homogenim
medijem, zrakom (Slika 3‐1). Zvuk se u takvoj sceni širi kroz medij do nailaska na reflektivnu
plohu, na kojoj se potom događa refleksija, te se zvučni val nastavlja širiti kroz prostor do
slijedeće refleksije ili nailaska na prijemnik. Ograničenje ovakve simulacije je u tome što se
prilikom nailaska na neki objekt u sceni tretiraju samo refleksije, a ne i prijenos, odnosno
refrakcija zvučnog vala.
Slika 3‐1 – Scena u klasičnoj simulaciji geometrijskom
metodom
29
Drugo ograničenje je u tome što scena ne može biti ispunjena sa dva medija, na primjer
zrakom i vodom. Ova ograničenja mogu se nadvladati ako se scena definira kao na slici dolje.
Diskontinuitet
Izvor
Prijemnik Voda
Polistiren
Zrak
REFLEKSIJA
REFRAKCIJA
REFRAKCIJA
Slika 3‐2 – Scena sa više homogenih medija
Ovdje je scena sastavljena od više različitih materijala (polistiren, voda, zrak). U ovakvom
postavu, zrak i voda, koji se inače podrazumijevaju kao medij, definirani su na isti način kao
polistirenske stjenke, koje se inače smatraju objektom. Svi ti materijali su u sceni međusobno
odijeljeni plohama diskontinuiteta, na kojima se događa refleksija i refrakcija zvučnog vala. U
ovako definiranoj sceni širenje se odvija na sljedeći način:
- zvučni val se najprije od izvora širi kroz jedan materijal – vodu
- potom nailazi na plohu diskontinuiteta između zraka i vode
- na diskontinuitetu dolazi do refrakcije, nakon koje se zvučni val manjim intenzitetom
dalje širi zrakom
- na istom diskontinuitetu također dolazi i do refleksije, pa se zvučni val dalje širi vodom
- nakon širenja vodom, zvučni val nailazi na diskontinuitet voda/polistiren
- na ovom diskontinuitetu se zvučni val dijelom reflektira natrag u vodu, a manjim
dijelom refrakcijom ulazi u polistiren, te se širi u njemu
30
Ovakva scena je realnija od one prethodne, tipične za klasične geometrijske simulacije.
ScenaIzvor:
- vrsta objekta: točka- dimenzija: 0D
Prijemnik:- vrsta objekta: točka
- dimenzija: 0D
Volumeni (mediji) – mogu biti homogeni i nehomogeni:- vrsta objekta: volumen
- dimenzije: 3D
Diskontinuiteti – na njima se događa refleksija i refrakcija
- vrsta objekta: ploha- dimenzije: 2D
Slika 3‐3 – a) Sastav scene u klasičnoj metodi
praćenja snopova, b) sastav scene u metodi praćenja
snopova u nehomogenim sredinama
Dakle, ovakav način definiranja scene – u kojem se umjesto jednog medija i reflektivnih ploha,
ona sastoji od više materijala, te ploha diskontinuiteta među njima ‐ omogućava proširenje
područja primjene simulacije na slučajeve, gdje se zvuk širi kroz više homogenih medija, te na
one gdje pojedini medij nema homogena svojstva. Na taj način se proširuje područje primjene
simulacije, uz određeno usložnjavanje modela (Slika 3‐3). Ovakav pristup je znanstveno
originalan.
Slika 3‐3 prikazuje odnos scene u klasičnoj metodi praćenja snopova i u PMPS‐u. Kod klasične
metode praćenja snopova postoji tri vrste dijelova scene: izvor, prijemnik i reflektivne plohe.
a)
b)
31
Kod proširene metode praćenja snopova postoje četiri vrste objekata: izvor, prijemnik, plohe
diskontinuiteta i volumeni.
3.3.2 Homogeni medij
Objekti iz stvarnog svijeta u PMPS‐u su idealizirani homogenim medijima. Homogeni mediji su
oni mediji čija se fizikalna svojstva ne mijenjaju na čitavom prostoru koje medij ispunjava.
Ovakvi mediji su geometrijski definirani jednim poliedrom, koji je ograničen plohama
diskontinuiteta. Plohe diskontinuiteta dijele poliedar predmetnog medija od susjednih medija.
Što se tiče širenja zvučnog vala ovi mediji su opisani s tri parametra:
- atenuacija – uzrokuje smanjenje akustičkog intenziteta prilikom širenja u mediju
- brzina vala – označava brzinu zvuka u mediju, a koristi se prilikom proračuna refrakcije
sukladno Snellovom zakonu
- gustoća medija – zajedno sa brzinom određuje impedanciju medija, koja određuje
koeficijent refleksije/transmisije zvučnog vala prilikom nailaska na diskontinuitet
Kada je scena sastavljena od više homogenih medija, prilikom širenja zvuka dolazi do
refrakcije. Refrakcija se dešava na granici dvaju medija – na plohama diskontinuiteta. Evo
primjera takve scene iz stvarnog svijeta:
riječna voda
morska voda
izvor
prijemnik
Slika 3‐4 – Refrakcija zvuka na granici dvaju medija
32
Na ušću rijeka dolazi do dodira riječne vode s morskom vodom. Kako je riječna voda rjeđa od
morske, ona se zadržava na površini, te je u primjeru (Slika 3‐4) prikazana kao gornji sloj. Donji
sloj je morska voda. U primjeru se izvor zvuka nalazi se u vodi ‐ u gornjem sloju, dok se nalazi u
morskoj vodi – u donjem sloju. Zvučni val se širi najprije vodom, a potom morskom vodom. Na
granici dvaju medija dolazi do loma zvučnog vala sukladno Snellovom zakonu loma, te on zbog
toga mijenja smjer i intenzitet.
3.3.3 Nehomogeni medij
Nehomogenost medija može biti gradijentna, kada u njoj postoji neka pravilnost ili stohastička,
kada se ona ne može opisati nekim matematičkim modelom.
Gradijentno nehomogeni medij je onaj, čija se svojstva mijenjaju kontinuirano duž jedne ili više
dimenzija. Ovakav medij u PSPM‐u se može simulirati diskretizacijom jednog većeg
nehomogenog medija na manje homogene dijelove. Ova diskretizacija se može obavljati
eksplicitno, prilikom definiranja scene ili implicitno, da bude dio algoritma simulacije. U prvoj
fazi razvoja algoritma PSPM‐a ona se vrši eksplicitno. Evo primjera gradijentnih nehomogenih
medija:
o morska voda, s gradijentnom promjenom temperature
o zrak u ljetno jutro ili predvečerje, sa izrazitom gradijentnom promjenom
temperature (Slika 3‐5)
Slika 3‐5 – negativna temperaturna inverzija (zrak u ljetnoj
večeri) – primjer gradijentnog nehomogenog medija
Kod gradijentnih promjena dolazi do postupne refrakcije, te se zrake zvučnog vala zakreću
kontinuirano, ovisno o prolasku kroz slojeve s promjenjivim svojstvima. Ovakvi mediji se u
33
sceni mogu definirati na način da se poliedar, koji opisuje takav medij, podjeli na više poliedara
koji predstavljaju homogene medije. Svaki od novonastalih homogenih poliedara predstavlja
zaseban objekt u sceni, te ima svoje parametre, kako je navedeno u prethodnom poglavlju. Na
taj način se kontinuirana promjena svojstava medija diskretizira (Slika 3‐6).
Temp (°C)
toplo
hladno
Slika 3‐6 – Gradijentni nehomogeni medij simuliran
diskretizacijom sa više homogenih medija
Pod nehomogenim stohastičkim medijima podrazumijevaju se mediji čija svojstva nisu ista na
cijelom području, a u toj promjeni nije moguće definirati određenu pravilnost, kao kod
gradijentnih medija. Ove promjene ponašaju se sukladno određenoj statističkoj razdiobi. Evo
nekoliko primjera:
o ljudski mozak, sastavljen od moždanog tkiva i likvora, nepravilnih oblika (Slika
3‐7)
Slika 3‐7 – MRI slika ljudskog mozga – primjer
stohastičkog nehomogenog medija
o morsko dno, kao prepreka od koje se odbija ultrazvučni val
34
Za simulaciju ovakvih medija pogodne su numeričke metode. U PMPS‐u se u sadašnjem obimu
simulacije ovakvi mediji ne tretiraju.
3.3.4 Objekti scene
3.3.4.1 Plohe diskontinuiteta
Plohe diskontinuiteta su plohe na kojima se dodiruju dva medija. U sceni su to plohe
zajedničke dvama poliedrima koji predstavljaju dva različita medija. Važno je naglasiti da su u
sceni sa stanovišta definicije geometrije poliedri definirani pomoću ploha diskontinuiteta, a ne
obratno. Razlog tomu je efikasnost simulacije sa stanovišta zahtjeva za memorijom, jer ukoliko
bi svaki poliedar imao definirane sve plohe diskontinuiteta koje ga opasuju, memorija
potrebna za pohranu scene bi se udvostručila – to je stoga što svaka ploha diskontinuiteta
pripada dvjema poliedrima.
Plohe diskontinuiteta definirane su kao nepravilne trokutaste mreže. Razlog izbora ovakve
geometrijske strukture leži u činjenici da je proširena metoda praćenja snopova prilagođena
simulaciji nehomogenih sredina. Takve su sredine često nepravilnih amorfnih oblika, pa se
stoga izbor nameće kao logičan. Naime, pomoću ovakve strukture se uz određena manja
odstupanja može opisati bilo kakav geometrijski oblik.
Drugi autori [34, 96, 106] kao strukturu kojom opisuju reflektivne plohe koriste uglavnom
poligone. Tomu je razlog što su se oni usredotočili na simulacije u arhitekturi ili u gradskim
sredinama. U takvom okruženju prevladavaju ravne plohe, što predstavlja jednostavniji slučaj –
pa se za reflektivne plohe mogu koristiti poligoni.
Reflektivna ploha koja omeđuje jedan poliedar ne mora nužno biti jedinstvena, kao što se vidi
iz slike dolje (slika je prikazana u dvije dimenzije radi jednostavnosti). Na slici je prikazana
scena sa tri homogena materijala: zrakom, staklom i vodom. Poliedar zraka omeđen je s
unutarnje strane složenom plohom koju čine plohe D1 (zrak‐staklo) i D2 (zrak‐voda). Poliedar
stakla omeđen je plohama diskontinuiteta D1 (staklo‐zrak) i D3 (staklo‐voda). Poliedar vode
omeđen je plohama diskontinuiteta D2 (voda‐zrak) i D3 (voda‐staklo).
Primjetno je da vanjski poliedar sa zrakom, koji okružuje sve ostale poliedre, nema vanjsku
plohu diskontinuiteta. Naime, smatra se da se vanjska ploha diskontinuiteta nalazi na velikoj
35
udaljenosti. Stoga je doprinos snopova reflektiranih od nje zanemariv, pa se oni ne trebaju niti
računati.
Slika 3‐8 – Plohe diskontinuiteta
Plohe diskontinuiteta ne trebaju biti zatvoreni, potpuni poliedri, već se dijele na segmente.
Ovu podjelu je potrebno izvršiti vodeći se slijedećim pravilima:
1) jedan segment cijelom površinom dijeli ista dva medija – niti na jednom dijelu segmenta s
njegove jedne ili druge strane nema dodira između dva različita medija – ako postoji, potrebno
je segment podijeliti sukladno ovom pravilu,
2) jedan segment obuhvaća cijelu dodirnu površinu dva ista medija – ne postoje dva susjedna
segmenta koja dijele ista dva medija – ako postoje, potrebno ih je ujediniti sukladno ovom
pravilu.
Kada se svi segmenti plohe diskontinuiteta ujedine trebaju činiti jednostavni poliedar (vidi
dodatak 7.1). To znači da ne smije biti "rupa" na oplošju takovog, ujedinjenog poliedra, te da
taj poliedar nije sastavljen od više jednostavnih poliedara (poput "sijamskih blizanaca").
Poliedri entiteta i plohe diskontinuiteta tvore jedinstvenu topološku strukturu, koja
jednoznačno definira prostor. Ovakva struktura se zove krilati brid (eng. "winged‐edge")
struktura. Detalji strukture prikazani su poglavlju 3.3.5. Topološke veze unutar ove strukture
36
služe kako bi se prilikom proračuna ubrzalo procesiranje. Pomoću te strukture se bez
pretraživanja scene može odrediti u koji medij snop prelazi kod nailaska na plohu
diskontinuiteta. Izvorni i ciljni medij je potrebno znati, kako bi se mogao izračunati koeficijent
refleksije zvučnog vala (temeljem akustičkih impedancija dvaju medija).
Svaka ploha diskontinuiteta sastavljena je od mreže trokuta. Trokuti, koji čine mrežu, u
potpunosti pokrivaju plohu, tako da između njih nema praznina. Svaki od trokuta sastavljen je
od tri ruba. Jedan rub dijeli dva trokuta i pripada samo tim dvjema trokutima. Rubovi i trokuti
također tvore strukturu krilati brid, slično kao i poliedri sa plohama diskontinuiteta. Na taj
način je uspostavljena topološka povezanost trokuta unutar plohe diskontinuiteta. Ove
topološke veze pomoći će prilikom algoritma dijeljenja snopova, kako bi se što brže pronašli svi
trokuti koje jedan snop osvjetljuje (poglavlje 3.4.3.3).
3.3.4.2 Entiteti
Entiteti su poliedri unutar kojih je prostor ispunjen jednim medijem. Entiteti se u PMPS‐u
definiraju putem ploha diskontinuiteta. U najjednostavnijem slučaju entitet ima samo jednu
plohu diskontinuiteta – to se događa ako je entitet okružen samo jednim entitetom (Slika 3‐9).
Slika 3‐9 – Entitet E1 ima samo jednu plohu
diskontinuiteta – D1
Kako je ploha diskontinuiteta definirana kao ploha koja razgraničuje dva medija (entiteta) –
stoga u ovom slučaju entitet sa staklom E1 ima samo jednu plohu diskontinuiteta ‐ D1.
37
Ukoliko je entitet okružen s više drugih entiteta, sukladno tome ima i više ploha
diskontinuiteta, kao na slici 3‐10. U ovom primjeru entitet ispunjen vodom je okružen sa dva
entiteta – entitetom stakla i entitetom zraka.
Voda
Staklo
D1 D1
D1 D1
D1
D1
D1
D2
D3 D3
D3
E1 E2
E3
Zrak
Slika 3‐10 – Entiteti i plohe diskontinuiteta
Entitet vode E1 ima dvije plohe diskontinuiteta: D2 i D3. Prva ploha diskontinuiteta – D2 dijeli
entitet vode E1 od entiteta zraka E3. Druga ploha diskontinuiteta – D3 dijeli entitet vode E1 od
entiteta stakla E3. Plohe D2 i D3 zajedno u potpunosti obuhvaćaju poliedar E1, pa je stoga
njima entitet E1 u potpunosti definiran.
Ovaj način opisivanja entiteta omogućava simuliranje ne samo konveksnih nego i konkavnih
entiteta – što se vidi na slici 3‐10. Međutim kako bi se ovom simulacijom mogli računati i
konkavni entiteti koji sadrže „otoke“, odnosno koji u potpunosti obuhvaćaju druge entitete,
potrebno je definiciju scene proširiti sa još jednim međuslojem – ljuskama.
Sada definicija scene ima hijerarhiju entitet ‐ ljuska ‐ ploha diskontinuiteta, odnosno jedan
entitet može sadržavati jednu ili više ljuski, dok jedna ljuska može sadržavati jednu ili više
ploha diskontinuiteta. Svaki entitet ima barem jednu ljusku – vanjsku, dok može imati jednu ili
više unutarnjih ljuski. Na slici 3‐11 prikazan je primjere takve scene:
38
Voda
Staklo
D1 D1
D1 D1
D1
D1
D1
D2
D3 D3
D3
E1 E2
E3Zrak
E4 D4
Slika 3‐11 – Hijerarhija za opis entiteta s „otocima“:
Entiteti‐ljuske‐plohe diskontinuiteta
Ova scena za razliku od prethodne sadrži i četvrti entitet imena E4, koji je omeđen plohom
diskontinuiteta D4. Struktura ove scene je slijedeća:
- entitet E1 (voda)
o ljuska S1 (vanjska)
ploha diskontinuiteta D2 (voda/zrak)
ploha diskontinuiteta D3 (voda/staklo)
o ljuska S2 (unutarnja)
ploha diskontinuiteta D4 (voda/zrak)
- entitet E2 (staklo)
o ljuska S3 (vanjska)
ploha diskontinuiteta D1 (staklo/zrak)
ploha diskontinuiteta D3 (staklo/voda)
- entitet E3 (zrak)
o ljuska S4 (unutarnja)
39
ploha diskontinuiteta D1 (zrak/staklo)
ploha diskontinuiteta D2 (zrak/voda)
- entitet E4 (zrak)
o ljuska S5 (vanjska)
ploha diskontinuiteta D4 (zrak/voda)
Da bi entitet bio ispravno definiran u sceni mora zadovoljiti sljedeće kriterije:
- entitet mora imati barem jednu ljusku – vanjsku
- entitet može imati više unutarnjih ljusaka
- iznimka od ovog pravila je vanjski entitet, koji ima samo jednu unutarnju ljusku, bez
vanjske
Da bi ljuska bila ispravno definirana mora zadovoljavati sljedeće kriterije:
- svaka ljuska mora imati barem jednu plohu diskontinuiteta
- svaka ljuska mora činiti jednostavni poliedar (vidi dodatak 7.1) – svi rubovi nepravilne
trokutaste mreže, koja tvori ljusku, trebaju pripadati točno dvjema trokutima
3.3.4.3 Izvor
U ovom radu simulacija se izvodi za jedan izvor zvuka. Sam model je podesan za proračun
propagacije više izvora zvuka, na način da se simulacija izvrši sekvencijalno prvo za jedan izvor,
zatim za drugi izvor i.t.d.
Izvor zvuka je karakteriziran sa svojim položajem u prostoru – koordinatama. U PMPS‐u je izvor
zvuka neusmjeren, a sam model je otvoren za naknadno računanje s usmjerenim izvorima.
Položaj izvora u PMPS‐u je stacionaran.
40
3.3.4.4 Prijemnik
U simulaciji postoje dvije mogućnosti proračuna: mogućnost proračuna za jednu točku u
prostoru, odnosno za prijemnik sa definiranom lokacijom; te proračun zvučne slike za jednu
plohu, prema određenom rasteru. U oba slučaja radi se o neusmjerenom prijemu. Ukoliko je
riječ o proračunu zvučne slike prema određenom rasteru, za svaku pojedinačnu točku rastera
potrebno je iznova raditi samo posljednji dio simulacije – generiranje rezultata (poglavlje
3.4.4), zato jer je zbog stacionarnog izvora i geometrije scene, rezultat praćenja snopova isti za
sve točke proračuna.
3.3.5 Topologija scene
Kako bi se scena, koja je opisana u dosadašnjim poglavljima, mogla efikasno obrađivati,
potrebno je definirati njenu topološku strukturu. Iako se simulacija može vršiti koristeći samo
podatke o geometriji scene, takav proračun je jako spor – za njegovo ubrzanje služe topološke
informacije.
Topologija scene određena je na dvije razine:
- prva razina je plošna, gdje su odnosi trokuta unutar TIN‐a ploha diskontinuiteta
definirani s potpunom strukturom krilatog brida: trokut‐stranica‐trokut
- druga razina je prostorna, gdje su međusobni odnosi volumena predstavljeni
pojednostavljenom strukturom krilatog brida strukturom: entitet‐ploha
diskontinuiteta‐entitet.
Mreža trokuta ploha diskontinuiteta može sadržavati veliki broj trokuta. Topološka informacija
pohranjena u strukturi krilatog brida omogućava vrlo brzo pretraživanje susjednih trokuta, što
je bitno kod presijecanja snopa sa plohom diskontinuiteta. Naime, najjednostavniji algoritam
presijecanja je da se za sve trokute plohe diskontinuiteta provjeri, je li sijeku upadni snop.
Međutim, ovaj algoritam je bio izuzetno spor, jer je njegova složenost O(n*m), gdje je n ‐ broj
trokuta plohe diskontinuiteta, a m ‐ broj trokuta koji sijeku snop.
Pomoću topoloških podataka moguće je ubrzati algoritam. Takav, ubrani algoritam je slijedeći:
- nađi presjek jedne rubne zrake snopa sa plohom i odredi u kojem trokutu se on događa
41
- odredi sve susjedne trokute pomoću topoloških podataka
- ispitaj koji susjedni trokuti sijeku snop
- ponavljaj ovaj postupak se ponavlja dok se ne ispitaju svi susjedni trokuti
Ovaj algoritam ima složenost O(m*p), gdje je m ‐ broj trokuta koji sijeku snop, a p ‐ prosječni
broj trokuta koji okružuju jedan trokut. Broj p iznosi najmanje 3, pa naviše. U svakom slučaju
broj p je puno manji od broja n, pa je ovaj algoritam puno brži od prvoga – upravo zahvaljujući
topološkim podacima.
Na slici dolje prikazana je struktura krilatog brida [135] trokuta plohe diskontinuiteta.
1 2
X
Y
a
b c
d e
Slika 3‐12 ‐ Struktura krilatog brida plohe
diskontinuiteta
Ona se temelji na stranicama trokuta, u kojima je pohranjena informacija o topologiji. Uz svaku
stranicu trokuta, pohranjuju se slijedeće informacije:
- vrhovi brida
- trokuti s lijeve i s desne strane brida
- bridovi trokuta s lijeve i s desne strane brida
Ovakva struktura ne funkcionira u slučaju kad poligoni nisu homogeni, odnosno kad imaju
rupe. Kako to kod trokuta u mreži plohe diskontinuiteta nije slučaj, ona u potpunosti i to vrlo
efikasno rješava pitanje detekcije susjednih trokuta. To je osnova za ubrzanje algoritma
presijecanja snopa s plohom diskontinuiteta (poglavlje 3.4.3.3).
Druga razina topologije u sceni je prostorna. Ona je realizirana preko pojednostavljene
strukture krilatog brida. Ova struktura se temelji na plohama diskontinuiteta. Uz svaku plohu
diskontinuiteta pohranjeni su slijedeći podaci:
42
- geometrija plohe diskontinuiteta
- volumeni koji se nalaze s jedne i druge strane plohe diskontinuiteta
Primjena prostorne topologije je u obradi širenja snopova kroz prostor scene. Mjesto u
algoritmu na kojem se prostorna topologija primjenjuje je prijelaz snopa iz jednog entiteta u
drugi. Kako bi se ustanovilo u koji entitet snop ulazi, nije potrebno provjeravati sve entitete u
sceni, već se iz topoloških podataka odredi, koji se entitet nalazi s druge strane plohe
diskontinuiteta. Ova metoda uvelike ubrzava proračun u slučaju složenih scena s većim brojem
entiteta.
3.3.6 Pomoćne prostorne strukture podataka
3.3.6.1 Binarno stablo dijeljenja prostora
Jedan od temeljnih algoritama simulacije je algoritam dijeljenja snopova, koji u svojoj osnovi
predstavlja algoritam skrivanja ploha. Kako bi se taj algoritam mogao uspješno i efikasno
izvoditi potrebno je geometriju scene organizirati u takvu strukturu podataka, da se iz bilo koje
točke prostora može točno i jednoznačno ustanoviti redoslijed kojim su osnovne jedinice
geometrije scene (trokuti) poredani. U ovom postupku kriju se dva problema: prvi je problem
jednoznačnosti, a drugi je problem efikasnosti.
1) Kada bi entiteti bili konveksni poliedri, tada ne bi bio problem jednoznačno ustanoviti
redoslijed trokuta, jer u konveksnim poliedrima nema međusobnog preklapanja
trokuta, s obzirom da se prema definiciji konveksnosti, iz svake točke konveksnog
poliedra vidi svaka druga njegova točka. Međutim struktura scene u PMPS‐u je
definirana dosta široko, tako da entiteti smiju biti konkavni poliedri, pa stoga postoji
mogućnost da dođe do cikličkog međusobnog preklapanja trokuta (slika 3‐13). U
takvom slučaju s obzirom da se svaki trokut istovremeno nalazi ispred i iza barem
jednog trokuta, pravi redoslijed nije moguće utvrditi.
Slika 3‐13– Cikličko preklapanje geometrije
43
2) Ukoliko zanemarimo prvi problem, te pretpostavimo da je uvijek moguće jednoznačno
utvrditi redoslijed trokuta postavlja se pitanje efikasnosti algoritma utvrđivanja
redoslijeda. Ukoliko su entiteti konveksni dovoljno bi bilo poredati trokute po njihovoj
udaljenosti od točke gledišta, što se sa algoritmom vrste "quicksort" može napraviti sa
složenosti O(n log(n)). Međutim činjenica da su dopušteni konkavni poliedri, nameće
rješenje, gdje se u dvije ugnježdene petlje treba međusobno uspoređivati preklapanje
svih trokuta koji čine poliedar. Stoga složenost prelazi u kvadratnu ‐ O(n2), što je puno
lošiji slučaj. Međutim problem cikličkog preklapanja čak i ovu lošiju mogućnost ne čini
izvedivom.
Struktura koja rješava problem jednoznačnosti i efikasnosti, a koju je odabrana u PMPS‐u, jest
binarno stablo dijeljenja prostora (eng. binary space partitioning tree ‐ BSP). BSP stablo
predstavio je Fuchs 1980. godine [129], a predstavlja strukturu u obliku stabla, gdje se
geometrija rekurzivno dijeli u konveksne dijelove pomoću hiperplohe. Svi dijelovi geometrije
koji se nalaze s prednje strane hiperplohe, svrstavaju se u jedno podstablo, dok se dijelovi koji
se nalaze s stražnje strane hiperplohe svrstavaju u drugo podstablo. Ukoliko se položaj
pojedinog dijela geometrije ne može razvrstati, jer se siječe s hiperplohom, tada se u stvarnosti
i izvrši njegovo presijecanje hiperplohom u dijelove, koji se nalaze isključivo s prednje ili sa
stražnje strane hiperplohe. Potom se presječeni dijelovi svrstaju u jedno od dva podstabla.
Postupak se rekurzivno ponavlja sve dok se podstabla ne isprazne (slika 3‐14).
Slika 3‐14– Princip BSP stabla
44
U radu prikazanom u ovoj disertaciji BSP stablo je implementirano na razini geometrije
entiteta. To znači da se trokuti svih ljuski koje čine jedan entitet zajednički organiziraju u BSP
stablo. Za hiperplohe koje će dijeliti prostor odabrani su ravnine trokuta entiteta. U slučaju da
hiperploha u procesu podjele sječe neki od trokuta entiteta, taj trokut se dijeli na manje
trokute. Podjela se obavlja na način da se novonastali trokuti nalaze isključivo sa jedne strane
hiperplohe. Na slici 3‐15 prikazana su dvije vrste podjele:
Slika 3‐15 – Podjela trokuta zbog presijecanja
hiperplohom
Ukoliko hiperploha prolazi jednim od vrhova trokuta, on će se podijeliti na dva trokuta. Ukoliko
hiperploha ne prolazi jednim od vrhova trokuta, on će se podijeliti u tri trokuta na sljedeći
način: prvo će se izvršiti podjela na jedan trokut i jedan četverokut. Četverokut će se potom,
prema Delaunayevom uvjetu, podijeliti na dva trokuta. Na taj način nastaju ukupno tri trokuta,
od kojih je jedan s prednje strane hiperplohe, a druga dva sa stražnje strane.
BSP stabla osim što rješavaju problem jednoznačnosti redoslijeda, imaju i dobru efikasnost.
Ovo je posljedica njihove strukture, koja je u obliku stabla. Fuchs i ostali u svom radu [129]
pokazuju da je prosječna očekivana složenost prolaska kroz stablo (čime se određuje redoslijed
elemenata) je O(n).
3.3.6.2 Oktalno stablo dijeljenja prostora
Neka proces praćenja snopova završava sa n snopova kojima je definirano zvučno polje u
prostoru, te neka je kao rezultat simulacije potrebno izračunati prostorni raspored razine
intenziteta zvuka rezolucije m točaka. Složenost postupka je u tom slučaju O(n*m2).
45
Naime, da bi se za određenu točku u prostoru izračunala razina intenziteta zvuka, potrebno je
za svaki od generiranih snopova provjeriti je li sadrže tu točku, te taj postupak ponoviti za sve
točke kvadratnog rastera. U realnom primjeru, simulacija će generirati desetak tisuća
snopova, a za prostorni sken uobičajena je rezolucija od 100 točaka po stranici. Kako je na
Core2Duo procesorima za izvršenje algoritma detekcije točke u snopu potrebno oko 10 ms,
proces proračuna skena za tipičnu scenu bi trajao nekoliko desetaka minuta, što je u
praktičnom radu neprihvatljivo. Stoga je bilo potrebno ubrzati ovaj postupak uvođenjem neke
od prostornih struktura, te je izabrano oktalno stablo dijeljenja prostora (eng. octree – slika
3‐16).
Slika 3‐16 – Princip oktalnog stabla
Oktalno stablo je prostorna struktura podataka, kod koje se geometrijski elementi smješteni u
nekom prostoru rekurzivno organiziraju u strukturu stabla. Metodu su predstavili [122]
Gervautz i Purgathofer 1990. kao proširenje kvartalnog stabla dijeljenja prostora. Prostor se
dijeli s tri međusobno okomite hiperplohe u osam oktanata (osmina). Geometrijski elementi
scene se dijele u osam podstabala, po jedan za svaki od osam oktanata, te se rekurzivno za
svaki od njih ponavlja postupak dijeljenja. Postupak prestaje kada je u jednom od podstabala
manje geometrijskih elemenata od zadanog praga.
U PMPS‐u se snopovi u oktalno stablo organiziraju nakon završenog procesa praćenja snopova.
Prilikom izračuna razine intenziteta zvuka u svakoj točki prostora, više nije potrebno
provjeravati sve snopove. Naprotiv, obilaskom stabla dođe se do lista u kojem je sadržana
46
točka za koju se obavlja proračun, te se obilaze samo snopovi unutar kolekcije tog lista. Ako list
sadrži k puta manje snopova od ukupnog broja snopova, tada je ubrzanje samog algoritma
jednako k. Pri tome je zanemareno vrijeme generiranja stabla i njegovog obilaska, koje je kod
velike rezolucije bitno manje od vremena potrebnog za izračun ukupnog skena. Detaljniji
prikaz i mjerenja implementacije oktalnog stabla prikazani su u poglavlju 4.4.2.
3.4 Tijek simulacije
Kompletan tijek simulacije prikazan je na slijedećem dijagramu:
Prikupljanje ulaznih podataka
Prethodna obrada scene
Praćenje snopova
Generiranje rezultata
Analiza rezultata
Slika 3‐17 – Tijek odvijanja simulacije
Simulaciji prethodi prikupljanje ulaznih podataka. Nakon što su poznati svi ulazni podaci, u fazi
prethodne obrade scene oni se unose u simulaciju. U toj fazi se također obavlja definiranje
topoloških veza geometrijskih elemenata scene. Topološka analiza u ovoj fazi je vremenski i
procesorski dosta zahtjevna, ali uvelike ubrzava kasniji proračun. Nakon toga se ulazi u petlju
praćenja snopova, gdje se računaju svi snopovi nastali u sceni. U ovoj fazi se ne detektira
prijem zvuka na mjestu prijemnika, već se snopovi prate sve do ispunjenja kriterija završetka
praćenja snopova. Na taj način se simuliraju sve moguće putanje zvuka odjedanput, te se one
mogu koristiti za razne položaje izvora u sceni. Tako se izbjegava redundancija u procesiranju,
koja bi se dogodila kada bi se snopovi pratili za svaki pojedini položaj izvora. Potom se pristupa
47
generiranju rezultata. Na osnovi stabla snopova dobivenog praćenjem snopova, te položaja
prijemnika, računaju se ukupni akustički intenzitet na mjestu prijemnika, te impulsni odziv.
Ukoliko je položaj izvora zvuka nepromjenjiv, za razne položaje prijemnika potrebno je
ponoviti samo ovu fazu – nije potrebno ponovno praćenje snopova. Nakon generiranja
rezultata vrši se analiza dobivenih rezultata, te se na osnovu nje mogu promijeniti neki od
ulaznih parametara, kako bi se sagledala nova situacija.
3.4.1 Prikupljanje ulaznih podataka
U ovoj fazi potrebno je odrediti geometriju scene, te prikupiti podatke o akustičkim svojstvima
svakog materijala koji se nalazi u sceni. Nakon toga se vrši modeliranje geometrije scene u
nekom od programa za CAD ili vizualizacije. Modeliranje scene svodi se na modeliranje ploha
diskontinuiteta, zato jer su entiteti geometrijski definirani plohama diskontinuiteta. Plohe
diskontinuiteta potrebno je definirati u obliku nepravilne trokutaste mreže (slika 3‐18).
Slika 3‐18 – Primjer TIN modela lubanje, kao plohe
diskontinuiteta (u pojednostavljenom slučaju) između
dva medija/materijala – zraka i moždanog tkiva
48
Kada je definirana geometrija scene, potrebno je definirati akustička svojstva pojedinih
entiteta. Za svaki entitet potrebno je odrediti koeficijent atenuacije, brzinu zvuka, te gustoću
medija. Pomoću ovih parametara izračunati će se koeficijenti refleksije i koeficijenti refrakcije
zvuka, kao i kutovi pod kojima će se zvučni val reflektirati i lomiti.
3.4.2 Prethodna obrada scene
U ovom dijelu simulacije obavlja se uvoz geometrije scene, te definiranje topologije scene i
njena provjera. Također se pridjeljuju fizikalne vrijednosti objektima scene (Slika 3‐19).
Uvoz geometrije izvora
Crtanje geometrije scene u vanjskom programu
Uvoz geometrije ploha diskontinuiteta
Definiranje entiteta temeljem ploha diskontinuiteta
Definiranje fizikalnih svojstava izvora
Predaja podataka fazi praćenja snopova
Proračun i provjera topologije scene i ploha
diskontinuiteta
Definiranje fizikalnih svojstava entiteta
Slika 3‐19 – Prethodna obrada scene
Plohe diskontinuiteta se definiraju/crtaju pomoću CAD programa. One se u simulaciju ubacuju
uvozom, posredstvom standardnog DXF formata. Potom se obavlja definiranje entiteta od
49
kojih je sastavljena scena. Za svaki entitet se definira jedna ili više školjaka (poglavlje 3.3.4.2),
te se svakoj školjci pridjeljuju plohe diskontinuiteta, koje je tvore. Nakon geometrijske
definicije entiteta, slijedi definiranje akustičkih parametara svakog pojedinog entiteta.
Kako bi scena bila dovršena, potrebno je zatim uvesti izvor zvuka, također putem DXF‐a. Time
je određen položaj izvora u prostoru scene, te je potrebno još definirati snagu izvora i
frekvenciju na kojoj se emitira zvuk u prostor. Definicijom izvora, scena je kompletirana.
Proračun i provjera topologije scene vrše se na dvije razine: topologija entiteta i topologija
ploha diskontinuiteta. Osim toga u ovoj fazi se stvara BSP stablo za svaki entitet. Postupak je
sljedeći:
1) provjera ima li svaka ploha diskontinuiteta točna dva entiteta
2) stvaranje TIN mreže ljuski od pripadajućih ploha diskontinuiteta
3) proračun topologije TIN mreža ljuski, uključujući
a. provjera (eng. welding) vrhova
b. izjednačavanje smjera normala trokuta
c. okretanje svih normala prema unutrašnjosti entiteta
4) stvaranje BSP stabla za svaku ljusku
5) ponovljeni korak 3) zbog dijeljenja pojedinih trokuta prilikom stvaranja BSP stabla
3.4.3 Praćenje snopova
Nakon prethodne obrade scene, tijekom koje su izvršene pripreme dijelova scene i topologija,
počinje središnji dio simulacije – praćenje snopova.
Praćenje snopova može se logički podijeliti u tri cjeline: generiranje početnog skupa snopova;
širenje i dijeljenje snopova prilikom nailaska na diskontinuitet; te obradu nailaska snopova na
diskontinuitet (slika 3‐20).
50
Početak praćenja snopova
Kreiraj izvorne snopove prema vrhovima dodekaedra i dodaj ih na
stog neobrađenih snopova
Uzmi i ukloni jedan snop sa stoga
neobrađenih snopova
Završetak praćenja snopova
DA
NE
GENERIRANJE POČETNOG
SKUPA SNOPOVA
ŠIRENJE I DJELJENJE SNOPOVA
OBRADA NAILASKA
SNOPOVA NA DISKONTINUITET
Je li stog neobrađenih
snopova prazan?
Izvrši djeljenje snopa prema geometriji koja ga okružuje i
podjeljene snopove stavi na stog snopova u obradi
Obradi nailazak na diskontinuitet za svaki snop sa stoga snopova u
obradi
Slika 3‐20 – Algoritam praćenja snopova
3.4.3.1 Generiranje početnog skupa snopova
Na početku praćenja snopova nalazi se petlja u kojoj se generira početni skup snopova.
Snopovi su PMPS‐u trokutastog presjeka, te su omeđeni sa tri rubne zrake. Kako je i geometrija
na koju snop nailazi također temeljena na trokutima, sve geometrijske operacije koje se pri
tome obavljaju se odvijaju između dva trokuta. Kako su trokuti najjednostavniji poligoni, ove
operacije će biti također brže nego da su u pitanju poligoni s više stranica.
Izvorni snopovi imaju oblik četverostrane piramide, sa izvorom u jednom vrhu (slika 3‐21).
Ovakvi snopovi geometrijski su definirani sa četiri trokuta. Snopovi nastali refleksijom i
refrakcijom oblika su odrezane piramide, te su geometrijski definirani s pet ploha, odnosno
sveukupno osam trokuta.
51
Slika 3‐21 – a) početni snop, b)
reflektirani/refraktirani snop
Inicijalni snopovi stvaraju se pomoću ikosaedra, kao na slici dolje.
Slika 3‐22 – a) Ikosaedar, poliedar sa 20
jednakostraničnih trokuta, b) dodatna podjela
početnog snopa
Ikosaedar koji se koristi za kreiranje početnog skupa snopova ima 20 stranica, koje imaju
slijedeće koordinate:
( 2
, 0, 3
)≈ (2.618 033 989, 0.0, 4.236 067 977)
(‐2
, 0, 3
)≈ (‐2.618 033 989, 0.0, 4.236 067 977)
( 0, 3
, 2
)≈ (0.0, 4.236 067 977, 2.618 033 989)
a) b)
a) b)
52
( 0,‐ 3
, 2
)≈ (0.0, ‐4.236 067 977, 2.618 033 989)
(3
, 2
, 0)≈ (4.236 067 977, 2.618 033 989, 0.0)
(‐3
, 2
, 0)≈ (‐4.236 067 977, 2.618 033 989, 0.0)
(‐3
,‐ 2
, 0)≈ (‐4.236 067 977, ‐2.618 033 989, 0.0)
(3
,‐ 2
, 0)≈ ( 4.236 067 977, 0.0, 1.618 033 989)
( 0, 3
,‐ 2
)≈ (0.0, 4.236 067 977, ‐2.618 033 989)
( 0,‐ 3
,‐ 2
)≈ (0.0, ‐4.236 067 977, ‐2.618 033 989)
(2
, 0,‐ 3
)≈ (2.618 033 989, 0.0, ‐4.236 067 977)
(‐2
, 0,‐ 3
)≈ (‐2.618 033 989, 0.0, ‐4.236 067 977)
61803.12
15
(3.1)
Koordinate se temelje na odnosu zlatnog reza ‐ ϕ. Svaka od stranica ikozaedra predstavlja
jednakostranični trokut. Pojedini snop se generira tako da svaka od tri rubne plohe snopa
prolazi ishodištem i jednom od strana trokuta.
Ukoliko je potrebno moguće je povećati broj početnih snopova. Povećanje se obavlja podjelom
svakog jednakostraničnog trokuta ikozaedra na četiri manja jednakostranična trokuta (slika
3‐22b). Na taj način se stvara 80 početnih trokuta. Ukoliko je potreban još veći broj početnih
trokuta, ovaj se postupak može rekurzivno ponoviti, pa se na taj način dobiva slijedeći broj
početnih snopova:
nN 420 (3.2)
gdje je N ‐ ukupan broj izvornih snopova, n ‐ broj rekurzivnih podjela izvornih snopova.
Nakon što se pojedini snop generira, stavlja se na stog neobrađenih snopova (poglavlje
3.4.3.2). Stog neobrađenih snopova je dinamička struktura, realizirana u obliku vezane liste,
koja služi kao privremeno spremište generiranih snopova, koji čekaju na obradu. Nakon što se
pojedini snop obradi on se skida sa stoga neobrađenih snopova, a kako se novi snopovi
generiraju prilikom nailaska na plohe diskontinuiteta oni se dodaju na stog neobrađenih
snopova. Kada se generira 20 početnih snopova završava prva faza praćenja snopova. Tih prvih
53
dvadeset snopova je prostorno koherentno, odnosno njima je pokriven čitav prostor oko
izvora.
3.4.3.2 Širenje i dijeljenje snopova
Nakon prve petlje, gdje se generira početni skup snopova, faza praćenja snopova ulazi u drugu,
glavnu petlju. U ovoj petlji, najprije se obavlja širenje snopa kroz entitet, te njegovo dijeljenje
na diskontinuitetu, zbog prilagođavanja geometriji. Svaki snop se širi entitetom sve dok ne
naiđe na plohu diskontinuiteta, koja pripada jednoj od ljuski entiteta. U jednostavnom slučaju,
snop će pasti unutar samo jednog trokuta plohe diskontinuiteta (crno), te neće trebati vršiti
prilagođavanje, odnosno dijeljenje snopa (crveno) ‐ slika 3‐23.
Slika 3‐23 – Jednostavni slučaj upada snopa na plohu
diskontinuiteta
U općem slučaju snop će pasti na nekoliko susjednih trokuta, pa će ga sukladno tome trebati
podijeliti (slika 3‐24a). Također, s obzirom da u PMPS‐u entiteti mogu biti konkavni, nekada će
se dogoditi da snop obasja nekoliko međusobno preklopljenih trokuta (slika 3‐24b). U tom
slučaju treba precizno odrediti koji se dijelovi preklapaju, odnosno treba izvršiti algoritam
međusobnog skrivanja trokuta. Ispravno skrivanje trokuta je izuzetno važno, jer se samo na taj
način može zadržati prostorna koherencija izvornih snopova, koja je najveća prednost ove
metode.
54
Slika 3‐24 –snop „obasjava“: a) dva trokuta, b) više
međusobno preklopljenih trokuta
Algoritam dijeljenja snopova sastavljen je od slijedećih faza koje se odvijaju slijedno:
- određivanje poretka trokuta pomoću BSP stabla
- određivanje „osvijetljenih“ trokuta i uklanjanje suprotno orijentiranih trokuta
- transformacija koordinata trokuta i njihovo obrezivanje
- projiciranje trokuta u 2D
- obrezivanje projiciranih trokuta s projekcijom snopa
- prekrivanje i dijeljenje trokuta
- kreiranje podijeljenih snopova
Ovaj algoritam biti će objašnjen na geometriji prikazanoj na slici 3‐25. Na slici se nalazi
konkavni entitet, prikazan trokutima zelene boje. Entitet je sastavljen od jedne vanjske ljuske i
dviju unutarnjih ljuski. Ima oblik kvadra, s dvije šupljine, također u obliku kvadra. Šupljine se
međusobno zaklanjaju, a također obje zaklanjaju vanjsku ljusku entiteta, pa stoga predstavljaju
složen primjer konkavnog entiteta.
Izvor za koji će se računati širenje snopova prikazan je žutom bojom. Algoritam započinje
određivanjem poretka trokuta svih školjaka entiteta u odnosu na izvor. Ovaj postupak se vrši
putem "inorder" obilaska BSP stabla entiteta, koje je stvoreno u prethodnoj fazi (poglavlje
a) b)
55
3.3.6.1). Ispravno određivanje poretka trokuta je važno, jer se u fazi prekrivanja i dijeljenja
trokuti obrađuju počevši od najbližeg.
Slika 3‐25 – Entitet korišten za ilustraciju algoritma
dijeljenja snopova
U slijedećoj fazi algoritma određuju se trokuti, koji su barem djelomično unutar snopa čije se
dijeljenje vrši. Takvi su trokut kandidati za sudjelovanje u konačnoj podjeli snopa. Algoritam
traženja osvijetljenih trokuta objašnjen je u Dodatku 7.3.
Na slici 3‐26 prikazan je proces „osvjetljivanja“ trokuta: na lijevoj strani prikazana je potpuna
geometrija entiteta, s izvorom prikazanim kao žutim objektom; na desnoj strani prikazan je
snop za koji se računa širenje, ocrtan rubnim zrakama žutom bojom, te su prikazani osvijetljeni
trokuti crvenom bojom.
Iz skupa osvijetljenih trokuta potrebno je potom odstraniti one trokute čija normala nije
orijentirana suprotno od smjera širenja snopa (eng. backface‐cull).
56
Slika 3‐26 – Ilustracija faze određivanja osvijetljenih
trokuta
Naime, kako su ljuske entiteta potpuni poliedri, a izvor se nalazi unutar entiteta, s položaja
izvora nije moguće „vidjeti“ niti jedan trokut koji nije suprotne orijentacije (slika 3‐27).
Slika 3‐27 – Smjer upadnog snopa nije suprotan
normali trokuta T2 – on će biti izbačen tijekom
backface‐cull faze.
Nakon završetka ove faze, osvijetljeni trokuti se stavljaju na stog osvijetljenih trokuta (SOT).
57
Slijedeća faza je transformacija svih trokuta sa SOT u lokalni koordinati sustav snopa. Da bi se
to moglo izvršiti, potrebno je izračunati matricu transformacije MGKS‐>KSS, koja geometriju iz
glavnog koordinatnog sustava prebacuje u koordinatni sustav snopa. Ovo je afina
transformacija, koja uključuje translaciju i rotaciju (Dodatak 7.4).
Koordinatni sustav snopa u ishodištu ima izvor snopa, dok mu je z os paralelna sa smjerom
širenja snopa (slika 3‐28). Matricu MGKS‐>KSS potrebno je sačuvati, kako bi se nakon faze
dijeljenja snopova mogla izvršiti inverzija matrice, te transformacija dijeljenih trokuta natrag u
glavni koordinatni sustav.
Slika 3‐28 – Transformacija „osvijetljenih“ trokuta
Nakon transformacije potrebno je sve transformirane trokute presjeći s ravninom z=0, te
ukloniti sve dijelove koji imaju negativnu koordinatu. Ovaj korak je nužan zbog sljedeće faze, u
kojoj se vrši perspektivna projekcija. Dijelovi geometrije koji imaju negativnu z koordinatu (koji
su iza fokusa projekcije), ukoliko ih ne uklonimo, će se u perspektivnoj projekciji iskriviti.
Transformirani i obrezani trokuti se potom projiciraju na plohu paralelnu xy ravnini. Z
koordinata plohe, na koju se vrši projekcija određuje se kao aritmetička sredina z koordinata
svih vrhova trokuta sa stoga SOT. Ova koordinata se naziva zpr i pamti se kako bi se nakon faze
prekrivanja i dijeljenja trokuta, od nastalih podijeljenih trokuta mogli stvoriti podijeljeni
snopovi (poglavlje 3.4.3.3).
58
Perspektivna projekcija se vrši sa svrhom ubrzanja proračuna, jer se testovi međusobnog
prekrivanja trokuta puno brže odvijaju u 2D nego u 3D. Geometrijska ispravnost zadržana je
izborom perspektivne projekcije s fokusom u izvoru zvučnog vala, jer se u geometrijskoj
akustici širenje vala aproksimira pravocrtnim širenjem sa fokusom u izvoru. Perspektivna
projekcija se vrši dijeljenjem x i y koordinata svih vrhova svih trokuta sa SOT, sa vrijednošću
z/zpr.
Svi projicirani trokuti se potom pohranjuju u sortirano binarno stablo projiciranih trokuta
(SPT), sortirano po redoslijedu trokuta u BSP stablu. Za vrstu spremnika u kojem će se
projicirani trokuti pohranjivati izabrano je upravo binarno sortirano stablo. Takvo rješenje je
izabrano jer je u nastavku algoritma potrebno obilaziti skup trokuta u sortiranom redoslijedu,
što ova vrsta spremnika omogućava na učinkovit način.
Drugi dio ove faze jest obrezivanje projiciranih trokuta sa snopom. Najprije se snop
transformira u koordinatni sustav snopa, koristeći matricu MGKS‐>KSS. Potom se izvrši presjek
snopa sa ravninom paralelnom xy ravnini, na udaljenosti zpr. Rezultat ovog presjeka je trokut,
koji predstavlja projicirani presjek snopa. S njime je potom potrebno obrezati sve trokute iz
SPT. Obrezivanje se vrši operacijom presjeka dvaju trokuta. Kako je ovo vremenski kritična
operacija, njoj je posvećena posebna pažnja, te je pobliže opisana u prilogu 7.2.
Slika 3‐29 – Projekcija transformiranih trokuta
Na slici 3‐29 s lijeve strane crvenom bojom su prikazani osvijetljeni trokuti. S desne strane su
zelenom bojom prikazani trokuti nakon faze projekcije i obrezivanja. Trokuti su po visini
59
poredani sukladno njihovom redoslijedu iz BSP stabla. Vidljivo je da se trokuti međusobno
preklapaju, a rješenje njihovog međusobnog preklapanja jest prikazano u donjem dijelu slike,
plavom bojom. Proračun preklapanja i skrivanja je predmet iduće faze proračuna. Algoritam
preklapanja i skrivanja trokuta je slijedeći:
odredi redni broj trokuta O, koji je prvi trokut u PT
premjesti sve trokute koji imaju redni broj isti kao O, sa PT na HT
za svaki trokut t sa PT
za svaki trokut hT sa HT
ako t nema isti redni broj kao i hT
i t nije susjed hT)
i par (t, hT) nisu u CP
dodaj par (t, hT) na CP
ako hT prekriva t
oduzmi hT od t
dodaj sve trokute koji nastanu oduzimanjem na HT
ažuriraj parove trokuta na CP
izbriši t sa PT
ponovi petlje
premjesti t sa PT na HT
U algoritmu se koriste slijedeće strukture podataka:
PT – sortirano binarno stablo projiciranih, neobrađenih trokuta, poredanih po vidljivosti
HT – sortirano binarno stablo obrađenih trokuta, koji su provjereni, je li se međusobno
skrivaju, te po potrebi obrezani
CP – sortirano binarno stablo indeksa parova trokuta, kojima je međusobno zaklanjanje već
provjereno (služi za brzu provjeru prethodne obrade)
Algoritam prolazi kroz PT po redoslijedu vidljivosti. U prvom koraku se svi trokuti istog,
najmanjeg rednog broja (prednji trokuti) premještaju sa PT u HT. Ovo se čini jer ispred njih
nema trokuta koji bi ih mogli zaklanjati, a kako imaju isti redni broj, ne mogu se međusobno
zaklanjati. Potom algoritam ulazi u glavnu dvostruku petlju, gdje se svaki neobrađeni trokut t iz
PT, provjerava sa svakim obrađenim trokutom hT iz HT, je li ga hT prekriva. Ukoliko prekrivanja
nema, trokut se smatra obrađenim i prebacuje na HT. Ukoliko do prekrivanja dolazi, onda se
60
od trokuta t oduzima trokut hT (vidi dodatak 7.2). Ovo može rezultirati potpunim
prekrivanjem, kojom prilikom se na HT ne dodaje ništa; ili djelomičnim prekrivanjem, kada se
svi novonastali trokuti razlike dodaju na HT. Izvorni trokut t se u svakom slučaju uklanja s PT.
Nakon obrade prekrivanja, petlja se ponavlja za slijedeći t. Ukoliko do prekrivanja s hT nije
došlo, provjera se ponavlja za slijedeći trokut sa HT.
U slučaju preklapanja trokuta, petlje se više puta ponavljaju. Kako se isti par trokuta ne bi
nepotrebno provjeravao više puta, u CP se bilježe svi međusobno provjereni parovi. Prilikom
svakog oduzimanja, informacija o izvornom trokutu, sačuvana u CP, kopira se za sve trokute
koji nastaju oduzimanjem izvornog trokuta.
Još dvije provjere se obavljaju, također sa svrhom izbjegavanja nepotrebnog procesiranja.
Ukoliko trokuti t i hT imaju isti redni broj, za njih se ne obavlja provjera međusobnog
preklapanja. Naime ako trokuti imaju isti redni broj, znači da je već prilikom stvaranja BSP
stabla ta provjera izvršena. Osim toga, ukoliko su t i hT susjedi, također ne treba obavljati
provjeru preklapanja, jer su takvi slučajevi uklonjeni prethodno u fazi "backface‐cull" provjere.
U prilogu 7.5 je na jednostavnom primjeru detaljno prikazan rad ovoga algoritma.
Proces dijeljenja snopova završava fazom kreiranja podijeljenih snopova. U ovoj fazi sa stoga
neobrađenih snopova uklanja obrađeni snop, čije smo širenje pratili kroz prostor, a kreiraju
podijeljeni snopovi, koji su prilagođeni geometriji ploha diskontinuiteta na koje obrađeni snop
nailazi. Od trokuta, koji su nastali kao rezultat algoritma preklapanja i dijeljenja, a koji su
predstavljeni 2D trokutima, kreiraju se trodimenzionalni snopovi. Za svaki od podijeljenih
projiciranih trokuta sa stoga skrivenih trokuta HT obavlja se transformacija koordinata iz
koordinatnog sustava snopa natrag u glavni koordinatni sustav snopa. Transformacija se vrši
množenjem sa matricom MKSS‐>GKS:
1 KSSGKSGKSKSS MM (3.3)
Od tako transformiranog trokuta se stvara podijeljeni snop. To se vrši na način da se tri rubne
zrake snopa kreiraju s ishodištem u ishodištu izvornog, obrađenog snopa, dok svaka od tih triju
zraka prolazi jednim od vrhova transformiranog trokuta. Tako stvoreni snop dodaje se na stog
61
snopova u obradi, te prosljeđuje slijedećoj fazi – obradi snopova na diskontinuitetu. Primjer
podijeljenog snopa prikazan je na slici 3‐30:
Slika 3‐30 – Podijeljeni snopovi nastali algoritmom
skrivanja
Na slici su prikazani snopovi nastali podjelom (prilagođavanjem geometriji) snopa koji je
prikazivan na slikama 3‐25 do 3‐29. Snop prilikom širenja najprije nailazi na lijevu unutrašnju
ljusku, potom na desnu unutrašnju ljusku, dok naposljetku završava širenje na vanjskoj ljusci
entiteta. Shodno tim preprekama snop se dijeli, što je vidljivo na slici.
Na kraju ovog poglavlja potrebno je spomenuti jedan detalj koji bitno utiče na kvalitetu
geometrijskih operacija koje čine srž algoritma. Riječ je o pojmu tolerancije u relacijskim
operacijama, odnosno provjeri, je li jedan realni broja jednak, veći ili manji od drugoga. Zbog
načina kako se decimalni realni brojevi u računalu kodiraju u binarnom zapisu, nije moguće
svaki realni broj zapisati točno. Zbog toga se pojavljuje određena numerička greška, koju je
potrebno uzeti u obzir priliko relacijskih operacija. U PMPS‐u je ovome posvećena posebna
pažnja, kako bi numeričke greške što manje uticale na točnost proračuna. Način kako se u
PMPS‐u vrše relacijske operacije opisan je detaljnu u prilogu 7.6.
62
3.4.3.3 Obrada snopova na diskontinuitetu
Algoritam dijeljenja snopova završava obradom snopova na diskontinuitetu. Prethodna faza
obavljala je prilagođenije snopa okolnoj geometriji, na način da je jedan snop dijelila na više
manjih.
Izračunaj geometriju reflektiranog snopa
Izračunaj geometriju reflektiranog snopa
Ispunjen kriterij kraja praćenja?
NE
DA
Dodaj nastale snopove na stog izvornih
snopova
Uzmi jedan snop sa stoga
snopova za obradu
Izračunaj intenzitet na kraju snopa i dodaj ga na stog zatvorenih
snopova
Ispunjen kriterij totalne refleksije?
NE
DA
Izračunaj intenzitet zvuka refraktiranog snopa
Ovisno o totalnoj refleksiji izračunaj intenzitet zvuka
reflektiranog snopa
Je li stog snopova za obradu prazan?
NE
Razlika intenziteta na rubovima snopa manja od
praga?
NE
DA
Podjeli snop na četiri dijela
DA
Slika 3‐31 – Obrada snopova na diskontinuitetu
63
Ova faza će tako nastale snopove zatvoriti s plohom diskontinuiteta na koju nailaze, te kreirati
reflektirani i refraktirani snop. Podijeljeni snopovi nastali u prethodnoj fazi su pohranjeni na
stogu snopova za obradu na diskontinuitetu, koji predstavlja ulaz za ovu fazu. Slika 3‐31
prikazuje dijagram toka obrade snopova na diskontinuitetu.
Najprije se uzima (i uklanja) jedan snop sa stoga snopova za obradu. Taj snop je se zatvara s
trokutom plohe diskontinuiteta na kojem dolazi do refleksije i refrakcija. Potom je potrebno
izračunati intenzitet na kraju snopa (poglavlje 3.5.2). Potom se ovaj snop pohranjuje na stog
zatvorenih snopova.
Slijedeći korak je provjera: je li ispunjen kriterij završetka praćenja snopova? Ovo je vrlo bitan
korak, jer se pomoću njega određuje u kojem trenutku se prestaje s praćenjem snopova.
Ukoliko njega ne bi bilo, snopovi bi se pratili unedogled i simulacija ne bi nikada završila. U
PMPS‐u praćenje prestaje ukoliko je ispunjen barem jedan od slijedeća dva uvjeta:
a) intenzitet snopa je manji od praga intenziteta
b) volumen snopa je manji od praga volumena
Uobičajeni kriterij prestanka praćenja snopova je ograničenje broja refleksija [34, 96]. Dakle,
snopovi se prate sve dok broj refleksija/refrakcija, koje su na svom putu prošli, ne pređe neki
maksimalni dozvoljeni broj. Ovaj kriterij, iako jednostavan za implementaciju, nije dobar sa
stanovišta točnosti. Naime, svaki snop doprinosi ukupnoj zvučnoj slici sa svojim intenzitetom.
Taj intenzitet pada sa brojem refleksija/refrakcija. Međutim taj intenzitet izravno ovisi i o
karakteristikama medija – atenuaciji u mediju. Zato dva snopa, koja su prošla isti broj refleksija
u dva različita medija, mogu zbog različitih prigušenja imati jako različite intenzitete. Tako se
može dogoditi da je snop s većim intenzitetom, iako ispunjava kriterij završetka po broju
refleksija/refrakcija, ima nezanemariv doprinos ukupnoj zvučnoj slici, te bi ga trebalo i dalje
pratiti. Zato je u proširenoj metodi praćenja snopova odabran kriterij intenziteta zvuka snopa,
a ne broja refleksija/refrakcija. Na taj način se definira određeni prag intenziteta, koji se može
smatrati zanemarivim za ukupnu zvučnu sliku. Snopovi se prate sve dok je intenzitet na
njegovom kraju snopa, veći od intenziteta praga.
64
Dugi kriterij je kriterij volumena snopa. Naime, snopovi se tijekom praćenja dijele, zbog
prilagođavanja geometriji. Stoga će se nakon nekoliko refleksija/refrakcija, volumeni snopova
pojedinih snopova bitno razlikovati – neki snopovi će zauzimati veliki dio volumena entiteta u
kojem se šire, dok će drugi zbog geometrije ploha diskontinuiteta i procesa skrivanja
degenerirati na zanemarivo mali volumen. Volumenu snopa je proporcionalna vjerojatnost da
će se prijemnik nalaziti upravo u njemu, odnosno da će se njegov doprinos trebati uzeti u obzir
prilikom određivanja ukupnog intenziteta. Stoga se ne može jednako tretirati dva snopova
različitih volumena, čak i ako oba imaju isti intenzitet, veći od intenziteta praga praćenja. U
simulaciji je tako uveden i drugi kriterij prestanka praćenja, koji zahtjeva da volumen snopa
bude veći od određenog praga. Na ovaj način će se prestati pratiti degenerirani snopovi
zanemarivo malih volumena, čija bi daljnja obrada opteretila simulaciju procesiranjem,
usprkos činjenici, da je vjerojatnost da se prijemnik nalazi u tom snopu, zanemarivo mala.
Ukoliko obrađivani snop prođe kriterij prestanka praćenja snopova, vrši se provjera jesu li
intenziteti na rubovima snopa unutar zadane tolerancije (poglavlje 3.5.6.2). Ukoliko to nije
slučaj, tada se snop dijeli na četiri jednaka dijela, na isti način kako se vrši i podjela izvornih
snopova (slika 3‐22b). Nakon podjele se za svaki snop ponavlja provjera, te se podjela
rekurzivno obavlja, sve dok snopovi ne zadovoljavaju kriterij, da je intenzitet na cijeloj površini
završne plohe snopa unutar zadane tolerancije.
Potom se za obrađivani snop (ili više njih ukoliko je zbog prelaženja tolerancije došlo do
podjele) kreiraju reflektirani i refraktirani snop.
3‐32 – Stvaranje reflektiranog snopa
65
Na slici 3‐32 prikazano je kako se, iz upadnog snopa BU zatvorenog trokutom TZ, stvara
reflektirani snop BRFL. Izvor upadnog snopa I se zrcali preko plohe na kojoj leži trokut TZ (na
kojem dolazi do refleksije), te se na taj način stvara zrcalni izvor VI. Potom se kreiraju tri rubne
zrake reflektiranog snopa – one počinju u virtualnom izvoru VI, a prolaze kroz točke T1, T2 i T2
koje predstavljaju tri vrha trokuta TZ.
Ukoliko ne dolazi to totalne refleksije (poglavlje 3.5.3), osim reflektiranog snopa stvara se i
refraktirani snop BRFR, na način kako je prikazano na slici 3‐33:
Slika 3‐33 – Stvaranje refraktiranog snopa
Prilikom proračuna geometrije reflektiranog snopa, najprije se stvaraju tri pomoćna rubna
pravca, te se pomoću njih konstruira virtualni izvor snopa. Pomoćni rubni pravci konstruiraju
se pomoću točke i vektora smjera. Kao točka kroz koju pomoćni rubni pravac prolazi, uzima se
jedan od vrhova trokuta TZ, na kojem dolazi do refrakcije. Kao vektor smjera, uzima se vektor
smjera rubne zrake upadnog snopa, transformiran sukladno Snellovom zakonu loma. Pomoćni
rubni pravci snopa konstruirani na ovaj način se zbog nelinearnosti Snellova zakona neće sjeći
u jednoj točci, pa je uvedena aproksimacija, detaljnije pojašnjena u poglavlju 3.5.6.1, kojom se
dobiva virtualni izvor VI, refraktiranog snopa BRFR. Potom se kreiraju tri rubne zrake snopa –
one počinju u virtualnom izvoru VI, a prolaze kroz točke T1, T2 i T2 koje predstavljaju tri vrha
trokuta TRFL.
66
Nakon što su snopovi konstruirani određuje se početni intenzitet svakog snopa (poglavlje
3.5.3). Postupak obrade snopova na diskontinuitetu se ponavlja sve dok stog snopova za
obradu nije prazan, odnosno dok se ne obrade svi podijeljeni snopovi nastali prilagođavanje
upadnog snopa geometriji.
3.4.3.4 Završetak obrade snopova
Na kraju glavne petlje vrši se provjera, je li stog izvornih snopova prazan. Ukoliko jest ‐ znači
da su temeljem kriterija prestanka praćenja snopova svi snopovi obrađeni do razine
intenziteta, odnosno do volumena, koji više nije bitna za ukupnu zvučnu sliku. Ukoliko stog nije
prazan, glavna petlja praćenja snopova se ponavlja sve dok se stog izvornih snopova ne
isprazni. Dakle na početku glavne petlje je stog izvornih snopova pun, a stog obrađenih
snopova prazan, dok je na kraju glavne petlje situacija obratna.
3.4.4 Generiranje rezultata
U fazi praćenja snopova generirani su svi snopovi koji se u sceni nalaze, a koji zadovoljavaju
kriterij prestanka praćenja snopova. Pomoću izračunatih snopova se potom može izračunati
traženi rezultat simulacije, koji može biti dvojak: ukupni intenzitet zvuka na mjestu prijemnika
izražen numerički ili plošni sken, gdje se u pravokutnom rasteru bojama prikazuje intenzitet
zvuka na pojedinoj lokaciji.
Ukupni intenzitet zvuka na mjestu prijemnika računa se zbrajanjem intenziteta izravnog zvuka i
svih refleksija/refrakcija koje stižu do prijemnika. Da bi odredili koji sve zvukovi stižu do
prijemnika, potrebno je odrediti one snopove, sa stoga zatvorenih snopova, koji sadrže
prijemnik. Ovaj postupak vrši se u petlji, koja prolazi kroz sve snopove sa stoga zatvorenih
snopova. U petlji se ispituje, je li se točka na kojoj se nalazi prijemnik nalazi unutar pojedinog
zatvorenog snopa.
Ukoliko se kao rezultat simulacije odabere plošni sken, potrebno je odrediti dimenzije i položaj
kvadratne plohe skena, te razlučivost kojom će se ploha skenirati. Razlučivost se zadaje u
obliku udaljenosti između dviju susjednih točaka u jednom retku skena. Broj točaka u jednom
retku stoga linearno raste sa smanjenjem udaljenosti između točaka, dok ukupni broj točaka
raste kvadratno s brojem točaka u jednom retku. Za svaku točku skena potrebno je proći kroz
snopove na stogu zatvorenih snopova. Dakle, ako snopova ima m, a broj točaka u jednom
retku skena je n, onda je složenost algoritma proračuna skena O(m*n2).
67
U realnom slučaju, s nekoliko desetaka tisuća snopova i rezolucijom od stotinjak točaka, broj
iteracija se penje na red veličine od 108 pa je bilo potrebno poraditi na optimizaciji algoritma,
kako bi se procesiranje smanjilo. Na kvadratni porast vezan uz rezoluciju skena nije moguće
uticati, ali je zato moguće smanjiti broj snopova koje je potrebno provjeriti uvođenjem
prostornog indeksiranja.
Je li se točka T nalazi u snopu
NE
DA
Jesu li obrađeni svi stupci za
trenutni redak plošnog skena?
NE
Izračunaj intenzitet snopa i pribroji ukupnom intenzitetu točke T
DA
Rekurzivno stvori oktalno stablo zatvorenih snopova
Uzmi jedan snop iz lista oktalnog stabla
Izračunaj koordinate točke T trenutnog reda i trenutnog stupca
plošnog skena
Ustanovi u kojem se listu oktalnog stabla trenutno točka T nalazi
Jesu li obrađeni svi snopovi iz lista
oktalnog stabla
NE
DA
Jesu li obrađeni svi retci plošnog
skena?
NE
DA
Povećaj broj trenutno obrađivanog retka
plošnog skena
Povećaj broj trenutno obrađivanog stupca
plošnog skena
Prikaži rezultate
Slika 3‐34 – Dijagram generiranja rezultata
68
Za oblik prostornog indeksiranja izabrano je oktalno stablo (poglavlje 3.3.6.2). Uvođenjem
oktalnog stabla promijenio se i proces generiranja rezultata – novi proces je prikazan na slici
3‐34. Dakle, nakon završetka praćenja snopova oni se indeksiraju u oktalno stablo. Stvaranje
oktalnog stabla vrši se rekurzivno: svi stogovi se dijele u jedan od osam stogova, ovisno o tome
u kojem se od osam oktanata prostora nalaze. Ukoliko se jedan od snopova nalazi u više od
jednog oktanta, on se pohranjuje u svim oktantima u kojima se nalazi. Potom se stog vezan uz
svaki oktant rekurzivno ponovo obrađuje i dijeli. Rekurzivni proces se ponavlja sve dok je omjer
broja snopova u prethodnoj i trenutnoj razini veći od određenog praga – odnosno dok podjela
učinkovito smanjuje broj snopova koje treba pretraživati.
Snopovi su u pravilu u obliku izduženog, tankog poliedra, čija uzdužna os općenito nije
paralelna sa niti jednom od ravnina podjele oktalnog stabla. Zbog toga je učinkovitost ovakve
prostorne podjele ograničena. Primjena je pokazala, da se na ovaj način može postići broj
snopova u jednom listu oktalnog stabla, koji je nekoliko desetaka puta manji od ukupnog broja
snopova.
Nakon izrade oktalnog stabla, prilikom proračuna intenziteta za svaku točku skena nije
potrebno provjeravati sve zatvorene snopove, već se provjeravaju samo snopovi iz onog lista
oktalnog stabla, u kojem se nalazi i sama točka skena. Sada složenost proračuna prelazi u
O(k*n2), gdje je k ‐ prosječni broj snopova u jednom listu oktalnog stabla. Kako je k jedan do
dva reda veličine manji od broja m, za isti iznos se postiže ubrzanje proračuna, pa on u
realnom slučaju sada iznosi umjesto nekoliko desetaka minuta, nekoliko desetaka sekundi.
69
3.5 Fizikalni procesi u postupku simulacije
Rezultat PMPS‐a je razina intenziteta zvuka na mjestu prijemnika ili plošni sken, koji različitim
bojama prikazuje razine intenziteta zvuka.
Ova simulacija intenzitet računa uzimajući u obzir atenuaciju zbog širenja prostorom,
atenuaciju zbog viskoziteta i drugih disipacijskih procesa u mediju, te atenuaciju na mjestu
diskontinuiteta.
Diskontinuiteti se tretiraju kao da nisu lokalno reaktivni. Kod lokalno reaktivnih entiteta,
prilikom nailaska snopa na plohu diskontinuiteta, jedan dio energije prelazi na mehaničko
titranje entiteta [113]. Ova se pojava u PMPS‐u zanemaruje. Kako bi se zadovoljio zakon o
održanju energije, sva energija upadnog snopa, pa samim time i onaj dio koji bi se potrošio na
lokalnu reakciju entiteta, dijeli se na reflektirani i refraktirani snop.
Izvor se u simulaciji tretira kao neusmjereni točkasti izvor, koji zrači na jednoj frekvenciji, dok
se zvučni val tretira kao ravni val, podložan pravilima geometrijske akustike. Dimenzija
geometrije koja definira okolinu u kojoj se simulacija odvija treba biti veća od valne duljine.
Medij se unutar jednog entiteta tretira kao homogen, sa fizikalnim svojstvima
nepromjenjivima na području cijelog entiteta.
3.5.1 Atenuacija zbog širenja prostorom
Akustička snaga zvučnog izvora definira se [113] kao prostorni integral akustičkog intenziteta
po površini S koja obuhvaća izvor:
SdIPS
A (3.4)
Ako je poznata akustička snaga izvora akustični intenzitet može se izračunati deriviranjem
akustičke snage po površini S:
70
Sd
dPI A (3.5)
Za točkasti izvor, zvuk se prostorom širi u obliku kuglastog vala, pa je akustički intenzitet na
udaljenosti r od izvora svugdje isti. Ako želimo izračunati akustički intenzitet na udaljenosti r od
točkastog izvora, u gornje izraze uvrštavamo izraz za površinu kugle.
24 r
PI A
(3.6)
Jednadžba (3.6) predstavlja izraz pomoću kojeg se u PMPS‐u određuje atenuacija zbog širenja
u mediju.
3.5.2 Atenuacija zbog viskoziteta i drugih disipacijskih procesa u mediju
Zbog viskoziteta i drugih apsorpcijskih procesa u mediju prilikom širenja ravnog vala dolazi do
atenuacije akustičkog intenziteta, koja se može aproksimirati izrazom [128]:
xeII 0 (3.7)
gdje je ‐ I0 početni intenzitet, x ‐ pomak za koji se atenuacija računa, γ ‐ konstanta koja daje
prigušenje u mediju u jedinicama [m‐1].
Tablica 3‐1 – Tablica koeficijenata atenuacije
MATERIJAL γ ( 10‐3 m‐1) D (10‐3 dB/m)
zrak (40% vlažnosti) 1,15 5
morska voda 0,0115 0,05
glicerol 0,003 0,013
guma 42,9 186
beton 50 217
staklo 0,2 0,868
željezo 0,494 2,14
71
U tablici 3‐1 prikazane su vrijednosti γ za neke materijale na sobnoj temperaturi, za frekvenciju
zvuka od 1 kHz.
Neki autori atenuaciju u mediju računaju izrazom, koji sadrži razine intenziteta zvuka:
rDLL II 0 s (3.8)
U ovom izrazu je atenuacija izražena koeficijentom D koji daje prigušenje u [dB/m]. Njegova
veličina je:
mdBD /34,4 (3.9)
3.5.3 Promjena na diskontinuitetu
Prilikom nailaska na diskontinuitet zvuk se dijelom reflektira, te širi u istom mediju, a dijelom
prelazi u drugi medij, te nastavlja širenje u njemu (slika 3‐35). Tom prilikom dolazi do
promjene smjera širenja zvučnog vala, te do promjene akustičkog intenziteta [93, 113, 6].
Slika 3‐35 – Stvaranje reflektiranog snopa
72
Medij u kojem se širi upadni i reflektirani val karakteriziran je specifičnom gustoćom ρI i
brzinom zvuka cI, dok je se iza diskontinuiteta nalazi drugi medij, karakteriziran sa ρII i cII.
Upadni val ima tlak pI, te intenzitet II; reflektirani val ima tlak pI', te intenzitet II'; dok
refraktirani, preneseni val ima tlak pII, te intenzitet III.
Val koji se reflektira natrag u prvi medij, širi se pod prema Snellovom zakonu refleksije pod
kutom θI zrcalno prema osi y, odnosno prema okomici diskontinuiteta. Val koji nastavlja
širenje u drugom mediju, mijenja smjer širenja, zbog razlike u brzini zvuka u dvama medijima.
On se nastavlja širiti pod kutom θII koji je određen Snellovim zakonom loma:
II
I
II
I
c
c
sin
sin (3.10)
Iz jednadžbe (3.10) je vidljivo da promjena kuta prilikom prijelaza zvuka u drugi medij nije
linearna transformacija.
Zvučni intenzitet upadnog vala II dijeli se na intenzitet refraktiranog vala III i intenzitet
reflektiranog vala II'.
'IIII III (3.11)
Omjer zvučnih tlakova reflektiranog i upadnog vala, predstavlja koeficijent refleksije:
I
I
p
pR '
' (3.12)
Kako je intenzitet zvuka proporcionalan kvadratu zvučnog tlaka, izraz za reflektirani intenzitet
je slijedeći:
II IRI 2' (3.13)
Korištenjem jednadžbi (3.11) i (3.13) dolazi se do sljedećeg izraza za intenzitet prenesenog,
refraktiranog zvuka:
III IRI 21 (3.14)
73
Da bi prema jednadžbama (3.13) i (3.14) mogli izračunati vrijednosti reflektiranog i
refraktiranog intenziteta zvuka, potrebno je poznavati koeficijent refleksije. On se računa
pomoću akustičke impedancija dvaju medija, pomoću slijedećeg izraza:
III
III
ZZ
ZZR
(3.15)
Akustička impedancija medija jednaka je umnošku specifične gustoće i brzine zvuka u mediju:
cZ (3.16)
U tablici su navedene vrijednosti specifične gustoće, brzine zvuka i akustičke impedancije za
neke medije:
Tablica 3‐2 – Tablica akustičkih impedancija.
MATERIJAL c (m/s) ρ (kg/m3) Z (103 kg/(m2s))
zrak 343 1,2 0,411
voda 1483 1000 1483
morska voda 1521 1030 1567
glicerol 1920 1260 2419
guma 900 930 14 500
beton 4500 2400 10 800
staklo 5800 2500 967
željezo 4512 7850 35 419
drvo (hrast) 2300 600 1380
Ovisno o kutu pod kojim snop upada na plohu diskontinuiteta, te brzinama zvuka u medijima,
može doći do totalne refleksije. Da bi se ona mogla dogoditi treba biti ispunjeno da je:
74
III cc (3.17)
Totalna refleksija će se dogoditi, ukoliko je pri tome upadni kut veći od kritičnog θC:
II
IC c
carcsin (3.18)
Tom prilikom se cjelokupna energija snopa reflektira pa su onda vrijednosti intenziteta
reflektiranog i refraktiranog snopa slijedeće:
II II ' (3.19)
0III (3.20)
3.5.4 Izračun intenziteta na mjestu prijemnika
U PMPS‐u se proračun vrši za sferni, neusmjereni prijemnik (slika 3‐36). Na takav sferni
prijemnik upadaju zvučni valovi nastali kako izravnim širenjem, tako refleksijama i refrakcijama
na diskontinuitetima. Ti zvučni valovi u PMPS‐u su predstavljeni snopovima u kojima se nalazi
prijemnik.
Slika 3‐36 – Sferni prijemnik i upadni zvučni valovi
75
Da bi se dobio ukupni zvučni tlak na mjestu prijema treba združiti zvučne tlakove snopa
izravnog zvuka i svih reflektiranih/refraktiranih snopova.
Efektivna vrijednost ukupnog zvučnog tlaka dva signala iste frekvencije računa se prema izrazu
[123]:
T
EF dtpT
p0
21 (3.21)
gdje je ‐ p ukupna vrijednost zvučnog tlaka na mjestu prijemnika. Kako se u PMPS‐u simulira
sinusoidalni zvučni signal jedne frekvencije, ona predstavlja zbroj sinusoidalnih signala izravnog
zvuka i reflektiranih/refraktiranih zvukova:
T N
nnnEF dttp
Tp
0
2
1
)sin(1 (3.22)
gdje je pn ‐ amplituda tlaka pojedinog zvučnog vala, φn ‐ pomak u fazi nastao širenjem
pojedinog zvučnog vala kroz prostor.
Razmotrimo sada rješenje ovog izraza za dva zvučna vala, kako bi analogijom došli do
općenitog rješenja.
T
EF dttptpT
p0
22211 )sin()sin(
1 (3.23)
T
EF dttptptptpT
p0
222
22211122
1 )(sin)sin()sin(2)(sin1
(3.24)
U jednadžbi (3.24) drugi član predstavlja zbroj dvaju sinusnih signala iste frekvencije, a
međusobno pomaknutih u fazi. U realnoj situaciji, u odječnom prostoru, gdje se širi veliki broj
76
reflektiranih/refraktiranih valova, faza se može tretirati kao slučajna statistička veličina. U
takvom slučaju, i uzimajući da su sve faze jednako vjerojatne, umnožak sinusnih funkcija
slučajne faze je s jednakom vjerojatnošću pozitivna ili negativna vrijednost, pa je očekivana
vrijednost integrala tog umnoška jednaka nuli. To znači da je drugi član izraza (3.24) jednak
nuli. Preostali dva člana predstavljaju efektivne vrijednosti tlaka pojedinačnih valova.
T
EF dttptpT
p0
222
2122
1 )(sin)(sin1 (3.25)
TT
EF dttpT
dttpT
p0
222
2
0
122
1 )(sin1
)(sin1 (3.26)
22
21 EFEF
pppEF (3.27)
Ukoliko ovaj princip primijenimo na sve nadolazeće zvučne valove, ukupni zvučni tlak može
računati prema izrazu:
222
21 ... nUK pppp (3.28)
222
21
2 ... nUK pppp (3.29)
Kako je akustički intenzitet proporcionalan kvadratu zvučnog tlaka, ukupni akustički intenzitet
se računa zbrajanjem pojedinačnih akustičkih intenziteta svih valova koji dolaze do prijemnika,
odnosno svih snopova koji sadrže prijemnik.
nUK IIII ...21 (3.30)
Ovaj izraz vrijedi za sferni, neusmjereni prijemnik, kakav se koristi u PMPS‐u. Ukoliko prijemnik
ima usmjerenu karakteristiku, potrebno je akustički intenzitet svakog pojedinog snopa
pomnožiti s koeficijentom usmjerenosti, ovisno o kutu nailaska zvučnog vala na prijemnik.
77
3.5.5 Akustički intenzitet snopa u PMPS‐u
Kako bi mogli prema jednadžbi (3.30) izračunati ukupni akustički intenzitet na mjestu
prijemnika, potrebno je izračunati, koliki je intenzitet na mjestu prijema svakog pojedinog
snopa, koji obuhvaća prijemnik. Ovaj proračun se vrši na dva načina: jedan za snopove
izravnog zvuka, a drugi za snopove koji su rezultat jedne ili više refleksija/refrakcija.
3.5.5.1 Akustički intenzitet snopa izravnog zvuka
Slika 3‐37 – Proračun intenziteta za izravni snop
Akustički intenzitet za izravni snop, proizašao od izvora snage PA iznosi:
rA er
PI
24 (3.31)
U ovoj jednadžbi je r ‐ udaljenost prijemnika od izvora, a γ ‐ koeficijent atenuacije medija u
kojem se zvuk širi.
3.5.5.2 Akustički intenzitet neizravnog snopa
Akustički intenzitet točke unutar snopa koji je prošao kroz barem jednu refleksiju ili refrakciju
(neizravni snop) računa se u odnosu na akustički intenzitet težišta trokuta, koji predstavlja
početak snopa (slika 3‐38). Neizravni snop širi se medijem s koeficijentom atenuacije γ.
Udaljenost početnog trokuta snopa od virtualnog izvora snopa jest r1, dok je udaljenost koju bi
zvuk prošao da se širi od virtualnog izvora snopa do prijemnika jednaka r2.
78
Slika 3‐38 – Proračun intenziteta za neizravni snop
Intenzitet u težištu početnog trokuta snopa jest I0. Vrijednost akustičkog intenziteta na mjestu
prijema jest:
)(2
2
21
012 rre
r
rII (3.32)
Prvi član izraza, koji je u obliku razlomka, predstavlja umanjenje intenziteta zbog širenja
prostorom, dok drugi, eksponencijalni, predstavlja umanjenje zbog atenuacije u mediju.
Vrijednost akustičkog intenziteta početka snopa I0 računa se temeljem vrijednosti akustičkog
intenziteta IK kraja prethodnog snopa, odnosno snopa od kojeg je nastao trenutno obrađivani
neizravni snop. Ovdje se uvodi aproksimacija, kojom se smatra da je na cijelom području
završnog trokuta prethodnog snopa, a samim time i početnog trokuta obrađivanog neizravnog
snopa, akustički intenzitet IK jednak.
Slika 3‐39 – Proračun intenziteta kraja snopa
79
Kako bi ovakva aproksimacija bila prihvatljiva, potrebno je da relativna razlika između
najmanje vrijednosti akustičkog intenziteta Imin i njegove najveće vrijednosti Imax ne bude veća
od dopuštene tolerancije akustičkog intenziteta tI.
ItI
II
min
minmax (3.33)
Ukoliko ovaj kriterij nije ispunjen, prethodni snop će podijeliti na četiri manja snopa (na način
prikazan u poglavlju 3.4.3.1), kako bi se razlika maksimalnog i minimalnog intenziteta umanjila.
Ovaj postupak će se ponavljati rekurzivno, sve dok se ne zadovolji jednadžba tolerancije (3.33).
Tolerancija tI se zadaje kao parametar simulacije, a za točan proračun potrebno je da bude
manja od očekivane greške samog fizikalnog modela simulacije.
Kada je tolerancija zadovoljena, akustički intenzitet početka obrađivanog snopa I0 računa se
izrazima:
KIRI 20 ‐ za slučaj refleksije
KIRI )1( 20 ‐ za slučaj refrakcije (3.34)
gdje je IK ‐ akustički intenzitet na kraju prethodnog snopa, R ‐ koeficijent refleksije na
diskontinuitetu prema jednadžbi (3.15).
3.5.6 Završna razmatranja
U ovom poglavlju prikazana je fizikalna osnova proračuna putanje snopova i vrijednosti
akustičkog intenziteta. Tom prilikom su na dva mjesta napravljene aproksimacije, koje
zahtijevaju dodatno obrazloženje:
- linearni proračun geometrije snopa prilikom refrakcije kao nelinearne transformacije
- aproksimacija da je na cijelog površini početka reflektiranog‐refraktiranog snopa
intenzitet isti
80
3.5.6.1 Nelinearnost refrakcije
Prema geometrijskoj akustici, putanje zvuka predstavljene su zrakama. Prilikom refrakcije na
diskontinuitetu dolazi do loma zraka prema Snellovom zakonu. Kod metode praćenja zraka,
Snellov zakon se primjenjuje izravno na proračun putanje zrake, te tom prilikom nije potrebno
raditi nikakve aproksimacije. Kod metode praćenja snopova pojavljuje se problem, koji je
opisan još na početku razvoja metode [127]. Zbog nelinearnosti Snellovog zakona, snop
prilikom refrakcije gubi fokus, odnosno nakon refrakcije se tri rubne zrake snopa više ne sijeku
u jednoj točci.
Slika 3‐40 – Primjer refrakcije snopa.
Na slici 3‐40 prikazan je primjer izrazito nepovoljnog slučaja refrakcije. To je refrakcija
izvornog, nepodijeljenog snopa, prilikom prelaska između medija jako različite brzine zvuka,
odnosno indeksa loma. Ovo predstavlja nepovoljan slučaj, jer izvorni snopovi, koji su nastali
konstrukcijom pomoću ikozaedra, ujedno imaju najveći prostorni kut u simulaciji – ostali
81
snopovi prilikom dijeljenja mogu imati samo manji prostorni kut. U ovom primjeru izabran je
prijelaz iz vode u zrak, gdje se brzina zvuka u ova dva medija razlikuje skoro pet puta.
Slika 3‐40 daje prikaz refrakcije na diskontinuitetu u bokocrtu. Izvorni snop prikazan je sa tri
pune linije koje predstavljaju rubne linije snopa. Naznačeni su kutovi prema okomici na plohu
diskontinuiteta. Kako je u ovom slučaju riječ o izvornom snopu nastalom od ikozaedra,
prostorni kut snopa iznosi 26.5°. Na slici 3‐40 je također prikazan i refraktirani snop, čije su
rubne zrake prikazane iscrtanim linijama. Kutovi refraktiranih zraka izračunati su sukladno
Snellovom zakonu. Ukoliko produžimo tri refraktirane bočne zrake snopa na stranu ishodišnog
medija, kako bi konstruirali virtualni izvor snopa, dobit ćemo situaciju kao na slijedećoj slici:
Slika 3‐41 – Rubne zrake reflektiranog snopa.
Vidljivo je (uvećani detalj desno) da se tri refraktirane bočne zrake ne sijeku u jednoj točci. Ova
pojava uzrokovana je nelinearnom prirodom Snellovog zakona loma. U PMPS‐u ova situacija
rješava se na način da se konstruira aproksimirani virtualni izvor refraktiranog snopa, kao što je
prikazano na slici 3‐42.
82
3‐42 – Konstrukcija aproksimiranog refraktiranog snopa.
Na mjestu koje predstavlja aritmetičku sredinu koordinata tri međusobna presjecišta
refraktiranih rubnih zraka stvara se virtualni izvor, koji je na donjem uvećanom detalju
prikazan krugom crvene boje. Potom se kreiraju tri rubne zrake sa ishodištem u virtualnom
izvoru, tako da prolaze kroz točke u kojima tri rubne zrake izvornog snopa sijeku plohu
diskontinuiteta. Tri tako konstruirane, aproksimirane rubne zrake prikazane su na slici crvenom
bojom. Na gornjem uvećanom detalju vidi se odstupanje stvarnih refraktiranih rubnih zraka
prikazanih crnom bojom i aproksimiranih refraktiranih zraka, prikazanih crvenom bojom.
Greška nastala aproksimacijom u ovom slučaju je u prosjeku 0,13°.
83
Treba napomenuti da je situacija prikazana u ovom primjeru predstavlja najgori slučaj, zbog
toga što je u obzir uzet nepodijeljeni, izvorni snop. U slučaju da je snop prošao jedno dijeljenje,
prostorni kut snopa biti će 13,25°, greška nastala aproksimacijom pada ispod 0,1°.
Kako se u PMPS‐u izvorni snopovi, zbog zadovoljenja tolerancije intenziteta u pravilu već na
početku praćenja dijele, tako se i njihov prostorni kut smanjuje. Snopovi se također dijele i u
nastavku praćenja ‐ zbog prilagođavanja geometriji. Stoga se greška zbog aproksimacije
refraktiranog snopa za tako dijeljene snopove također smanjuje, te je za očekivati da će u
realnom slučaju u prosjeku biti daleko ispod 0,1°.
3.5.6.2 Tradicionalni način proračuna intenziteta zvuka
U PMPS‐u se akustički intenzitet za točku obuhvaćenu snopom računa pomoću jednadžbe
(3.35).
)(2
2
21
012 rre
r
rII (3.35)
Pri tome je od fizikalnih vrijednosti potrebno znati intenzitet u težištu početnog trokuta snopa
– I0, te koeficijent atenuacije u mediju ‐ γ. Od geometrijskih parametara potrebno je znati
samo udaljenost težišta početka snopa od virtualnog izvora snopa – r1, te udaljenost
predmetne točke od virtualnog izvora snopa – r2 (slika 3‐43).
Slika 3‐43 – Proračun intenziteta zvuka
Ovaj način proračuna akustičkog intenziteta razlikuje se od tradicionalnog načina, uobičajenog
u metodi praćenja snopova. Ako se zvuk računa na tradicionalan način, potrebno je unazad
geometrijski rekonstruirati točnu putanju akustičke zrake, na način da se od mjesta prijema
vuče pravac do virtualnog izvora, a potom se taj pravac presječe sa plohom diskontinuiteta na
84
kojoj nastaje refleksija/refrakcija. Putanja zvuka u entitetu se potom konstruira tako da se
povuče linija od prijemnika do točke presjecišta. Ovaj postupak ponavlja se za sve
refleksije/refrakcije koje su se dogodile na putu od izvora do prijemnika (slika 3‐44).
Slika 3‐44 – Tradicionalan način proračuna
intenziteta zvuka
85
Nakon toga se intenzitet zvuka računa pomoću sljedeće jednadžbe:
REFRREFL
ii
N
kk
N
jj
N
i
r
tot
TRAD er
PI
1112
)1(4
(3.36)
gdje je prvi član ‐ smanjenje intenziteta zbog širenja prostorom (rtot ukupni pređeni put zrake
od izvora do prijemnika), drugi član ‐ atenuacija zbog širenja medijem, treći član ‐ apsorpcija
prilikom svih refleksija na putu, a četvrti član ‐ apsorpcija prilikom svih refrakcija na putu.
Vidljivo je da je tradicionalni način proračuna akustičkog intenziteta daleko složeniji od onog
primijenjenog u PMPS‐u.
Razmotrimo usporedbu na primjeru: neka se razmatra stablo snopova nastalih m = 4 promjena
na diskontinuitetima. Neka se svaki snop nakon transformacije dijeli na četiri snopa ‐ dva
refraktirana i dva reflektirana. Tada bi imali jedan izravni snop, četiri snopa prve generacije, 16
snopova druge generacije, 64 snopa treće generacije i 256 snopova četvrte generacije.
Uzmimo da je potrebno izračunati po jednu vrijednost intenziteta za svaki od n = 256 snopova
četvrte generacije stabla, što je realan primjer za proračun intenziteta jedne točke u prostoru.
Za tradicionalnu metodu potrebno je izračunati:
- 1024, odnosno nm operacije presijecanja zrake sa plohom
- 1280, odnosno nm+1 operacija računanja udaljenosti između dvije točke
- 1 operaciju potenciranja
- 5, odnosno m + 1 operacija funkcije ex
- 4, odnosno m funkcija množenja
Za PMPS‐ metodu potrebno je:
- 512, odnosno 2 * n operacija računanja udaljenosti između dvije točke
- 512, odnosno 2 * n operacije potenciranja
- 256, odnosno n operacija oduzimanja
- 256, odnosno n operacija funkcije ex
86
Vidimo da je složenost metode PMPS u ovom slučaju linearna ‐ O(6*n), dok je složenost
tradicionalne metode stupanjska ‐ O(nm), što je puno nepovoljnije.
Dakle prednost proračuna akustičkog intenziteta u PMPS‐u je na strani brzine, međutim, pri
tome se do određene mjere umanjuje točnost proračuna (slika 3‐45). Naime, kod PMPS‐a se za
razliku od tradicionalne metode ne računa točna putanja od izvora do prijemnika (zelena
linija), već se ona aproksimira sa putanjom od izvora preko težišta trokuta koji zatvara snop do
prijemnika (crvena linija).
Slika 3‐45 – Greška prilikom proračuna intenziteta
zvuka.
Razmotrimo kolika je stvarna greška na nepovoljnom primjeru prikazanom na slici 3‐45. Izvorni
snop nastao konstrukcijom pomoću ikozaedra, širine 26,5°, nailazi na plohu diskontinuiteta
pod kutom od 45°(maksimalna vrijednost kuta za pravilnu prostoriju u obliku kvadra). Srednja
udaljenost od izvora do plohe diskontinuiteta je 6 m, a zvučni val se širi u zraku. Ovaj primjer
prikazan je na slici 3‐46.
U ovakvom slučaju omjer minimalne vrijednosti intenziteta Imin i vrijednosti u težištu snopa I0
(za koji PMPS računa) iznosi 3,34 dB. Taj iznos je ujedno maksimalno odstupanje koje može
nastati zbog aproksimacije ‐ naime za sve druge putanje zvuka unutar snopa razlika intenziteta
će biti manja. Ukoliko ova vrijednost prelazi toleranciju zadanu u simulaciji, izvršit će se
87
dijeljenje snopova na četiri manja snopa. Nakon jednog dijeljenja snopova maksimalna greška
biti će 1,26 dB, dok bi nakon dva dijeljenja greška iznosila 0,51 dB.
Slika 3‐46 – Primjer greške prilikom proračuna intenziteta zvuka.
Dakle uzastopnim dijeljenjem snopova maksimalna greška može se smanjiti unutar željene
tolerancije. Negativna strana ovakvog dijeljenja postupka jest, što se broj snopova u simulaciji
na taj način povećava, i to za četiri puta po svakom dijeljenju. Ovaj postupak umanjuje
ubrzanje postignuto jednostavnijim proračunom intenziteta u odnosu na tradicionalni način.
Opravdanost ovakvog načina proračuna, biti će potvrđena mjerenjima prikazanim u ovom
radu. Osim toga, ovakvim načinom proračuna svi podaci vezani za proračun snopa sadržani su
u samom objektu snopa. Na taj se način otvara prostor za jednostavno simuliranje difuznih
refleksija i difrakcije snopa, koje bi kod tradicionalne metode bilo složenije. Također, to
omogućava i uzdužno dijeljenje snopa zbog simuliranja nehomogenosti samog medija, što kod
tradicionalne metode proračuna intenziteta ne bi bilo moguće.
88
4 PROGRAMSKO OKRUŽENJE U KOJEM JE REALIZIRANA SIMULACIJA
4.1 Uvod
U ovom poglavlju je opisano programsko okruženje u kojem je realizirana simulacija. Najprije
je objašnjen oblik korisničkog sučelje, a zatim i programski kod same simulacije.
4.2 Korisničko sučelje
Korištenje simulacije se može prikazati putem dva obrasca uporabe (eng. UML Use Case
Diagram). Prvi dio rada sa korisničkim sučeljem predstavlja definiranje scene i prikazan je na
slici 4‐1. Korisnik najprije definira geometriju scene, za što je potrebno uvesti geometriju ploha
diskontinuiteta, zatim pomoću njih definirati entitete i školjke, te definirati poziciju izvora
zvuka. Korisnik potom definira fizikalne parametre scene. Za sve ove radnje korisnik se služi
kontrolom stabla i kontrolom 3D prikaza scene. Ovaj dio korištenja simulacije završava
proračunom topologije scene. Ukoliko on nije uspješan postupak se ponavlja.
Slika 4‐1 ‐ Obrazac upotrebe definiranja scene.
89
Drugi dio rada s korisničkim sučeljem simulacije predstavlja izvođenje simulacije te analiza
rezultata simulacije. Ovaj dio je prikazan na slici 4‐2. Nakon uspješnog proračuna topologije
scene korisnik pokreće izvođenje simulacije, koje obuhvaća proračun snopova i njihovo
udruživanje u oktalno stablo snopova. Korisnik potom pomoću kontrole stabla i kontrole 3D
prikaza može pregledati jedan ili više izračunatih snopova. Kao krajnji rezultat simulacije
korisnik pokreće prikaz plošnog skena koji obuhvaća proračun razine intenziteta zvuka za svaku
točku skena. Korisnik pregled snopova i plošni sken može kontrolirati putem kontrole stabla i
kontrole 3D prikaza.
Korisnik
Proračun snopova
Proračun oktalnog stabla snopova
Prikaz plošnog skena
Kontrola scene putem kontrole stabla
Kontrola 3D prikaza
1
1
«uses»
«uses»
«uses»
«uses»
Proračun topologije scene
1
1..*
Izvođenje simulacije
1
1
«extends»
«extends»
Prikaz jednog ili više snopova
1 1
Proračun razine intenziteta zvuka
«extends»
Slika 4‐2 ‐ Obrazac upotrebe izvođenja simulacije te
analize rezultata simulacije.
90
Korisničko sučelje simulacije prikazano je na slici 4‐3.
Slika 4‐3 – Korisničko sučelje simulacije.
Sučelje se sastoji od slijedećih dijelova:
- izbornika, koji se nalazi na vrhu prozora
- trake s alatima, koji se nalazi ispod izbornika
- kontrole stabla (eng. treeview) u lijevom centralnom dijelu ekrana
- 3D prikaza u desnom centralnom dijelu ekrana
- statusne trake koja se nalazi na dnu ekrana.
Težište rada sa simulacijom je u korištenju kontrole stabla i 3D prikaza. Pomoću kontrole stabla
obavlja se uvoz geometrije, definiranje topologije i promjena svojstava objekata. Pomoću 3D
prikaza obavlja se vizualizacija i analiza scene, uz kontrolu prikaza. Izbornici se koriste za
učitavanje i snimanje scene, te pokretanje proračuna.
91
4.2.1 Kontrola 3D prikaza
U 3D prikazu se prikazuju dijelovi scene, te snopovi i na kraju rezultati simulacije u obliku
prostornog skena. Kao pomagalo pri orijentaciji služi mreža linija i koordinatni sustav.
Koordinatni sustav prikazuje x i y koordinatne osi, na kojima su označene koordinate od 0, 10 i
20 m. Za prikaz se koristi lijevi koordinatni sustav, što znači da je z os prilikom pokretanja
simulacije orijentirana prema gore.
3D prikaz se kontrolira s tri alata: povećavanje (eng. zoom), okretanje (eng. rotate) i pomicanje
(eng. pan). Sva tri alata se kontroliraju pomoću miša i to na slijedeći način:
- povećavanje/smanjivanje se vrši okretanjem kotačića na mišu
- rotacija se vrši tako da se miš pomiče uz pritisnutu lijevu tipku miša
- pomicanje se vrši tako da se miš pomiče uz pritisnut kotačić miša
4.2.2 Kontrola scene putem kontrole stabla
U kontroli sa stablom je određen hijerarhijski prikaz strukture scene. Tako je scena sastavljena
od četiri grupe elemenata: ploha diskontinuiteta, entiteta, ljuski i izvora. U primjeru na slici 4‐3
scena ima pet ploha diskontinuiteta, pet entiteta, sa sveukupno sedam ljusaka, te prijemnik.
U grupi sa plohama diskontinuiteta, uz svaku plohu diskontinuiteta prikazan je kvadratić s
bojom, kojom je ploha obojana u 3D prikazu, potom redni broj plohe u sceni, te na kraju naziv
plohe. Također, za svaku plohu diskontinuiteta prikazano je koje entitete razdvaja – ispod
plohe entiteta navedena su dva ulaza, koji u ispravnoj topologiji sadrže dva entiteta koje ploha
razdvaja.
Za svaki entitet napisan je redni broj entiteta, te ime entiteta. Ispod entiteta prikazana je grupa
koja sadrži ljuske koje entitet omeđuju, a pod svakom ljuskom je prikazana grupa ploha
diskontinuiteta koja čini tu ljusku.
Rezultat izvršene simulacije prikazan je na slici 4‐4:
92
Slika 4‐4 – Rezultat simulacije.
Vrijednosti razine intenziteta zvuka u plošnom skenu prikazane u nijansama boja od bijele, koja
predstavlja najvišu razinu intenziteta zvuka, preko žute, narančaste, crvene do crne, koja
predstavlja najnižu razinu intenziteta zvuka. U kontroli stabla, nalazi se legenda, koja pokazuje
koju razinu intenziteta zvuka pokazuje pojedina boja.
Osim plošnog skena, kao konačnog rezultata simulacije, moguće je pratiti i geometrijsko
širenje pojedinih snopova zvuka. Na slici 4‐5 prikazani su pojedini snopovi simulacije.
Reflektirani snopovi prikazani su crvenom bojom, dok su refraktirani snopovi prikazani
ljubičastom bojom.
93
Slika 4‐5 – Prikaz pojedinih snopova.
Izbor snopova koji će biti prikazati vrši se također u kontroli stabla, gdje je u hijerarhijskom
obliku prikazano stablo snopova nastalih proračunom u simulaciji.
94
4.3 Struktura koda
Struktura koda će u ovom poglavlju biti prikazana na najgrubljoj razini, UML dijagramom klasa,
jer bi detaljno prikazivanje oduzelo previše prostora. Osim toga najvažniji algoritmi su već
detaljno opisani u prethodnim poglavljima, a standardne komponente poput Microsoft
Foundation Classes (MFC) i DirectX biblioteka su u literaturi opsežno opisane. Detaljnije će biti
opisane samo klase PMPS‐a, koje sadržavaju podatke i kod same simulacije, iako se niti njihov
kod neće prikazivati u potpunosti, iz već navedenog razloga.
Za razvoj simulacije izabran je jezik C++. Ovaj jezik predstavlja standard za programiranje
zahtjevnih aplikacija, te omogućava korištenje velikog broja kvalitetnih i dobro testiranih
biblioteka, koje na sebe preuzimaju veliki dio funkcionalnosti programa, poput grafičkog
korisničkog sučelja, grafičkog jezika, matematičke biblioteke primitiva. Korištenjem tih
biblioteka ušteđeno je vrijeme potrebno za pisanje i testiranje dijela koda, te pažnja mogla u
potpunosti posvetiti programiranju same simulacije.
Kao razvojna okolina odabran je Microsoft Visual Studio, na Windows platformi. Za
programiranje korisničkog sučelja odabran je MFC, iz razloga što je ta biblioteka provjerena na
širokoj bazi korisnika kroz dugo vrijeme, a pomoću nje je moguće obavljati i najfinije
prilagodbe sučelja.
Za perspektivni sjenčeni prikaz scene izabran je Microsoft DirectX. Prilikom izbora pojavila se
dilema između te biblioteke i OpenGL‐a. DirectX je izabran kako bi svi programski elementi bili
od istog proizvođača.
Kao temelj za klase matematičkih primitiva, izabrana je biblioteka Iana Dunna [53] koja je
dobro dokumentirana i testirana. Međutim, kako je rad na simulaciji odmicao, zbog posebnih
zahtjeva simulacije, klase iz te biblioteke su mijenjane i proširivane, tako da su na kraju
uglavnom sve klase iz biblioteke doživjele značajne promjene. Neke klase poput BSP stabla,
oktalnog stabla, određenih vrsta matrica i sl. nisu uopće postojale u navedenoj biblioteci. Stoga
su one napisane od početka.
Struktura programa i način korištenja ovih biblioteka koncipirana je slojevito ‐ tako da je u
svakom trenutku moguće neki od dijelova zamijeniti sa sličnim drugog proizvođača, uz što
95
manje preinake ostalog dijela koda. Primjerice DirectX je moguće zamijeniti sa OpenGL‐om,
MFC sa .NET‐om.
Programske datoteke imaju ukupno oko 23.000 linija koda (bez već gotovih biblioteka, koje su
priključene simulaciji).
Klase MFC-a
Klase simulacije
Klase DirectX-a
Topološke klase
Geometrijske klase
Slika 4‐6 – Dijagram strukture klasa.
Program se sastoji od nekoliko cjelina, koje međusobno komuniciraju (slika 4‐6). Središnji dio
su klase simulacije, koje obuhvaćaju sve entitete, diskontinuitete, te ostale podatke i metode
simulacije. Osim klasa simulacije sastavnice su MFC klase, DirectX klase, te matematičke klase,
koje omogućavaju rad sa geometrijom i topologijom scene.
96
4‐7 – UML dijagram klasa.
-_objD : CVector2d-_objEnd : CVector2d-_objStart : CVector2d
CSegment2d
+x : double+y : double
CVector2d
-_objLine[] : CSegment2d-_objPoint[] : CVector2d
CTriangle2d
+x : double+y : double+z : double
CVector
-_objD : CVector2d-_objEnd : CVector2d-_objStart : CVector2d
CSegment
-_objLine[] : CSegment-_objPoint[] : CVector
CTriangle
-_nIndex : long
CVertex
-_nIndex : long
CEdge
-_nIndex : long-_pV[] : CVertex-_pE[] : CEdge-_pMesh : CMesh+nOrder : long
CFace
1
-rubovi 3
1
-vrhovi 3
-_colFace[]-_colEdge[]-_colVertex[]
CMesh
1
-faceovi TIN-a
*
1
-rubovi TIN-a
*
1
-vrhovi TIN-a
*
-_backChild : CBSPTreeNode-_frontChild : CBSPTreeNode-_parent : CBSPTreeNode-_myFace : CFace-_colCoPlanar[] : CFace-_colBackFMs[] : CFace-_colFrontFMs[] : CFace
CBSPTreeNode
-_objCenter : CVector-_objAABB : CAABB-_colBeams : CBeam-_bIsLeaf : bool-_colPQuads[] : COctree
COctree
+pObjMesh : CMesh-_pObjEnt1 : CEntity-_pObjEnt2 : CEntity+pObjMeshD3D : ID3DXMesh
CBoundarySurface
-geometrija plohe diskontinuiteta
11
-_colPBoundarySurfaces[] : CBoundarySurface+pObjMesh : CMesh+pObjMeshD3D : ID3DXMesh
CShell
1
-plohe koje čine ljusku*
1
-geometrije ljuske
1
-_colPShells[] : CShell-_pColBSPTree : CBSPTreeNode+dAttn : double+dDens : double+dSpeed : double+dZ : double
CEntity
1
-BSP stablo entiteta
11
-stablo*
1
-faceovi BSP stabla
*
1
-ljuske entiteta* -_colPEntities[] : CEntity-_colPBoundarySurfaces : CBoundarySurface-_pObjSrc : CSource-_pObjOTRoot : COctree-_pObjScan : CScan+dDivTrsh : double+dIntTrsh : double+dPow : double+dVolTrsh : double-device : IDirect3DDevice9
CScene
+pObjPoint : CVector
CSource
-_pStartT : CTriangle-_pEndT : CTriangle-_pSourcePoint : CVector+objAABB3 : CAABB+nOrder : int+dInt : double+dVol : double+Triangle : IDirect3DVertexBuffer9
CBeam
-_colScanPoints : CVector-_colScanIntensity : double-_objBRC : CVector-_objTLC : CVector
CScan
1-izvor
1
CAABB 1
-područje oktalnog stabla
1
1
-stablo *
1
-oktalno stablo snopova u sceni
1
1
-snopovi unutar jednog oktanta oktalnog stabla
*
1
-entiteti scene
*
1
-plohe diskontinuiteta scene
*
1
-rezultat simulacije*
-početni i krajnji trokut snopa
1
*
-izvor snopa1
*
članske funkcije koriste
-...
IDirect3DVertexBuffer9
-...
IDirect3DDevice9
-DirectX device
1
1
-DirectX geometrija
1
1
-...
ID3DXMesh
-DirectX mesh1
1
-DirectX mesh1
1
-...
CMainFrame
-pObjScene : CScene-...
CSimbaDoc
-device : IDirect3DDevice9-...
CSimbaView
-simulirana scena
11
-DirectX device1
1
Klase DirectX-a
Klase MFC-aGeometrijske klase Topološke klase Klase simulacije
-DirectX mesh1
1
97
4.3.1 Kod simulacije – klase PMPS‐a
Na 4‐7 prikazan je UML dijagram klasa. Srž simulacije predstavlja klasa CScene. U njoj je
pohranjena cijela geometrija scene, a ona također obuhvaća i sve metode za proračun
simulacije. Klasa CScene sadrži također i vezu prema DirectX klasama za prikaz, te MFC
klasama koje sadrže grafičko sučelje simulacije.
Geometrija scene je pohranjena u kolekciji objekata klase CBoundarySurface i CEntity.
U kolekciji objekata CBoundarySurface pohranjena je izvorna, neprovjerena i topološki
nepovezana geometrija ploha diskontinuiteta, koju korisnik učitava iz DXF datoteka. U kolekciji
objekata CEntity pohranjena je geometrija scene, nakon što je korisnik definirao sve
entitete i ljuske, te nakon što je izvršena prethodna obrada scene, gdje je izračunata
topologija.
Svaki objekt CEntity ima jednu ili više ljuski, koje su pohranjene u objektima klase CShell.
Plošna topologija i geometrija svake ljuske je pohranjena u objektu klase CMesh. Za svaku
ljusku se također pohranjuje i kolekcija ploha diskontinuiteta, koje predstavljaju dijelove ljuski,
a one su pohranjene u objektima klase CBoundarySurface.
Klasa CMesh je vršna klasa, koja obuhvaća geometriju i plošnu topologiju za svaku od ploha
diskontinuiteta i ljuski. Ona je sastavljena od kolekcija objekata klase CVertex, CEdge i
CFace, koje nasljeđuju klase CVector, CSegment i CTriangle. Tri temeljne klase ‐
CVector, CSegment i CTriangle ‐ sadrže geometrijske podatke i metode. Tri
specijalizirane klase, koje od njih nasljeđuju ‐ CVertex, CEdge i CFace - sadrže još i
topološke podatke i metode.
Objekti klase CVertex nasljeđuju od klase CVector, te sadrže topološke i geometrijske
informacije jednog vrha mreže. Objekti klase CEdge nasljeđuju od klase CSegment, te
predstavljaju rubove trokuta, dok objekti klase CFace, koji nasljeđuju od CTriangle,
predstavljaju trokute mreže. Sve ove klase napravljene su za rad u tri dimenzije.
98
Osim navedenih geometrijskih klasa, u simulaciji postoje i klase CVector2d, CSegment2d i
CTriangle2d. Ove klase su napravljene za rad u dvije dimenzije, a koriste se prilikom
proračuna dijeljenja snopova, odnosno sakrivanja projiciranih trokuta. Ovaj proračun realiziran
je metodama klase CScene.
Prostorna topologija scene je pohranjena u stablu objekata klase CBSPTreeNode, koje je
rekurzivna, samoreferentna struktura. Tijekom stvaranja BSP stabla, koje je zapisano u
CBSPTreeNode, vrši se i promjena geometrije samih entiteta. Razlog je u tome što entiteti
mogu biti konkavni, pa tada pojedine plohe podjele prostora, prolaze kroz entitete, te je
potrebno podijeliti geometriju entiteta. Ova podjela se automatski registrira u klasama u
kojima je geometrija pohranjena.
Od ulaznih klasa koje sačinjavaju klasu CScene potrebno je još spomenuti klasu CSource,
koja sadrži podatke o izvoru zvuka.
Tijekom proračuna u klasi CScene stvaraju se snopovi, kao objekti klase CBeam. Zbog bržeg
prostornog pretraživanja ovi su objekti organizirani u prostornu strukturu oktalnog stabla, koje
je pohranjeno u objektima klase COctree. Ovo je samoreferentna struktura u obliku stabla,
koja u listovima sadrži kolekcije objekata klase CBeam, dok u čvorovima sadrži točku dijeljenja
prostora pohranjenu u objektu klase CVector, te prostor koji pojedini oktant obuhvaća,
definiran objektom klase CAABB. Ova klasa je topološka klasa, koja se koristi kao rubni kvadar
poravnat sa koordinatnim osima (eng. axially aligned boundary box ‐ AABB), odnosno
prostorni spremnik za grubo definiranje volumena objekta.
Klasa CScene sadrži također i objekt klase CScan, u koji se nakon završene faze praćenja
snopova i generiranja rezultata, pohranjuje plošni sken s vrijednostima razine intenziteta.
Osim klasa koje sadrže geometriju, topologiju i proračunski dio PMPS‐a, klasa CScene vezana
je i sa DirectX i MFC klasama. Komunikacija sa DirectX‐om ostvarena je preko članske varijable
device klase CScene, koja služi metodama klase za upravljanje s prozorom u kojem se
99
prikazuje 3D geometrija simulacije. Komunikacija sa MFC‐om realizirana je na način da MFC
klasa CSimbaDoc sadrži objekt klase CScene.
Od ostalih DirectX klasa potrebno je spomenuti ID3DXMesh i
IDirect3DVertexBuffer9. ID3DXMesh sadrže klase CBoundarySurface,
CShell i CSource i u njemu je pohranjena TIN mreža za prikaz u DirectX‐u.
IDirect3DVertexBuffer9 sadrži klasa CBeam, a pomoću njega se vrši 3D prikaz
snopova.
MFC klase koje definiraju korisničko sučelje simulacije su CMainFrame, CSimbaView i
CSimbaDoc. Klasa CMainFrame realizira funkcionalnost sučelja poput rada s izbornicima, s
alatnim trakama, kontrolom stabla. Klasa CSimbaView realizira onaj dio sučelja koji je vezan
uz prikaz, te interakciju miša i tipkovnice sa prikazom. U klasi CSimbaDoc realizirane su sve
funkcije vezane uz podatke simulacije, a u njoj je i deklarirana varijabla objScene klase
CScene, putem koje MFC klase komuniciraju sa klasama simulacije. U ovoj klasi realizirano je i
spremanje, te čitanje s diska i to putem funkcije Serialize(). Svaka od klasa simulacije
također ima funkciju Serialize() pomoću koje se vrši pohrana i učitavanje pojedine klase.
Kako bi se optimizirale prostorne performanse simulacije, odnosno upotreba memorije,
alokacija memorije se u pravilu obavlja dinamički. Također, prilikom pozivanja pojedinih
funkcija u pravilu se prosljeđuju pokazivači na objekte ili njihove reference, zbog brzine rada.
U programu se intenzivno koristi standardna biblioteka predložaka ‐ Standard Template
Library (STL). Iz ove biblioteke koriste predlošci <vector>, <dequeue> i <multiset>.
Vektor se koristi kao spremnik u onim slučajevima, gdje obično polje ne zadovoljava
programske zahtjeve. Ondje gdje nasumično pristupanje članovima spremnika nije potrebno,
koristi se dvostrani red, realiziran u obliku vezane liste, koji omogućava brzo umetanje i
brisanje članova. Na mjestima gdje je bitan sortirani obilazak članova, koristi se multiset, koji je
100
u STL‐u u stvari realiziran kao sortirano binarno stablo. U pravilu svi STL spremnici u simulaciji
sadrže umjesto samih objekata, pokazivače na objekte.
Za prikaz podataka u tabličnom obliku koristi se kontrola MFC GridControl verzije 2.26 autora
Chrisa Maundera [138]. Ova kontrola je puno fleksibilnija i moćnija od klasične MFC kontrole.
Za pohranjivanje stringova koristim MFC klasu CString, osim kod prijenosa parametara
funkcija, koje stringove zahtijevaju u nekom drugom formatu.
4.4 Ocjena prostorne i vremenske složenosti
Kako bi se ustanovila učinkovitost metode u ovom poglavlju je izvršena analiza prostorne i
vremenske složenosti algoritama metode. Najprije je analizirana složenost prvog, glavnog
dijela algoritma koji vrši praćenje snopova. Potom je analizirana složenost drugog dijela
algoritma, koji generira rezultate u obliku rastera točaka ‐ plošne raspodjele razina intenziteta
zvuka. Složenost algoritama analizirana je u odnosu na tri parametra:
n ‐ broj trokuta scene
r ‐ najviši red refleksija/refrakcija
s ‐ rezolucija plošne raspodjele
4.4.1 Složenost algoritma praćenja snopova
Sekvencijski dijagram algoritma praćenja snopova prikazan je na slici 4‐8. Algoritam je sadržan
u metodi OnEditCalculateBeams, koja prima dva parametra: colRawBeams - stog
neobrađenih snopova, generiranih putem ikozaedra; te r - maksimalni red
refleksije/refrakcije za koji se vrši praćenje.
101
CMainFrame:objMain CScene:objScene
OnEditCalculateBeams(colRawBeams, r)
colFinishedBeams
CalculateOrderFromPoint(colTriangles)
O(n)
FindIlluminatedTriangles(colTriangles)
colIlluminatedTrianglesO(n/2)
BackfaceCull(colIlluminatedTriangles)
colIlluminatedTriangles O(k), k~?n
TransformAndClip(colIlluminatedTriangles)
colTransformedTriangles O(k), k~?n
ProjectTriangles(colTransformedTriangles)
colProjectedTriangles O(k), k~?n
HiddingAndDividing(colProjectedTriangles)
colDividedTriangles O((k/2)2), k~?n
loop
colRawBeams.empty() != true
ProcessDividedTriangles(colDividedTriangles, r)
colFinishedBeams, colRawBeamsO(k), k~?n
Slika 4‐8 – Sekvencijski dijagram algoritma praćenja
snopova
102
Metoda sadrži jednu petlju, koja obrađuje jedan po jedan snop, sa stoga neobrađenih
snopova. Petlja se ponavlja sve dok stog neobrađenih snopova nije prazan. Prvo će se
razmotriti sadržaj petlje, te složenost metoda koje se obavljaju u petlji, pa će se potom
analizirati broj ponavljanja ove petlje, te tako doći do ukupne složenosti.
Unutar petlje, za svaki pojedini snop, vrši se niz metoda, koje obrađuju nailazak snopa na
diskontinuitet, zatvaraju snop, te stvaraju nove, neobrađene snopove, nastale na
diskontinuitetu i to pod uvjetom da nije postignut maksimalni broj refleksija/refrakcija.
Najprije se za predmetni snop poziva metoda CalculateOrderFromPoint, čiji je
argument kolekcija colTriangles, sa BSP stablom scene. Obilaskom BSP stabla, računa se
redoslijed trokuta geometrije, u odnosu na izvor snopa. Obilazak binarnog stabla, ako je ono
dobro izbalansirano, ima složenost O(n), gdje je n ukupni broj trokuta geometrije.
Potom se poziva metoda FindIlluminatedTriangles, čiji je zadatak pronaći trokute
koje snop obasjava. Ova metoda najprije traži prvi obasjani trokut, a potom iz topoloških
informacija provjerava jesu li susjedni trokuti također obasjani. Bez korištenja topologije njena
prosječna složenost bi bila O(n), dok je korištenjem topologije njena prosječna složenost
smanjena na O(n/2). Ova metoda vraća kolekciju obasjanih trokuta
colIlluminatedTriangles, koja sadrži ukupno k trokuta. Broj obasjanih trokuta k je
puno manji od ukupnog broja trokuta n, te se njegov iznos može aproksimirati drugim
korijenom n.
nk (4.1)
Izraz (4.1) dobiven je mjerenjem simulacija scena opisanih u poglavlju 5.
Obasjani trokuti se zatim upućuju metodi BackFaceCull, koja vrši filtriranje
uspoređivanjem orijentacije normala trokuta. U ovoj metodi se nalazi jedna petlja, koja prolazi
kroz sve obasjane trokute, te je stoga njena složenost O(k).
103
Potom se pozivaju metode TransformAndClip, te ProjectTriangles, koje vrše
transformaciju obasjanih trokuta u koordinatni sustav snopa, te njihovu perspektivnu
projekciju. Njihova složenost je O(k), jer svaka od njih sadrži po jednu petlju kojom prolazi kroz
sve trokute kolekcije.
Transformirane i projicirane trokute zatim obrađuje metoda HiddingAndDividing. Ona
sadrži dvije ugnježdene petlje, koje obrađuju trokute i prebacuju ih tom prilikom sa kolekcije
colProjectedTriangles na kolekciju colDividedTriangles. U početku
colProjectedTriangles ima k članova, dok je colDividedTriangles prazna. Na
kraju je colProjectedTriangles prazna, a colDividedTriangles ima k članova.
Stoga je ukupna složenost metode O( (k/2)2 ).
Posljednja metoda koja se izvršava prije kraja petlje jest ProcessDividedTriangles.
Ova metoda petljom prolazi kroz kolekciju colDividedTriangles, te pomoću obrađenih
trokuta zatvara postojeće i stvara nove neobrađene snopove, ukoliko nije još dostignut
maksimalni red refleksija/refrakcija. Složenost ove metode jest O(k).
Od svih metoda koje se u petlji izvršavaju, najveću složenost imaju slijedeće metode:
CalculateOrderFromPoint, čija je složenost O(n); FindIlluminatedTriangles,
čija je složenost O(n/2); te HiddingAndDividing, čija je složenost O((k/2)2), odnosno
O(n/4). Iz ovoga je vidljivo da se ukupnu složenost jednog prolaza petlje može aproksimirati sa
izrazom O(n).
Ponavljanje petlje se obavlja sve dok se ne isprazni stog neobrađenih snopova. On u početku
sadrži samo izvorne snopove nastale od ikozaedra, čiji je broj 20. Obrađeni snop se nakon
obrade skida sa stoga neobrađenih snopova, a na stog se stavljaju novi snopovi, koji su nastali
nailaskom obrađenog snopa na diskontinuitet. Prosječni broj snopova koji nastaje dijeljenjem
jest d. Broj d jest proporcionalan veličini upadnog snopa, a obrnuto proporcionalan prosječnoj
veličini trokuta geometrije.
104
Dijeljenjem izvornih snopova nastaje 20*d neobrađenih snopova, koji će potom rezultirati sa
(20*d)*d novih snopova u slijedećoj generaciji. Općeniti izraz za broj nastalih dijeljenih
snopova jest:
1*20*20*20*2020 12 rr ddddb (4.2)
gdje je b ukupni broj ponavljanja petlje, a ujedno i ukupni broj generiranih snopova, d je
prosječni broj snopova nastalih dijeljenjem jednog snopa, a r je najviši red refleksije/refrakcije.
Iz ovog izraza, koja daje ukupni broj ponavljanja petlje, te iz složenosti jednog prolaza petlje
koja jest O(n), dobivamo ukupnu složenost algoritma:
)*)1*20(()*()( 1 ndOnbOnT r (4.3)
Uzevši u obzir činjenicu da je dr+1>>20>>1 kao konačan izraz vremenske složenosti algoritma
dijeljenja snopova dobiva se:
)*(),( 1 ndOnrT r (4.4)
Vidljivo je da vremenska složenost algoritma dijeljenja snopova linearno ovisna o složenosti
geometrije (odnosno ukupnom broj trokuta scene), te je stupanjski ovisna o maksimalnom
praćenom redu refleksija/refrakcija.
Priliko razmatranja prostorne složenosti bitna je činjenica da je memorijski najzahtjevniji
objekt u ovom algoritmu snop. Stoga je zauzeće memorije proporcionalno je broju generiranih
snopova b (4.2). Shodno tome prostorne performanse su prikazane su slijedećim izrazom:
)()( 1 rdOrM (4.5)
105
4.4.2 Složenost generiranja plošne raspodjele intenziteta zvuka
Sekvencijski dijagram algoritma generiranja plošne raspodjele intenziteta zvuka prikazan je na
slici 4‐9.
CMainFrame:objMain CScene:objScene
OnEditCalculateScan(colOctreeBeams, s)
arrIntensity
FindLeaf(colOctreeBeams)
colLeafO(x), x<<n
IsPointInsideBeams(objLeaf)
colBeamsO(n/8x)
loop
for( row=0; row < s ; row++ )
loop
for( col=0; col < s ; col++ )
CalculatePointintensity(colBeams)
arrIntesity[row][col]
Slika 4‐9 – Sekvencijski dijagram algoritma
generiranja plošne raspodjele
106
Algoritam je sadržan u metodi OnEditCalculateScan, koja prima dva parametra:
colOctreeBeams – oktalno stablo sa snopovima; s –rezoluciju plošne raspodjele, koja
predstavlja broj točaka raspodjele na jednoj osi.
Metoda sadrži dvije ugnježdene petlje, a sadržaj petlji obrađuje jednu točku rastera prostorne
raspodjele.
Unutar petlji, najprije se za predmetnu točku poziva metoda FindLeaf, čiji je argument
kolekcija colOctreeBeams, koja sadrži kolekciju snopova u obliku oktalnog stabla. Zadatak
funkcije je naći list stabla u kojem se nalazi predmetna točka. Obilazak oktalnog stabla ima
složenost O(x), gdje je x broj nivoa oktalnog stabla. Broj x je zadan prilikom generiranja
oktalnog stabala ‐ ukoliko se u jedan list želi smjestiti manje snopova, x će biti veći, a ukoliko se
dopušta da u listu ostane više snopova x će biti manji. Međutim, kako svaki novi nivo u
oktalnom stablu, odnosno svako povećanje broja x smanjuje prosječni broj snopova u listu za
faktor 8, u realnom slučaju broj x nije velik, te je uglavnom manji od deset.
Pronađeni list stabla objLeaf se potom prosljeđuje funkciji IsPointInsideBeams, koja
petljom prolazi kroz sve snopove unutar pronađenog lista, te za svaki od njih provjerava, je li
sadržava predmetnu točku. Kako svaki nivo oktalnog stabla uzrokuje smanjenje prosječnog
broja snopova u listu za faktor 8, prosječni broj snopova u listu je za 8x manji od ukupnog broja
snopova. Stoga je složenost ove funkcije iznosi:
x
nO
8 (4.6)
Funkcija IsPointInsideBeams vraća kolekciju snopova colBeams koji sadrže točku, a
koji predstavljaju podskup snopova sadržanih u objLeaf . Ova se kolekcija prosljeđuje potom
funkciji CalculatePointIntensity koja će izračunati intenzitet svakog snopa u
predmetnoj točci, te zbrojiti doprinose svakog od njih. Funkcija vraća vrijednost razine zvučnog
intenziteta u točci u obliku jednog člana polja arrIntensity[row][col]. Nakon što se u
107
potpunosti izvrše obje petlje, ovo polje predstavlja ujedno i krajnji rezultat funkcije
OnEditCalculateScan.
Od svih funkcija koje čine tijelo petlje složenost funkcije IsPointInsideBeams je daleko
najveća, pa je ukupna složenost jednog prolaza petlje jednaka izrazu (4.6).
Razmotrimo sada vremensku složenost s obzirom da algoritam ima dvije ugnježdene petlje.
Svaka petlja će se ponoviti s puta, pa će se stoga sadržaj obje petlje ukupno ponoviti s2 puta.
Ako primijenimo tu činjenicu na izraz za složenost jednog izvršenja petlje (4.6) dobivamo
ukupnu složenost algoritma:
x
nsO
82 (4.7)
U realnom slučaju broj n je istog reda veličine kao i s. Međutim n porastu složenosti doprinosi
podijeljen sa potencijom broja osam, dok s doprinosi sa kvadratom. Stoga možemo zanemariti
doprinos broja n složenosti, te ukupna vremenska složenost algoritma iznosi:
2)( sOsT (4.8)
Prostorna složenost ovog algoritma se ponaša po zakonu:
2)( sOsM (4.9)
Razlog tomu je što je rezultat algoritma polje vrijednosti razina intenziteta plošne raspodjele, a
broj članova polja je jednak kvadratu rezolucije s.
108
4.4.3 Ukupna prostorna i vremenska složenost proračuna
Iz prethodna dva razmatranja vidljiva je ovisnost performansi proračuna o tri najvažnija
parametra. Vremenske performanse su linearno zavisne o broju trokuta scene ‐ n (4.4),
stupanjski su zavisne o najvišem redu refleksija/refrakcija ‐ r (4.4), dok su kvadratno zavisne o
rezoluciji plošne raspodjele intenziteta zvuka ‐ s (4.8).
Kod razmatranja ukupne zavisnosti prostornih performansi treba imati na umu da je zauzeće
memorije prvog dijela algoritma puno veće od zauzeća memorije drugog dijela algoritma.
Razlog tomu je što je memorija potrebna za pohranjivanje podataka o snopovima, koji su
produkt prvog dijela algoritma, daleko veća od memorije potrebne za pohranjivanje podataka
o intenzitetu zvuka jedne točke plošne raspodjele, što je proizvod drugog dijela algoritma. Ova
razlika je toliko velika da se zauzeće memorije odnosno prostorna složenost drugog dijela
algoritma može u potpunosti zanemariti.
Uzevši to u obzir, zaključak je da su prostorne performanse metode konstantne s obzirom na
broj trokuta scene ‐ n (4.4), stupanjski su zavisne o najvišem redu refleksija/refrakcija ‐ r (4.4),
a konstantne su s obzirom na rezoluciju plošne raspodjele intenziteta zvuka ‐ s (4.8).
4.5 Mogućnost paralelnog izvođenja algoritama
U ovom poglavlju biti će razmotrena mogućnost paralelnog izvođenja algoritama koji čine
PMPS. Razmotrene su tri mogućnosti za paralelizaciju:
- paralelno izvršavanje na grafičkom procesoru
- paralelno izvršavanje na računalnom grozdu
- paralelno višenitno izvršavanje na glavnom procesoru računala
109
4.5.1 Paralelno izvršavanje na grafičkom procesoru
Današnji grafički procesori (GPU) imaju veliki broj paralelnih jedinica, koje usporedno obrađuju
geometriju scene i tako postižu bolje performanse nego kada se obrada obavlja na samo
jednom procesoru. Iako je izvorna primjena GPU obrada trodimenzionalne geometrije scene za
prikaz na dvodimenzionalnom zaslonu računala, u posljednje vrijeme se GPU sve više koristi i
za druge svrhe, među ostalim i za simulacije [4]. Tome je posebno pridonio razvoj
specijaliziranih računalnih jezika za ove poslove poput CUDA tvrtke nVidia [4]. Međutim
ovakva vrsta paralelizacije nije prikladna za PMPS. Naime ovakva tehnologija se ne može
upotrebljavati za rekurzivne algoritme, jer na GPU ne postoji stog lokalnih varijabli, što je
preduvjet da se rekurzivni pozivi funkcija mogu izvršavati. PMPS tijekom faze praćenja snopova
za određivanje redoslijeda vidljivosti koristi rekurzivni obilazak BSP stabla trokuta, a tijekom
generiranja plošne raspodjele intenziteta zvuka koristi rekurzivni obilazak oktalnog stabla
snopova. Stoga je zaključeno da tehnologija paralelnog izvršavanje na grafičkom procesoru nije
podesna za ovu metodu.
4.5.2 Paralelno izvršavanje na računalnom grozdu i višenitno izvršavanje na višejezgrenom
procesoru
Paralelizacija na računalnom grozdu namijenjena je za ubrzanje izvršenja algoritama, koji
radom na jednom računalu imaju toliko slabe performanse, da postaju neupotrebljivi u
realnom okruženju. Paralelizacija putem višenitnog izvršavanja na višejezgrenom procesoru
iskorištava činjenicu da današnji procesori stolnih računala u pravilu imaju više jezgri, koje
mogu biti iskorištene tek ako je aplikacija pisana višenitno. Oba navedena načina paralelizacije
pred implementaciju stavljaju slične zahtjeve, pa će u ovom poglavlju biti predstavljena
mogućnost takvog rješenja.
Uvjet za uspješnu paralelizaciju algoritma jest mogućnost podjele ukupne obrade podataka u
više manjih zadataka, čiji su rezultati međusobno nezavisni. Kod PMPS‐a se paralelizacija može
izvršiti u oba glavna algoritma: praćenju snopova i generiranju plošne raspodjele intenziteta
zvuka. Naime, u algoritmu praćenja snopova, na početku se stvara 20 početnih snopova, čije se
110
širenje kroz prostor potom prati. Kako praćenje pojedinog snopa ne zavisi o drugim
snopovima, već samo o geometriji, koja je nepromjenjiva, ono se može bez poteškoća podijeliti
u paralelne zadatke, gdje će svaki paralelni zadatak pratiti jedan ili nekoliko snopova. Kod
algoritma stvaranja plošne raspodjele intenziteta zvuka, potrebno je izračunati intenzitet zvuka
za pravokutni raster točaka koji čine plošnu raspodjelu. Kako vrijednost intenziteta zvuka u
pojedinoj točci ne ovisi o vrijednostima intenziteta u drugim točkama, već samo o prethodno
generiranom stablu snopova, koje se u ovom dijelu algoritma više ne mijenja i ovaj se
algoritam može podijeliti u paralelne zadatke. Tako se svakom paralelnom zadatku može
zadati proračun jednog podskupa točaka raspodjele.
4.5.3 Paralelizacija algoritma praćenja snopova
Moguća paralelizacija algoritma praćenja snopova prikazana je na slici 4‐10. Paralelni algoritam
praćenja snopova izvršava se pozivom funkcije OnEditCalculateBeamsParallel koja
prima tri argumenta: colRawBeams ‐ kolekciju izvornih snopova, r ‐ najviši red
refleksija/refrakcija koje treba pratiti i t ‐ broj zadataka koji će se odvijati paralelno. Algoritam
najprije izvršava funkciju DivideColRawBeams, kojoj prosljeđuje parametre
colRawBeams i t. Zadatak ove funkcije je podijeliti kolekciju snopova colRawBeams u niz
od ukupno t kolekcija snopova, imena arrColRawBeams[t]. Nakon izvršenja ove funkcije
pokreću se paralelni zadaci, na način da se paralelno pokreće ukupno t funkcija
CalculateBeamsParallel. Svakoj od pokrenutih paralelnih funkcija prosljeđuju se dva
parametra: jedan član polja arrColRawBeams[] koji sadrži dio izvornih snopova, koje će
obrađivati ovaj zadatak, te r ‐ najviši red refleksija/refrakcija koje se prate. Sadržaj funkcije
CalculateBeamsParallel je identičan sadržaju već opisane funkcije
OnEditCaluclateBeams (slika 4‐8). Kako praćenje snopa ne ovisi o drugim snopovima,
već samo o geometriji i fizikalnim parametrima, nema prepreke da se istovremeno u više
paralelnih funkcija CalculateBeamsParallel prati više snopova.
112
Nakon pokretanja svih paralelnih zadataka, algoritam ulazi u petlju koja čeka završetak svih
paralelnih zadataka. Zatvoreni, obrađeni snopovi se pohranjuju u polje
arrColFinishedBeams[], s time da jedan zadatak svoje snopove pohranjuje u jedan član
polja. Nakon što su svi zadaci završili s radom, izvršava se druga petlja. Ona pomoću funkcije
AddFinishedBeams sve članove polja arrColFinishedBeams[] ujedinjuje u
kolekciju colFinishedBeams, koja je ujedno i konačni rezultat funkcije
OnEditCalculateBeamsParallel.
4.5.4 Paralelizacija algoritma stvaranja plošne raspodjele intenziteta zvuka
Moguća paralelizacija algoritma stvaranja plošne raspodjele prikazana je na slici 4‐11. Paralelni
algoritam praćenja snopova izvršava se pozivom funkcije
OnEditCalculateScanParallel koja prima tri argumenta: colOctreeBeams ‐
oktalno stablo sa snopovima, s ‐ rezoluciju raspodjele po jednoj osi i t ‐ broj zadataka koji će
se odvijati paralelno. Algoritam potom ulazi u dvije ugnježdene petlje. Vanjska petlja mijenja
parametar row, koji predstavlja broj reda u raspodjeli od 0 do s‐1, sa korakom 1. Unutarnja
petlja mijenja parametar col, koji predstavlja broj stupca u raspodjeli, od 0 do s‐1, sa
korakom t.
Potom se pokreću paralelni zadaci, na način da se paralelno pokreće ukupno t funkcija
CalculateOnePointParallel. Svakoj od pokrenutih paralelnih funkcija prosljeđuju se
tri parametra: colOctreeBeams ‐ oktalno stablo snopova, row ‐ redak predmetne točke u
raspodjeli, te treći parametar, koji predstavlja stupac predmetne točke u raspodjeli. Posljednji
parametar, ovisno kojem je paralelnom zadatku proslijeđen, seže od col do col+(t‐1). Sadržaj
funkcije CalculateOnePointParallel je identičan kao sadržaj petlje generiranja plošne
raspodjele na slici 4‐9, gdje se redom pozivaju funkcije FindLeaf,
IsPointInsideBeams, te CalculatePointIntensity. Povratna vrijednost svake
paralelne funkcije CalculateOnePointParallel jest jedan član polja
113
arrIntensity[][], a predstavlja vrijednost razine intenziteta zvuka u jednoj točki
proračuna.
loop
loop
loop
CMainFrame:objMain CTask:objTask[0]
OnEditCalculateScanParallel(colOctreeBeams, s, t)
arrIntensity
CalculateOnePointParallel(colOctreeBeams, row, col)
CalculateOnePointParallel(colOctreeBeams, row, col+1)
CTask:objTask[1] CTask:objTask[t-1]
arrIntesity[row][col]
arrIntesity[row][col+1]
arrIntesity[row][col+(t-1)]
...
CalculateOnePointParallel(colOctreeBeams, row, col+(t-1))
noFinishedTasks < t
for( row=0; row < s ; row++ )
for( col=0; col < s ; col=col+t)
Slika 4‐11 – Paralelizacija algoritma praćenja
snopova
114
Nakon izvršenja obje petlje funkcija OnEditCalculateScanParallel završava s
radom, te kao rezultat vraća polje arrIntensity[][] u kojem se nalazi plošna raspodjela
razina intenziteta zvuka.
4.5.5 Potencijalno ubrzanje kao rezultat paralelizacije algoritama
Za procjenu ubrzanja koje bi se postiglo paralelizacijom metode korišten je Amdahlov zakon
[134], koji je u grafičkom obliku prikazan na slici 4‐12:
Slika 4‐12 – Amdahlov zakon
Amdahlov zakon prikazuje ovisnost ubrzanja koje se postiže paralelizacijom zavisno o broju
paralelnih zadataka, te postotku koda koji je moguće paralelizirati. Zakon je izražen slijedećom
jednadžbom:
115
S
PP
Stot
)1(
1 (4.10)
gdje je Stot ‐ faktor ukupnog ubrzanja algoritma, P ‐ postotak koda koji je moguće paralelizirati,
a S ‐ broj paralelnih zadataka.
Mjerenjem PMPS metode prikazanim u poglavlju 5 ustanovljeno je da udio vremena izvršenja
dvaju algoritama koje je moguće paralelizirati, u odnosu na ukupno vrijeme izvršenja, iznosi
92%. Stoga krivulja ubrzanja kao rezultat moguće paralelizacije izgleda kao na slijedećoj slici:
Slika 4‐13 – Amdahlov zakon primijenjen na PMPS
metodu
Iz gornje slike je vidljivo da se za istovremeno izvršenje tri zadatka postiže otprilike dvostruko
ubrzanje, za izvršenje 16 istovremenih zadataka sedmerostruko ubrzanje, dok maksimalno
asimptotsko ubrzanje koje se može postići iznosi 12,5 puta.
116
5 REZULTATI I MJERENJA
U ovom poglavlju bit će predstavljeni rezultati dobiveni simuliranjem nekoliko pokusnih scena
metodom PMPS. Uz rezultate bit će prikazane prostorno‐vremenske performanse metode.
Osim toga, rezultati i performanse metode bit će uspoređeni s drugim, etabliranim,
komercijalnim simulacijama. Scene koje će poslužiti za simulaciju i usporedbu, pripadaju
dvjema područjima: prvo područje je prostorna akustika, gdje je simulirana isključivo refleksija
zvučnog vala, dok je drugo područje primjer fokusiranja ultrazvuka akustičkom lećom, gdje je
simulirana i refleksija i refrakcija ultrazvučnog vala.
5.1 Simulacija scena iz prostorne akustike
Simulacija je izvršena na tri prostora različite složenosti i naravi, kako bi se mogla ispitati
simulacija u različitim okruženjima.
Prvi primjer je nazvan KVADAR, a predstavlja jednostavnu dvoranu u obliku kvadra i u
potpunosti je konveksan prostor. Drugi primjer je višenamjenska dvorana s pozornicom i
balkonom, nazvan je AURA i predstavlja složeniji i djelomično konveksan prostor. Treći primjer,
nazvan KONKAVNI, predstavlja dvije prostorije akustički povezane malim prolazom, te
predstavlja izrazito konkavni prostor.
Osim sa PMPS‐om, ovi prostori su simulirani i s dvije komercijalne simulacije, u ovom radu
nazvane simulacija A i simulacija B. Ove simulacije utemeljene su na metodi praćenja zraka, a
već su više od deset godina prisutne na tržištu, te su polučile komercijalan uspjeh, a
predstavljene su i u više zapaženih znanstvenih radova [14, 69].
Sve tri simulacije obavljene su na istom računalu s procesorom Intel Core 2 T5600 takta 1,83
GHz, sa 2 GB RAM‐a. Računalo je bilo opremljeno operacijskim sustavom Windows XP.
Vremenske performanse simulacija mjerene su od trenutka početka proračuna, do trenutka
117
završetka proračuna, odnosno prikaza rezultata. Prostorne performanse simulacije mjerene su
upraviteljem zadataka operacijskog sustava (eng. Windows Task Managerom), na način da se
oduzela ukupna količina alocirane memorije (eng. Total Commit Charge) nakon završetka
proračuna, od one prije početka proračuna.
Za vrijeme proračuna simulacijsko okruženje sva tri programa podešeno je što je moguće
sličnije, kako bi se izbjegao utjecaj parametara simulacije na rezultate i performanse simulacije.
Geometrija simuliranog modela je uvezena u sve simulacije iz iste .DXF datoteke, u kojoj je
model opisan nepravilnom trokutastom mrežom. Izvor je definiran kao neusmjeren, sa
snagom 1 mW, odnosno s razinom intenziteta zvuka od 79 dB na udaljenosti jedan metar. Sve
reflektivne plohe su definirane sa koeficijentom apsorpcije od 10%. Kod sve tri simulacije
obavljeno je praćenje izravnog zvuka i ukupno tri refleksije. U simulaciji B nije bilo moguće
eksplicitno definirati najviši red refleksija koje se prate, već vrijeme praćenja. Stoga je vrijeme
praćenja podešeno na ono vrijeme u kojem zvuk u konkretnoj, simuliranoj geometriji pređe
udaljenost koja odgovara trima refleksijama.
Kako su simulacija A i simulacija B realizirane metodom praćenja zraka, bilo je potrebno
podesiti broj generiranih zraka za praćenje. Kod simulacije A, taj broj je ostavljen na
pretpostavljenoj vrijednosti od 1000 zraka, iako je to dovoljno samo za grubu procjenu
raspodjele zvuka. Za preciznu simulaciju bilo potrebno daleko više zraka, međutim povećanje
broja zraka na realniju vrijednost, uzrokovalo bi izuzetno veliko povećanje vremena potrebnog
za proračun, tako da bi rad sa simulacijom postao nepraktičan.
U simulaciji B je broj zraka je postavljen na vrijednost auto, pa simulacija sama podešava broj
generiranih zraka, ovisno o rezoluciji kojom se skenira prostor. Taj broj je tipično iznosio
nekoliko stotina tisuća zraka. U obje simulacije isključena je mogućnost generiranja difuznih
refleksija, te dodavanja šuma u proračun.
118
U PMPS‐u je podešeno praćenje maksimalno tri refleksije, dok je od ostalih parametara
podešen prag razine intenziteta na 40 dB, prag volumena na 0,01 m3, te prag dijeljenja
snopova na 99 % razine intenziteta. Utjecaj praga dijeljenja na rezultat i performanse
proračuna detaljnije će biti opisan u poglavlju 5.1.6.
5.1.1 KVADAR
Scena imena KVADAR prikazana je na slici 5‐1. Ona predstavlja prostoriju u obliku kvadra
duljine 24 m, širine 10 m i visine 8 m. Geometrijski je scena definirana nepravilnom
trokutastom mrežom koja sadrži dvanaest trokuta. Izvor je postavljen u točci s koordinatama
(2, 0, 1), a na slici je prikazan kuglom. Rimskim brojevima i točkama na slici su prikazane
kontrolne točke u kojima je vršeno mjerenja razine intenziteta zvuka.
Slika 5‐1 ‐ Geometrijski prikaz scene KVADAR
Scena KVADAR je obrađena sa sve tri simulacije, na način da je izvršen plošni sken u obliku
rastera točaka razmaka 0,5 m, na visini od 1 m od poda prostorije.
119
Slika 5‐2 ‐ Plošni sken scene KVADAR izračunat sa
simulacijom A ‐ gore, simulacijom B ‐ u sredini, te
PMPS‐om ‐ dolje
120
Na slici 5‐2 prikazana je raspodjela razine intenziteta zvuka dobivena sa sve tri simulacije.
Vidljivo je da se raspodjele zvuka sve tri simulacije dobro podudaraju. U području prostorije
oko izvora dominira izravni zvuk, dok se na drugoj strani prostorije, dalje od izvora, stvara
reverberantno polje u kojem je vidljiv utjecaj zvuka reflektiranog od zidova prostorije.
Za svaku simulaciju izmjerena je vrijednost razine intenziteta zvuka na pet kontrolnih točaka.
Točke su prikazane na slici 5‐1 i u tablici 5‐1, a označene su rimskim brojevima.
Tablica 5‐1 ‐ Položaj kontrolnih točaka scene KVADAR
Točka x (m) y (m) z (m)
I 1 0 1
II 3 0 1
III 12 0 1
IV 23 0 1
V 23 4 1
Tablica i grafikon s razinama intenziteta zvuka na kontrolnim točkama prikazan je u tablici 5‐2 i
na slici 5‐3.
Tablica 5‐2 ‐ Razine intenziteta zvuka u kontrolnim
točkama scene KVADAR
LI (dB)
I II III IV V
Simulacija A 80,4 80,1 66,7 61,0 60,4
Simulacija B 79,9 79,9 73,6 73,0 72,3
PMPS 80,8 79,7 69,5 66,9 65,8
121
Slika 5‐3 ‐ Razine intenziteta zvuka u kontrolnim
točkama scene KVADAR
Točke I i II se nalaze metar udaljene od izvora, s time što je točka I između izvora i zida, od
kojeg dolazi do bliske refleksije, pa je razina zvuka u toj točki viša. Točke III i IV nalaze se
također u centralnoj osi prostora, na sve većoj udaljenosti od izvora, što rezultira padom razine
zvuka. Točka V posmaknuta je s centralne osi prostora, u kut prostorije.
Na grafu prikaza vrijednosti razine intenziteta zvuka u kontrolnim točkama vidljivo je da se
trend vrijednosti za sve tri simulacije dobro podudara, međutim, u točkama udaljenim od
izvora, razina intenziteta zvuka kod simulacije A je oko 6 dB niža, a kod simulacije B oko 6 dB
viša od PMPS‐a. Kako se u području oko izvora, gdje je dominantan utjecaj izravnog zvuka,
vrijednosti podudaraju, razlog ovoj razlici je očito u refleksijama. Uzrok razlike je vjerojatno u
načinu kako pojedina simulacija u obzir uzima koeficijent apsorpcije, što onda rezultira većim ili
manjim intenzitetom reflektiranog zvuka.
Na u tablici 5‐3 i na slici 5‐4 prikazane su vremenske i prostorne performanse sve tri simulacije.
122
Tablica 5‐3 ‐ Vremenske i prostorne performanse za
scenu KVADAR.
t (s) mem (MB)
Simulacija A 885 30
Simulacija B 34 11
PMPS 6 67
Slika 5‐4 ‐ Vremenske i prostorne performanse za
scenu KVADAR
Vidljivo je da su vremenske performanse najbolje kod PMPS‐a, simulacija B je nešto slabija,
dok su vremenske performanse simulacije A bitno slabije, više od reda veličine u odnosu na
simulaciju B, te više od dva reda veličine u odnosu na PMPS.
Prostorne performanse su najbolje kod simulacije B, najslabije su kod PMPS‐a.
5.1.2 AURA
Scena imena AURA predstavlja višenamjensku dvoranu duljine 30 m, širine 30 m i visine 15 m,
s balkonom na visini od 4 m. Prostor je sastavljen od dva dijela: pozornice, s paralelnim
stranicama, dugačke 10 m i široke 20 m, te gledališta koje je u obliku trapeza, te se širi sa 20 m
na mjestu gdje se spaja sa pozornicom, do 30 m na daljem kraju, gdje se nalazi i balkon. Balkon
123
se nalazi na visini od četiri metra, a smješten je u djelu gledališta koje je najudaljenije od
pozornice. Strop dvorane nije ravan, nego je izveden u obliku krova na dvije vode. Geometrijski
je scena definirana nepravilnom trokutastom mrežom koja sadrži 40 trokuta.
Slika 5‐5 ‐ Geometrijski prikaz scene AURA
Scena je prikazana na slici 5‐5. Izvor je prikazan kuglom ljubičaste boje, a postavljen je u točki s
koordinatama (0, 0, 1). Crnim točkama, označeni rimskim brojevima na slici su prikazane
kontrolne točke.
124
Slika 5‐6 ‐ Plošni sken scene AURA izračunat sa simulacijom A ‐
gore, simulacijom B ‐ u sredini, te PMPS‐om ‐ dolje
125
Scena je simulirana sa sve tri simulacije, na način da je izvršen plošni sken u obliku rastera
točaka razmaka 0,5 m, na visini od 1 m. Na slici 5‐6 prikazana je usporedno raspodjela razine
intenziteta zvuka, dobivena sa sve tri simulacije. Na slikama je vidljivo da se rezultati sve tri
simulacije dobro podudaraju. U području prostorije oko izvora dominira izravni zvuk, s time što
je u prostoru unutar pozornice intenzitet zvuka veći od intenziteta u gledalištu. Razlog tomu je
što je volumen pozornice manji, a njeni zidovi su paralelni, pa se veći dio zvučne energije
zadržava unutar pozornice. U gledalištu je intenzitet već na samom prijelazu s pozornice slabiji,
jer su zidovi skošeni pa refleksije vode zvuk dublje u prostor. Dalje unutar gledališta intenzitet
pada, dok je taj pad posebno izražen ispod balkona, koji zaklanja dio refleksija koje bi inače
došle od stropa i doprinijele zvučnom intenzitetu.
Za svaku simulaciju izmjerena je vrijednost razine intenziteta zvuka na pet kontrolnih točaka iz
tablice 5‐4, koje su crnim točkama prikazane na slici 5‐5.
Tablica 5‐4 ‐ Položaj kontrolnih točaka scene AURA
Točka x (m) y (m) z (m)
I ‐5 0 1
II 5 0 1
III 10 0 1
IV 19 0 1
V 19 0 8
Tablica i graf s razinama intenziteta zvuka na kontrolnim točkama prikazan je u tablici 5‐5
i na slici 5‐7.
Točke I i II se nalaze u centralnoj osi prostora, pet metara udaljeni od izvora, s time što je točka
I unutar pozornice, pa je razina zvuka u toj točci viša. Točke III i IV nalaze se također u
centralnoj osi prostora, na sve većoj udaljenosti od izvora, što rezultira padom razine zvuka.
Pad razine zvuka izražen je posebno kod točke IV, jer se ona nalazi ispod balkona, koji zaklanja
dio refleksija od stropa. Točka V nalazi se točno iznad točke IV, na visini od osam metara. Ona
predstavlja položaj slušača na balkonu. Kako se ona nalazi iznad balkona, razina zvuka na tom
126
mjestu je veća od one ispod balkona, jer je prostor iznad balkona veći od onog ispod, pa je
stoga manje zaklonjen od refleksija.
Tablica 5‐5 ‐ Razine intenziteta zvuka u kontrolnim
točkama scene AURA
LI (dB)
I II III IV V
Simulacija A 68,2 67,2 62,6 56,6 59,5
Simulacija B 72,1 71,5 70,0 68,3 69,8
PMPS 69,4 67,2 66,4 63,7 64,4
Slika 5‐7 ‐ Razine intenziteta zvuka u kontrolnim
točkama scene AURA
Na slici 5‐7 sa grafikonom vrijednosti u kontrolnim točkama, vidljivo je da se trend vrijednosti
za sve tri simulacije dobro podudara, iako su vrijednosti međusobno posmaknute (poput
prethodnog primjera). Vrijednosti simulacije B i PMPS‐a se po trendu idealno poklapaju, s time
što su razine intenziteta simulacije B svugdje oko 4 dB više. Kod simulacije A, točke I i II se
poklapaju sa PMPS‐om, dok su kod ostale tri točke razine intenziteta zvuka od 5 do 7 dB niže.
127
U tablici 5‐6 i na slici 5‐8 prikazane su vremenske i prostorne performanse sve tri simulacije.
Tablica 5‐6 ‐ Vremenske i prostorne performanse za
scenu AURA
t (s) mem (MB)
Simulacija A 2.345 59
Simulacija B 64 14
PMPS 76 440
Slika 5‐8 ‐ Vremenske i prostorne performanse za
scenu AURA
Vremenske performanse simulacije B i PMPS‐a su slične, s time što je mala prednost na strani
simulacije B. Vremenske performanse simulacije A su daleko slabije, za više od jednog reda
veličine. Prostorne performanse najbolje kod simulacije B, koja za rad troši izrazito malu
količinu memorije, nešto slabija je simulacija A, dok PMPS‐a troši daleko najviše memorije za
rad.
128
5.1.3 KONKAVNI
Scena imena KONKAVNI je sastavljena od dvije prostorije u obliku kocke, duljine 10 m, širine
10 m i visine 8 m. Prostorije su povezane prolazom duljine 1,25 m, širine 1,5 m i visine 2 m.
Scena je geometrijski definirana nepravilnom trokutastom mrežom koja sadrži 52 trokuta.
Scena je prikazana na slici 5‐9. Izvor je postavljen u prostoriji sa pozitivnim x koordinatama, u
točci sa koordinatama (6, ‐2, 1), a na slici je prikazan ljubičastom kuglom.
Slika 5‐9 ‐ Geometrijski prikaz scene KONKAVNI
Scena je simulirana sa sve tri simulacije, na način da je izvršen plošni sken u obliku rastera
točaka razmaka 0,5 m, na visini od 1 m. Plošni sken je izvršen za samo jednu prostoriju i to onu
koja se nalazi u poluprostoru sa negativnom koordinatom x. Ova prostorija ima daleko
zanimljiviju razdiobu intenziteta zvuka, od one sa pozitivnom koordinatom x. Za razliku od
prethodna dva primjera, ovdje su simulirane 4 refleksije, zbog toga što su prostori u kojem se
nalaze izvor i prijemnik slabo akustički povezani.
129
Slika 5‐10 ‐ Plošni sken scene KONKAVNI izračunat sa simulacijom A ‐
gore, simulacijom B ‐ u sredini, te PMPS‐om ‐ dole
Na slici 5‐10 prikazana je usporedo raspodjela razine intenziteta zvuka, dobivena sa sve tri
simulacije. Na slikama je vidljivo da se sve tri simulacije dobro podudaraju. Kroz prolaz dopire
130
široki snop najjačeg, izravnog zvuka, usmjeren prema gornjem lijevom kutu prostorije. Iznad i
ispod njega u prostoriju zvuk dolazi u snopovima nastalim od refleksija. Razina intenziteta
zvuka iznad glavnog snopa jača je od one ispod njega, zato jer je uzrokovana refleksijama o
donji zid prostorije s izvorom, koji je bliži izvoru, pa je stoga i zvuk tih refleksija jači. Najniža
razina intenziteta zvuka je u donjem desnom kutu prostorije, koji je najviše zaklonjen od izvora
zvuka. Kako u simulacijama nije obuhvaćena difrakcija, pravocrtnim širenjem zvuk teško dolazi
do ovog dijela prostorije, pa je u jednom dijelu ovog prostora razina jednaka nuli.
Za svaku simulaciju izmjerena je vrijednost razine intenziteta zvuka u šest kontrolnih točaka.
Koordinate točaka prikazane su u tablici 5‐7, dok je položaj kontrolnih točaka prikazan na slici
5‐9 crnom bojom.
Tablica 5‐7 ‐ Položaj kontrolnih točaka scene
KONKAVNI
Točka x (m) y (m) z (m)
I ‐1 0 1
II ‐5 0 1
III ‐9 0 1
IV ‐9 4 1
V ‐1 ‐4 1
VI ‐1 4 1
Tablica i grafikon sa razinama intenziteta zvuka na kontrolnim točkama prikazan je u tablici 5‐8
i na slici 5‐11. Sve kontrolne točke su u prostoru s negativnom koordinatom x. Točke I, II i III se
nalaze u osi prolaza koji povezuje prostorije, sa sve većom udaljenosti od izvora. Točke IV, V i
VI se nalaze u kutovima prostorije ‐ točka IV se nalazi u gornjem lijevom, točka V u gornjem
desnom, a točka VI u donjem desnom kutu prostorije.
131
Tablica 5‐8 ‐ Razine intenziteta zvuka u kontrolnim
točkama scene KONKAVNI
LI (dB)
I II III IV V VI
Simulacija A 66,2 55,1 48,0 54,8 49,0 ‐
Simulacija B 73,6 65,4 64,4 66,0 64,1 61,6
PMPS 71,1 62,3 58,4 64,8 58,5 53,3
Slika 5‐11 ‐ Razine intenziteta zvuka u kontrolnim
točkama scene KONKAVNI
Na grafikonu vrijednosti u kontrolnim točkama vidljivo je da se trend vrijednosti za sve tri
simulacije podudara. Kao i u prethodnim scenama, i ovdje su krivulje međusobno posmaknute,
tako da je razina intenziteta zvuka simulacije B, nešto viša, a ona simulacije A nešto niža od
PMPS‐a. Kod simulacije A na kontrolnoj točci VI je razina intenziteta jednaka nuli, za razliku od
drugih simulacija. Ovo se može objasniti s činjenicom da simulacija A prati samo 1000 zraka.
Zbog malog broja zraka i malih dimenzija prolaza koji povezuje prostor koji sadrži izvor sa
prostorom koji sadrži prijemnik, za pretpostaviti je da do kontrolne točke VI ne dođe niti jedna
zraka.
132
Na u tablici 5‐9 i na slici 5‐12 prikazane su vremenske i prostorne performanse sve tri
simulacije.
Tablica 5‐9 ‐ Vremenske i prostorne performanse za
scenu KONKAVNI
t(s) mem(MB)
Simulacija A 584 18
Simulacija B 10 9
PMPS 54 921
Slika 5‐12 ‐ Vremenske i prostorne performanse za
scenu KONKAVNI
Vremenske performanse najbolje su kod simulacije B, dok je PMPS po tom kriteriju vrlo blizu.
Kao i u prethodnim slučajevima vremenske performanse simulacije A su više od red veličine
slabije od druge dvije simulacije. Što se tiče prostornih performansi, simulacija B ima najbolji
rezultat, nešto slabija je simulacija A, dok PMPS troši najviše memorije.
5.1.4 Usporedba prostornih i vremenskih performansi sve tri scene
U tablici 5‐10, te na slici 5‐13 prikazane su usporedno vremenske i prostorne performanse za
sve tri scene:
133
Tablica 5‐10 ‐ Usporedni prikaz vremenskih (lijevo) i
prostornih (desno) performansi za sve tri scene
t(s) SHOEBOX AURA CONCAVE
Simulacija A 885 2.345 584
Simulacija B 34 64 10
PMPS 6 76 54
Slika 5‐13 ‐ Usporedni prikaz vremenskih (lijevo) i
prostornih (desno) performansi za sve tri scene
Vremenske performanse metode PMPS i simulacije B su slične ‐ PMPS je nešto bolji kod
najjednostavnije geometrije (KVADAR), dok je kod druge dvije scene, sa složenijim
geometrijama nešto bolja simulacija B. Simulacija A je po vremenskim performansama slabija
više od reda veličine u sva tri slučaja.
Prostorne performanse su najbolje kod simulacije B. Simulacija A je po ovom kriteriju nešto
slabija od simulacije B. PMPS u sve tri scene zauzima najviše memorije.
Kod PMPS‐a zauzeće memorije raste sa složenosti geometrije i kod treće scene dosiže iznos od
1 GB. Razlog ovakvom ponašanju i ovako velikom zauzeću memorije jest što se u PMPS‐u svi
izračunati snopovi trajno pohranjuju u memoriji, što nije slučaj kod simulacije A i simulacije B,
gdje se zrake u memoriji pohranjuju samo dok se ne zabilježi njihov doprinos zvučnoj slici. Kod
mem(MB) SHOEBOX AURA CONCAVE
Simulacija A 30 59 18
Simulacija B 11 14 9
PMPS 67 440 921
134
tih simulacija, čim se obrada jedne zrake završi, ona se briše iz memorije. Prednost ovakovog
pristupa u odnosu na PMPS jest u tome da su prostorne performanse daleko bolje. Mana
ovakovog pristupa jest u tome da ukoliko se želi izračunati plošni sken nekog drugog područja
unutar prostorije ili ukoliko se sken želi izračunati sa promjenjenom rezolucijom (bez promjene
geometrije i akustičkih parametara scene) potrebno je ponoviti cijeli proračun. Kod PMPS‐a su
svi izračunati snopovi trajno pohranjeni u memoriji, pa kod ponovnog računanja plošnog skena
za već obrađenu geometriju, nije potrebno ponavljati praćenje snopova, nego se prostorni
sken računa iz stabla već generiranih snopova. Time se postiže poboljšanje vremenskih
performansi.
5.1.5 Promjena vremenskih performansi simulacija ovisno o određenim parametrima
U prethodnom dijelu ovog poglavlja predstavljeni su rezultati i performanse za tri scene, s
fiksnim parametrima simulacije. Kako bi se ustanovile prednosti i mane pojedine simulacije,
važno je izmjeriti kako se performanse simulacija mijenjaju ovisno o promjeni glavnih
parametara simulacije. Stoga će ovdje biti predstavljeni rezultati mjerenja performansi triju
simulacija ukoliko se mijenja najviši red simuliranih refleksija, geometrijska složenost modela,
te naposljetku rezolucija kojoj se skenira prostor.
5.1.5.1 Najviši red simuliranih refleksija
Prvi analizirani parametar jest najviši red refleksija koje se simuliraju. Što se viši red refleksija
uzme u obzir, zvučna slika dobivena simulacijom je vjernija. Povećavanjem reda refleksija,
povećava se i vrijeme potrebno za proračun, stoga je važno napraviti kompromis, a da bi ga
mogli kvalitetno napraviti potrebno je znati kakav je porast vremenskih i prostornih
performansi ovisno o redu refleksije.
Mjerenje je napravljeno na simulaciji scene AURA. U sve tri simulacije napravljen je proračun i
to najprije samo za izravan zvuk, a potom za sve veći red refleksija. Simulacija je obavljena za
plošni sken razine intenziteta zvuka na visini od 1 m i rezolucije 0,5 m. Rezultati su prikazani u
tablici 5‐11 i na slici 5‐14.
135
Tablica 5‐11 ‐ Vremenske (gore) i prostorne (dolje)
performanse simulacije scene AURA ovisno o redu
refleksija
0 1 2 3 4 5
Simulacija A 1.320 1.685 2.010 2.370 2.680 3.025
Simulacija B 38 38 45 55 65 75
PMPS 0 3 21 76 208 688
0 1 3 4 5
Simulacija A 16 16 17 17 17
Simulacija B 11 12 12 13 14
PMPS 3 16 336 909 1.718
Vremenske performanse simulacije A i simulacije B rastu sa T(r), gdje je r red refleksija, s time
što su i apsolutna vrijednost i brzina porasta kod simulacije A veći. Vremenske performanse
metode PMPS rastu stupanjski ovisno o redu refleksije. Međutim i pored stupanjskog porasta,
do trećeg reda refleksije vrijednosti vremena potrebnog za proračun metodom PMPS su manje
ili jednake onima simulacije A. Za refleksije višeg reda vrijeme potrebno za proračun kod
PMPS‐a raste, ali je i dalje manje od vremena proračuna simulacije B.
Što se tiče prostornih performansi, simulacija A se ponaša praktički konstantno ‐ po zakonu
M(const.), dok se simulacija B ponaša linearno M(r). Prostorne performanse metode PMPS se
kao i vremenske ponašaju stupanjski.
136
Slika 5‐14 ‐ Vremenske (gore) i prostorne (dole)
performanse simulacije scene AURA ovisno o redu
refleksija
137
Razlog ovakovu ponašanju je u samoj prirodi simulacijskih metoda ‐ za simulaciju A i simulaciju
B to je metoda praćenja zraka, dok je kod metode PMPS‐a to metoda praćenja snopova.
Povećanje vremena proračuna kod metode praćenja zraka uzrokovano je proračunom
geometrije zrake prilikom refleksije. Povećanje je linearno zato što se broj zraka ne mijenja
prilikom refleksije ‐ bez obzira na najviši red praćenih refleksija, uvijek se prati isti broj zraka.
Nasuprot tomu, kod metode praćenja snopova, prilikom svake refleksije obavlja se dijeljenje
snopova, pa se stoga ovisno o tome na koliko se reflektiranih snopova svaki od upadnih
snopova podjeli, toliko puta i povećava broj snopova i vrijeme proračuna za iduću refleksiju.
Uzastopnim ponavljanjem umnožavanja broja snopova dobijamo stupanjski porast složenosti
proračuna.
Iz teoretskog razmatranja iznesenog u poglavlju 4.4 izraz za složenost algoritma ovsino o redu
refleksije jest O(dr+1), gdje je r najviši red refleksija, a d prosječni broj podjeljenih snopova.
Vrijednosti prikazane u tablici 5‐11 dobro se poklapaju s vrijednostima dobivenim izrazom
O(3r+1). Stoga se može zaključiti da se prilikom svake refleksije u prosjeku od jednog upadnog
dobiju tri reflektirana snopa.
138
5.1.5.2 Geometrijska složenost modela
Drugi razmatrani parametar je promjena složenosti geometrije modela. Simulacija je izvršena
na modelu AURA, gdje je složenost geometrije modela mijenjana od izvornog modela sa 40
trokuta, na složenije slučajeve sa 120, 384, odnosno 846 trokuta. Geometrija složenijih modela
dobivena je uzastopnim djeljenjem trokuta izvornog modela (teselacijom). Simulacija je
izvršena za tri refleksije, te je izračunata raspodjela razine intenziteta zvuka za plohu na visini
od 1 m, sa rezolucijom 0,5 m. Rezultati mjerenja prikazani su u tablici 5‐12 i slici 5‐15.
Tablica 5‐12 ‐ Vremenske (gore) i prostorne (dole)
performanse simulacije scene AURA ovisno o
složenosti geometrije
40 120 384 846
Simulacija A 624 659 688 727
Simulacija B 6 8 11 18
PMPS 10 18 34 62
40 120 384 846
Simulacija A 17 10 17 16
Simulacija B 10 11 13 16
PMPS 147 219 454 780
Iz rezultata je vidljivo da je porast vremena proračuna linearan za sve tri simulacije. Dakle
vremenska složenost sve tri simulacije jest T(n). Nagib krivulje, odnosno brzina porasta je
najmanja za simulaciju B, nešto veći je za PMPS, dok je kod simulacije A porast vremena
proračuna najveći. Apsolutne vrijednosti vremena proračuna simulacije A u svim simuliranim
slučajevima za više od jednog reda veličine premašuju druge dvije simulacije.
Prostorna složenost je za sve tri simulacije linearno ovisna o složenosti geometrije ‐ M(n). Iz
razloga pamćenja svih snopova, vrijednosti zauzeća memorije su kod PMPS‐a veće.
139
Slika 5‐15 ‐ Vremenske (gore) i prostorne (dole)
performanse simulacije scene AURA ovisno o
složenosti geometrije
140
5.1.5.3 Rezolucija skeniranja prostora
Treći razmatrani parametar je rezolucija kojom se skenira prostor. Sve tri simulacije izvršile su
proračun scene AURA s ukupno tri refleksije, dok im je u uzastopnim slučajevima smanjivan
razmak između točaka proračuna, odnosno povećavana je rezolucija proračuna. Rezultati su
prikazani u tablici 5‐13 i na slici 5‐16.
Tablica 5‐13 ‐ Vremenske (gore) i prostorne (dole)
performanse simulacije scene AURA ovisno o
rezoluciji skeniranja prostora
rezolucija (m) 1 0,5 0,25 0,1
Simulacija A 627 2.055 7.970 68.820
Simulacija B 9 64 682 20.820
PMPS 23 77 289 1.137
rezolucija (m) 1 0,5 0,25 0,1
Simulacija A 17 57 237 1.481
Simulacija B 10 11 14 41
PMPS 335 335 335 335
Brzina porasta PMPS‐a je najmanja, između linearne ‐ T(s) i kvadratne T(s2), gdje je s rezolucija
snkeniranja prostora po jednoj osi. Simulacija A je nešto slabija, te raste sa T(s2), dok je
simulacija B po ovom kriteriju najslabija te raste sa T(s4). Razlog ovakovom porastu je priroda
simulacijskih metoda, te njihova implementacija u konkretnom softveru. Simulacija A bez
obzira na rezoluciju skena odašilje konstantan broj zraka, što uzrokuje bitan pad točnosti, jer je
vjerojatnost detekcije zraka kod viših rezolucija bitno umanjena. Vrijeme proračuna ovdje raste
kvadratno ‐ razmak između točaka raste linearno, pa ukupni broj točaka za koje treba izvršiti
proračun raste kvadratno. Simulacija B ovisno o rezoluciji prostora povećava broj zraka koje
odašilje u prostor, što je ispravan postupak sa stanovišta točnosti ‐ tako se naime vjerojatnost
detekcije zrake kod povećane rezolucije održava konstantnom. Međutim zbog povećanja broja
zraka i brzina porasta vremena proračuna je lošija od kvadratne ‐ u ovom slučaju raste sa
četvrtom potencijom rezolucije.
141
Slika 5‐16 ‐ Vremenske (gore) i prostorne (dole)
performanse simulacije scene AURA ovisno o
rezoluciji skeniranja prostora.
Što se tiče prostorne složenosti i ovdje je najpovoljniji slučaj PMPS‐a, kod kojeg se ona vlada
po zakonu M(const.). Razlog je što bez obzira na rezoluciju skeniranja, proračun snopova uvijek
142
jednak i rezultira jednakim brojem snopova. Kako snopovi zauzimaju najveći dio prostora u
memoriji, i zauzeće memorije je u ovom slučaju konstantno. Simulacija A se ponaša po zakonu
M(s2), dok se simulacija B ponaša po između M(const.) i M(s).
5.1.6 Odstupanje simulacije PMPS ovisno o pragu dijeljenja
U ovom poglavlju biti će mjerenjem provjerena utemeljenost novog načina izračuna razine
intenziteta zvuka pojedinog snopa u PMPS simulaciji (poglavlju 3.5.5). Naime, u PMPS‐u se za
reflektirane snopove, pamti uvijek vrijednost intenziteta u težištu trokuta koji predstavlja
početak snopa, te se intenzitet računa u odnosu na tu točku, a ne u odnosu na stvarnu
putanju. Razlog ovomu je ubrzanje proračuna, a posljedica je određena greška koja se uvodi u
proračun. U teoretskom razmatranju u poglavlju 3.5.6.2 dokazano je da se ta greška može
zanemariti. Ovdje će se izvršiti mjerenje, čiji je cilj potvrditi tu tvrdnju.
Greška koja nastaje u proračunu može se smanjiti dijeljenjem snopova, kako bi oni fizički bili
manji, te bi se sukladno time i smanjila greška prilikom proračuna. Dijeljenje se vrši ukoliko je
razlika maksimalna razine intenziteta zvuka početnog trokuta, u odnosu na razinu intenziteta u
težištu početnog trokuta, veća od određenog postotka. Taj postotak se zove prag dijeljenja.
Ukoliko je razlika razine intenziteta veća od praga dijeljenja snop se tada dijeli. Rezultat
dijeljenja su četiri snopa manjeg presjeka, a samim time i manje razlike razina intenziteta.
Kako bi se ispitao utjecaj greške na rezultat proračuna, provedena je simulacija scene KVADAT,
gdje se vrijednost praga dijeljenja mijenjala sa vrijednost 99 %, gdje praktički nema dijeljenja
snopova, na vrijednosti 75 %, 50 % i 25 %. Kako se smanjuje prag dijeljenja, simulacija generira
sve veći broj snopova, sve manjeg presjeka i samim time sve manje razlike intenziteta na
početnom trokutu snopa. Kako bi se ispitao utjecaj promijenjene vrijednosti praga dijeljenja na
proračun, bilježene su vrijednosti razine intenziteta zvuka u pet kontrolnih točaka (opisanih u
poglavlju 5.1.1). Rezultati su prikazani u tablici 5‐14 i na slici 5‐17.
143
Tablica 5‐14 ‐ Vrijednosti razine intenziteta zvuka u
kontrolnim točkama ovisno o pragu dijeljenja
LI (dB)
I II III IV V
99% 80,55 79,58 68,65 65,92 64,90
75% 80,55 79,58 68,45 66,66 65,18
50% 80,55 79,61 68,23 67,07 65,52
25% 80,34 79,56 67,71 64,74 65,85
Slika 5‐17 ‐ Vrijednosti razine intenziteta zvuka u
kontrolnim točkama ovisno o pragu dijeljenja
Iz prikazanih rezultata vidljivo je da su razlike vrijednosti male. Kako bi se dobio pravi uvid u
grešku, potrebno je analizirati odstupanja, a ne apsolutne vrijednosti razine intenziteta zvuka.
Najvjernije vrijednosti daje proračun s najmanjim pragom djeljenja ‐ u simuliranom slučaju sa
pragom dijeljenja od 25 %. Od tih vrijednosti oduzete su vrijednosti za ostale pragove djeljenja
kako bi se dobila greška proračuna. Rezultati su prikazani u tablici 5‐15 i na slici 5‐18.
144
Tablica 5‐15 ‐ Odstupanje razine intenziteta zvuka u
kontrolnim točkama
ΔLI (dB)
I II III IV V
99% 0,21 0,02 0,94 1,18 0,95
75% 0,21 0,02 0,74 1,92 0,67
50% 0,21 0,05 0,52 2,33 0,33
25% 0,00 0,00 0,00 0,00 0,00
Slika 5‐18 ‐ Odstupanje razine intenziteta zvuka u
kontrolnim točkama
Iz prikazanih podataka vidljivo je da najveće odstupanje iznosi 2,33 dB, srednje odstupanje
iznosi 0,51 dB, dok standardna devijacija iznosi 0,66 dB.
U tablici 5‐16 i na slici 5‐19 prikazana je ovisnost vremenskih i prostornih performansi u
odnosu na promjenu praga djeljenja.
145
Tablica 5‐16 ‐ Vremenske i prostorne performanse
PMPS‐a ovisno o pragu dijeljenja
t(s) mem(MB)
99% 41 47
75% 57 167
50% 101 321
25% 228 927
Slika 5‐19 ‐ Vremenske i prostorne performanse
PMPS‐a ovisno o pragu dijeljenja
Vidljivo je da performanse rastu eksponencijalno ovisno o povećanju praga dijeljenja. Stoga je
povećanje praga dijeljenja potrebno izbjeći gdje je moguće.
Ovim mjerenjem iznosa greške i performansi potvrđen je zaključak dobiven teorijskim
razmatranjem u poglavlju 3.5.6.2, a to je da je greška uzrokovana načinom proračuna razine
intenziteta zvuka mala, a da se za njeno daljnje smanjenje proračun usložnjuje, što uzrokuje
pogoršanje performansi simulacije.
146
5.2 Simulacija refrakcije akustičkom lećom
U prethodnom poglavlju detaljno su ispitani rezultati i performanse PMPS‐a pri simuliranju
scena prostorne akustike, gdje se u obzir uzima samo refleksija vala. Međutim, najvažniji
doprinos PMPS‐a u odnosu na druge metode praćenja snopova jest u tome da osim refleksije
simulira i refrakciju zvučnog vala u složenoj sredini sa više medija. Kako bi se provjerila ta
sposobnost, izvršena je simulacija scene sa akustičkom lećom. Scena je prikazana na slici 5‐20.
Slika 5‐20 ‐ Geometrijski prikaz akustičke leće
Scena se sastoji od dva entiteta: akustičke leće u obliku kugle, izrađene od gume, te okoline u
koju je kugla uronjena, a koja je ispunjena glicerolom. Scena je u potpunosti nekonveksna, jer
entitet kugle geometrijski predstavlja otok u entitetu glicerola. Promjer kugle iznosi 0,1 m, a
centar joj se nalazi na koordinatama (0.75, 0.0, 0.0). Kugla je definirana nepravilnom
trokutastom mrežom od 224 trokuta. Izvor zvuka se nalazi u ishodištu. Izvor je neusmjeren i
147
zrači na frekvenciji od 100 kHz, a snaga izvora je postavljena na vrijednost 100 W. Fizikalni
parametri gume i glicerola dani su u tablici 5‐17.
Tablica 5‐17 – Fizikalni parametri scene
MATERIJAL c (m/s) ρ (kg/m3) γ ( 10‐3 m‐1)
guma 900 930 43
glicerol 1920 1260 0.003
5.2.1 Usporedba PMPS metode sa geometrijskom konstrukcijom zraka
Scena je simulirana sa PMPS simulacijom, na način da je izvršen plošni sken u obliku rastera
točaka razmaka 0,001 m, na z koordinati 0.0 m. Sken je izvršen za plohu omeđenu x
koordinatama ‐0.05 m i 0.85 m, te y koordinatama ‐0.1 m i 0.1 m. Prilikom izvođenja simulacije
izvršeno je praćenje snopova izravnog zvuka, te refleksija/refrakcija prvog reda. Prag dijeljenja
je podešen na 99 %. Rezultati simulacije prikazani su na slici 5‐21.
Slika 5‐21 ‐ Plošni sken scene sa akustičkom lećom
148
Razina intenziteta zvuka opada kako se zvuk udaljuje od izvora, dok nailaskom na akustičku
leću dolazi do fokusiranja zvuka. Razina intenziteta zvuka neposredno pred nailazak na leću, u
točci (0.7, 0.0, 0.0) iznosi 107 dB. Fokus leće je u točci (0.779, 0.0, 0.0) i u njemu razina
intenziteta zvuka iznosi 118 dB.
Na slici 5‐22 prikazan je uvećan detalj za područje akustičke leće.
Slika 5‐22 ‐ Uvećani detalj plošnog skena scene sa
geometrijski konstruiranim zrakama (zeleno)
Na slici je u pozadini rezultat simulacije u obliku skena s raspodjelom razina intenziteta zvuka,
dok su iznad zelenom bojom dodane geometrijski konstruirane zrake zvuka. Zrake su
konstruirane geometrijskim putem, a kut refrakcija svake pojedine zrake je izračunat pomoću
Snellovog zakona, prema jednadžbi (3.10). Kao cI uzeta je brzina zvuka u glicerolu, cII je brzina
zvuka u gumi, ΦI je kut kojim zraka iz glicerola nailazi na diskontinuitet, dok je ΦII izlazni kut
kojim se zraka širi u gumi, nakon diskontinuiteta. Kutovi ΦI i ΦII su kutovi između zrake i
okomice na diskontinuitet. Iznos kutova u radijanima prikazan je u tablici 5‐18:
149
Tablica 5‐18 – Tablica ulaznih i izlaznih kutova
Zraka ΦI ΦII
1 0,1869 0,0872
2 0,3734 0,1718
3 0,5590 0,2512
4 0,7433 0,3228
5 0,9260 0,3840
6 1,1069 0,4326
7 1,2858 0,4666
8 1,4626 0,4848
9 1,5708 0,4879
Na slici 5‐22 s usporedbom rezultata simulacije i geometrijski konstruiranih zraka, područje
fokusiranja zvuka izračunato PMPS‐om je prikazano kao područje najviše razine intenziteta
zvuka, obojano bijelom i žutom bojom. Područje fokusiranja koje je izračunato geometrijskim
putem je vidljivo kao područje presijecanja zelenih zraka. Vidljivo je dobro preklapanje
područja fokusiranja zvuka simuliranog PMPS‐om sa područjem koje je izračunato
geometrijskim putem. To znači da aproksimacija prilikom računanja geometrije refraktiranog
snopa, opisana u poglavlju 3.5.6.1, ne utiče bitno na točnost proračuna.
5.2.2 Usporedba simulacije PMPS metodom sa metodom FEM
Za simulaciju scena koje sadrže više medija u praski se najčešće koristi metoda konačnih
elemenata (FEM). Kako bi se izvršila usporedba između metode PMPS i FEM‐a izvršena je
simulacija programom PzFlex (Weidlinger Associates, CA). Ovaj program je jedan od najšire
prihvaćenih u struci, a koristi se u području medicinskog ultrazvuka, te u drugim područjima,
poput ispitivanja zamora materijala, hidroakustike i dr. Scena s akustičkom lećom u ovom
programu simulirana je kao 2,5D model, korištenjem aksijalne simetrije. Simulirani model
scene bio je sastavljen od 2222x833 elementa, veličine 0,36 mm. Isti model simuliran je PMPS
metodom, a praćene su refleksije i refrakcije do maksimalno trećeg reda. Na slici 5‐23 prikazan
je rezultat simulacije metodom FEM i metodom PMPS.
150
a)
b)
Slika 5‐23 ‐ Plošna raspodjela razine intenziteta
zvuka: a) FEM, b) PMPS
Na slici 5‐23a vidljive su pruge interferencije, kojih na slici 5‐23b nema. Razloge je način rada
FEM metode, koja zbraja zvučne tlakove po fazi, za razliku od metode PMPS, koja zbraja
efektivnu vrijednost intenziteta zvuka. U području akustičke leće na obje slike vidljiva su dva
područja fokusiranja zvuka. Primarni fokus se nalazi u desnom dijelu leće, a nastao je
refrakcijom zraka o prednju stjenku akustičke leće. Sekundarni fokus se nalazi u lijevom dijelu
leće, a je nastao nakon refrakcije zraka o prednju stjenku akustičke leće, te potom dvije
refleksije ‐ jedne od stražnje stjenke, te druge od gornje, odnosno donje stjenke leće. Mjesto
primarnog fokusa dobro se podudara na obje simulacije, dok je mjesto sekundarnog fokusa
kod PMPS‐a nešto bliže prednjoj stjenci leće nego kod FEM‐a. Razlog ovome je u grešci
proračuna kuta refrakcije kod PMPS‐a, koja kod sekundarnog fokusa dolazi više do izražaja.
Naime zrake koje stvaraju sekundarni fokus prevaljuju dulji put, pa se stoga pogreška
proračuna kuta refrakcije u tom slučaju više očituje. Na slici 5‐23b također je vidljiva oštra
151
sjena koju leća stvara, koje na slici 5‐23a nema. Razlog tomu je što metoda FEM u proračunu
obuhvaća i difrakciju, pa se stoga ogibom ultrazvučnog vala oko leće zvukom ispuni i prostor
iza leće.
Na slici 5‐24 prikazane su vrijednosti razine intenziteta zvuka dvaju simulacija, na x osi, koja
prolazi kroz izvor i središte leće.
Slika 5‐24 ‐ Raspodjela razine intenziteta zvuka na x
osi
Na slici 5‐24 izvor se nalazi na x = 0.0 m, dok se akustička leća nalazi između x = 0.7 m i x = 0.8
m. U području od izvora do x = 0.3 m, primjetno je dobro poklapanje vrijednosti dobivenih
objema simulacijama, uz to što je kod FEM‐a primjetna interferencija. U području od x = 0.3 m
do same akustičke leće, vrijednosti koje daje FEM su nešto više. Razlog tomu je što je akustička
leća kod PMPS metode modelirana diskretnom mrežom nepravilnih trokuta, od kojih niti jedan
nije orijentiran okomito na x os. Zato u smjeru osi x simulacija PMPS ne stvara niti jedan
reflektirani snop.
Unutar same leće primjetna su dva fokusa, od kojih se primarni nalazi na x = 0,775 m, a
sekundarni na x = 0,725 m. Lokacija primarnog fokusa je u obje simulacije identična, a razlika
maksimalne razine zvučnog intenziteta PMPS‐a i FEM‐a jest 1 dB. Poklapanje sekundarnog
152
fokusa nije tako dobro ‐ lokacija je kod PMPS‐a posmaknuta za jedan milimetar bliže prednjoj
stjenci, dok razlika maksimalne razine intenziteta zvuka PMPS‐a i FEM‐a iznosi 6 dB.
U području iza leće razina intenziteta zvuka je kod FEM‐a viša, što je posljedica difrakcije koju
ova metoda obuhvaća.
Sada će biti razmotrene vremenske i prostorne performanse simulacije. Obje simulacije
izvršene su na računalu sa procesom Intel Core 2 Duo takta 2,4 GHz i sa 4 GB radne memorije.
Tablica 5‐19 ‐ Vremenske i prostorne performanse
simulacije akustičke leće
t (s) mem (MB)
FEM 4.320 144
PMPS 438 60
Slika 5‐25 ‐ Vremenske i prostorne performanse
simulacije akustičke leće
Iz gornjih podataka vidljivo je da je FEM metodom za simulaciju bilo potrebno deset puta više
vremena od PMPS metode, dok je pri tome alocirano više od dvostruko memorije. Prednost u
153
vremenskim i u prostornom performansama je jasno na strani PMPS metode, naravno uz
napomenu da ova metoda proračunom ne obuhvaća difrakciju. Također potrebno je
napomenuti da je za simulaciju metodom FEM potrebno izvršiti proračun svih konačnih
elemenata, dok je kod metode PMPS potrebno u potpunosti izvršiti samo dio praćenja
snopova, dok se plošna raspodjela može računati samo za jedan dio scene. Ukoliko bi se u
razmatranoj sceni računala raspodjela samo za područje akustičke leće, proračun bi trajao oko
20 s.
U ovom poglavlju predstavljeni su rezultati i performanse simulacije nehomogene scene s
akustičkom lećom. Rezultati su potvrđeni usporedbom sa geometrijskom metodom, te
usporedbom sa rezultatima etablirane komercijalne simulacije, koja koristi numeričku metodu
FEM. Time je potvrđena sposobnost PMPS‐a da simulira nehomogene sredine, računajući i
refleksiju i refrakciju zvuka. Također pokazano je da su vremenske i prostorne performanse
simulacije takve sredine vrlo dobre.
154
6 ZAKLJUČAK
U ovom radu predstavljena je proširena metoda praćenja snopova (PMPS). PMPS je
simulacijska metoda koja praćenjem snopova može simulirati refleksiju i refrakciju vala.
Metoda se može primijeniti kako na zvučni tako i na svjetlosni val. U ovom radu je prikazana
primjena na zvučni val. U radu je najprije izvršen pregled postojećih simulacijskih metoda, s
usporednom analizom u odnosu na PMPS. Potom je detaljno predstavljena sama metoda i to
najprije struktura scene, sa strukturama podataka korištenim za pohranjivanje scene i rezultata
simulacije, potom algoritmi simulacije, da bi naposljetku bila predstavljena fizika simulacije.
Posebna pažnja je posvećena dvjema temama: nelinearnosti refrakcije i promjenama u odnosu
na tradicionalni način proračuna intenziteta zvuka. Ove dvije teme podrazumijevaju uvođenje
određenih aproksimacija u proračun, koje su na ovom mjestu teoretski razmotrene.
U radu je potom predstavljeno programsko okruženje u kojem je simulacija realizirana.
Predstavljeno je korisničko sučelje i struktura koda simulacije, koji je prikazan UML
dijagramom klasa, te detaljno obrazložen.
Kako bi se ispitala točnost simulacije, te njene prostorne i vremenske performanse obavljena
su mjerenja. Rezultati i performanse simulacije su uspoređeni sa dvije komercijalne simulacije
prostorne akustike temeljene na metodi praćenja zraka. Nažalost, kako na tržištu ne postoji
niti jedna komercijalna simulacija temeljena na metodi praćenja snopova, nije se mogla izvršiti
usporedba sa simulacijom temeljenom na istoj metodi.
Prilikom usporedbe sa simulacijama prostorne akustike, simulirana su tri modela, koja su
obrađena sa sve tri simulacije. Rezultati su se u sva tri slučaja dobro podudarali. Trend
vrijednosti razine intenziteta zvuka se u kontrolnim točkama u potpunosti podudarao, za sve
tri simulacije, što upućuje na zaključak da je simulacijski model PMPS‐a ispravno postavljen.
Same vrijednosti razine intenziteta zvuka su za tri simulacije bile međusobno posmaknute i to
na način koji se ponavljao u sva tri simulirana slučaja. Posmak jedino nije postojao na mjestima
155
gdje je dominantan izravni zvuk, dok je na onim mjestima gdje prevladavaju refleksije posmak
prisutan. Ovo navodi na zaključak da simulacije različito tretiraju apsorpciju zvuka prilikom
refleksije, iako je koeficijent apsorpcije zidova u svim trima simulacijama podešen na istu
vrijednost. Kako bi se ustanovilo je li PMPS tretira apsorpciju ispravno ili je potrebno kakvo
podešavanje bilo bi dobro simulirati jednu stvarnu prostoriju, izmjeriti raspodjelu zvuka u
stvarnosti, te rezultate simulacije usporediti s mjerenjima.
Vremenske performanse PMPS‐a izmjerene na ispitnim modelima pokazuju da je njome na
prosječnom PC računalu moguće modele razumne složenosti simulirati u vremenu koje se
mjeri od nekoliko sekundi do nekoliko minuta. Usporedimo li performanse PMPS‐a sa druge
dvije simulacije, brzina PMPS‐a je usporediva sa bržom simulacijom. Na jednom modelu PMPS
je nešto brži, na druga dva modela je PMPS nešto sporiji, ali je ta razlika mala. Kada se
vremenske performanse PMPS‐a usporede sa sporijom simulacijom, PMPS je brži za barem red
veličine u sva tri simulirana slučaja.
Prostorne performanse PMPS‐a su slabije od dvaju usporednih simulacija. Razlog tomu je način
rada PMPS‐a koji u memoriji pohranjuje kompletnu zvučnu sliku prostora. Prednost ovoga
pristupa je u tome da se za isti model prostora i položaj izvora zvuka može dobiti zvučna slika
na drugom mjestu ili s drugom rezolucijom skeniranja, bez ponavljanja proračuna širenja
snopova. Time se proračun bitno ubrzava, jer se ponovno izvršava samo pretraživanje stabla
snopova. Kod druge dvije simulacije, zrake (kojima simuliraju širenje zvuka kroz prostor) se
brišu iz memorije odmah nakon što se njihov doprinos pribroji rezultatima. Tako se za
simulaciju zauzima bitno manje memorije. Međutim u slučaju proračuna zvuka na drugom
mjestu ili s drugom rezolucijom skeniranja, druge dvije simulacije moraju ponoviti cijeli
proračun, što bitno degradira njihove vremenske performanse. Razlog zašto je kod PMPS‐a
odabran pristup koji preferira vremenske nad prostornim performansama, jest zato što na
današnjim računalima veća količina memorije više ne predstavlja problem niti po pitanju
cijene, a niti po pitanju adresiranja, s obzirom da 64‐bitni sustavi postaju uobičajeni. U slučaju
156
pak, da bi se u primjeni kod PMPS‐a njegove prostorne performanse pokazale kao prepreka za
rad, moguće je promijeniti način rada i preuzeti strategiju proračuna od druge dvije simulacije.
Također potrebno je napomenuti, da su simulacije s kojima je PMPS uspoređivan komercijalne
simulacije, na tržištu prisutne više od desetljeća, te sa su pri tome stalno usavršavane. Za
razliku od njih PMPS je simulacija koja je još u fazi razvoja, te u samom kodu sigurno postoji
određeni prostor za daljnju optimizaciju vremenskih performansi. Također, ukidanjem
određenih redundancija u strukturi podataka kojima se pohranjuju snopovi, moglo bi se postići
i poboljšanje prostornih performansi simulacije. Osim toga druge dvije simulacije s kojima je
usporedba obavljena su namijenjene isključivo prostornoj akustici, te su optimizirane za tu
primjenu, dok PMPS ima daleko šire područje primjene, te su njegovi algoritmi i strukture
podataka koncipirani šire, kako bi mogli obraditi i refrakciju zvuka.
Osim usporedbe rezultata i performansi tri simulacije mjerenjem na tri ispitna modela, u radu
je izvršeno i mjerenje performansi simulacija ovisno o promjenama nekih parametara
simulacije. Iz ovih mjerenja vidljive su prednosti i mane PMPS‐a u odnosu na simulacije
temeljene na metodi praćenja zraka. Izvršena su tri skupa mjerenja, gdje su bili napose
mijenjani slijedeći parametri: složenost geometrije, broj refleksija i gustoća točaka proračuna.
Prvo mjerenje je pokazalo je da se PMPS dobro ponaša prilikom simuliranja modela složenije
geometrije. Porast vremena i zauzeća memorije ovisno o povećanju složenosti geometrije je
linearan, kao i kod druge dvije simulacije, dok je brzina promjene negdje između brzine
promjene izmjerene za druge dvije simulacije. Ostale dva mjerenja otkrila su u čemu je PMPS u
bolji, a u čemu je slabiji od simulacija temeljenih na metodi praćenja zraka. Slabost PMPS‐a se
pokazala kod povećanja reda refleksija za koje se radi proračun. U tom slučaju vrijeme
proračuna PMPS‐a raste stupanjski i to sa četvrtom potencijom, dok kod drugih simulacija
vrijeme raste linearno. Razlog je u prirodi metode praćenja snopova, koja prilikom refleksije
snopove prilagođava geometriji, odnosno dijeli ih. Za razliku od toga, metoda praćenja zraka
prati uvijek isti broj zraka, bez obzira koliko se refleksija uzima u obzir. Da bi se ova mana
ublažila u simulaciji bi se mogao uvesti mehanizam, gdje se nakon određenog stupnja refleksija
157
više snopovi ne dijele, već se prati samo najveći snop. Naime, za refleksije do četvrtog reda
PMPS radi brzo, te je bez obzira na stupanjski porast performansi, brži ili jednak najbržoj
simulaciji praćenja zraka. Dakle problem se javlja tek kod refleksija višeg reda. Ukoliko se kod
takvih refleksija ostavi samo dominantni snop, porast bi se sveo na linearan, a kako je razina
intenziteta zvuka za refleksije višeg reda već prilično niska, greška koja bi se takvim
zanemarenjem uvela ne bi trebala bitno mijenjati rezultat proračuna.
Prednost PMPS‐a u odnosu na druge dvije simulacije se pokazala kod povećanja rezolucije
proračuna. U tom slučaju vrijeme proračuna PMPS‐a raste daleko najsporije od tri simulacije ‐
nešto brže od linearnog, dok vrijeme proračuna ostale dvije simulacije raste daleko brže,
stupanjski i to kod simulacije A sa drugim stupnjem, a kod simulacije B sa četvrtim stupnjem.
Po pitanju prostornih performansi PMPS je u još većoj prednosti ‐ one su konstantne, dok kod
druge dvije simulacije se ponašaju stupanjski. Razlog ovomu je također u metodi simulacije.
Naime metoda praćenja snopova je prostorno koherentna ‐ snopovi su geometrijska tijela,
koja zauzimaju određeni volumen. Zato se kod PMPS‐a proračun snopova odvija jednako, bez
obzira na prostornu gustoću točaka proračuna. Nasuprot tome, kod metode praćenja zraka,
ukoliko se gustoća točaka proračuna poveća, a želi se zadržati jednaka vrijednost detekcije
zrake, potrebno je povećati broj zraka koje se prate. To uzrokuje bitno povećanje vremena
proračuna i odgovarajuće povećanje zauzete memorije. Dakle PMPS je pred simulacijama
praćenja zraka u prednosti kada se prostor treba skenirati velikom gustoćom. Također ista je
situacija kada se prostor skenira jednakom gustoćom, ali se povećavaju dimenzije simulirane
geometrije.
Osim ispitivanja PMPS‐a u reverberantnim okruženjima gdje dominiraju refleksije zvuka,
izvršeno je mjerenje na modelu akustičke leće, gdje je dominantan efekt refrakcije zvuka.
Mjerenje je izvršeno kako bi se potvrdila mogućnost PMPS‐a da simulira nehomogene sredine,
te kako bi se ispitao utjecaj aproksimacije koju PMPS radi prilikom računanja refraktiranih
snopova, koje je opisano u poglavlju 3.5.6.1. Simulacija je ispitana na primjeru akustičke leće
izrađene od gume, koja je bila uronjena u glicerol. Rezultati simulacije uspoređeni su s
158
geometrijskom konstrukcijom refrakcije zraka, izračunatoj temeljem Snellovog zakona, te sa
komercijalnom simulacijom temeljenom na metodi FEM. Poklapanje rezultata simulacije za
geometrijskom konstrukcijom je izvrsno. Time je potvrđeno teoretsko predviđanje, da
aproksimacija proračuna refrakcije snopova neće bitno uticati na točnost rezultata, te da se
može zanemariti. Usporedba sa FEM metodom pokazala je dobro poklapanje rezultata, a
prostorne i vremenske performanse koje je PMPS metoda pokazala prilikom simuliranja ove
scene su vrlo dobre.
Daljnji rad na metodi može voditi u nekoliko smjerova, poput poboljšanja performansi,
ubacivanja drugih valnih fenomena u simulacijski model, istraživanja područja primjene
simulacije, kao i obavljanja usporedbe rezultata simulacije s mjerenjima u realnom svijetu. Što
se tiče performansi, najprije bi bilo dobro poraditi na poboljšanju prostornih performansi
metode, koje su se kod mjerenja pokazale slabijima od vremenskih performansi. Ovo se može
postići optimizacijom klasa koje se koriste za pohranjivanje rezultata simulacije, a u kojima ima
redundancije. Također ukoliko se to pokaže nedostatnim, može se razmisliti o promjeni
pristupa, kojim se kompletna simulirana zvučna slika (svi snopovi) pohranjuju u radnoj
memoriji. Prostorne performanse su se prilikom mjerenja pokazale dobrima, ali je na tom polju
svako poboljšanje dobrodošlo. Jedan od načina poboljšanja performansi je i paralelizacija
proračuna, za koji postoji više mogućnosti, od kojih je svakako najinteresantnija višenitnost
izvođenja proračuna.
PMPS je koncipiran tako da inkorporira refleksiju i refrakciju zvuka. Za neke primjene bilo bi
dobro u model ubaciti i druge valne fenomene. Tako bi za simulaciju prostorne akustike bilo
dobro u modelu imati i mogućnost simulacije difuznih refleksija, kao i difrakcije zvuka.
Obuhvaćanje ovih fenomena metodom praćenja snopova je u literaturi već predstavljeno. Za
određene primjene bi također bilo dobro imati mogućnost tretiranja interferencije, odnosno
vektorskog sumiranja zvučnog tlaka pojedinih snopova, što ne predstavlja problem sa
stanovišta algoritma. Osim ovih fenomena, interesantna bi bila i simulacija ravnog vala ‐ za
sada se u PMPS‐u tretira samo sferni val. Ova promjena bi čak u određenoj mjeri
159
pojednostavnila proračun, jer bi se kod dijeljenja snopova izbjegla perspektivna projekcija, a
umjesto nje bi se vršila jednostavnija ortogonalna projekcija.
Tijekom daljnjeg rada svakako bi trebalo istražiti potencijalna područja primjene. U ovom radu
su predstavljena dva područja primjene ‐ prostorna akustika, te fokusiranje ultrazvuka. Oba
ova područja su se pokazala kao obećavajuća, s time što je mogućnost komercijalizacije u
području prostorne akustike izvjesna. Iako primjena PMPS metode u prostornoj akustici ne
pruža presudnu prednost nad postojećom kombinacijom praćenja zraka i virtualnih izvora,
njene performanse su usporedive s trenutno najbržom simulacijom na tržištu, a točnost bi
trebala biti veća zbog prostorne koherentnosti.
Sa druge strane, za simuliranje fokusiranja ultrazvuka akustičkim lećama trenutno se koristi
metoda praćenja zraka. Međutim, za pretpostaviti je da bi zbog prostorne koherencije metode
praćenja snopova postojao prostor za primjenu PMPS‐a u ovom području.
Osim navedenih dvaju primjena bilo bi dobro istražiti mogućnost primjene PMPS‐a u području
hidroakustike, za širenje zvuka kroz slojeve morske vode sa različitom brzinom zvuka. Ovakva
okolina uzrokuje refrakciju zvuka, a kako su promjene brzine zvuka u slojevima morske vode
male, ovdje zasigurno ne imala utjecaj aproksimacija geometrije refraktiranog snopa uvedena
u PMPS‐u. Trenutno se za simulaciju ovakvog okruženja u plitkom moru koristi metoda
Gaussovih snopova.
U geologiji i seizmologiji potencijalna primjena je u simulaciji refleksije i refrakcije zvučnog vala
kroz pojedine geološke slojeve, s time što bi u ovom slučaju trebalo simulirati i transverzalne
valove, s obzirom da je riječ o širenju kroz krutine.
Naposljetku, bilo bi zanimljivo istražiti mogućnost primjene PMPS‐a u širenju medicinskog
ultrazvuka i to posebno kod širenja unutar lubanje. Naime, za očekivati je da bi PMPS, zbog
odječnosti tog dijela tijela, bio u prednosti nad metodom konačnih elemenata, koja se
tradicionalno koristi u simuliranju širenja ultrazvuka u medicinskim primjenama.
160
7 DODACI
7.1 Osnovne definicije računalne geometrije
Ovo poglavlje sadrži osnovne definicije geometrijskih termina, koji se koriste u algoritmima u
ovom radu. Ovo nisu formalne matematičke definicije, već pojašnjenja pojedinih termina.
Većina definicija preuzeta je iz Bittnera [81], te Preparate i Shamosa [125].
Definicija 1. Točka, vektor. Točka t u prostoru Rd predstavljena je d‐torkom (x1, x2, ... , xd). Ova
točka može se protumačiti i kao vektor sa d komponenti, koji ima početak u ishodištu, a
završava u točki t.
Definicija 2. Pravac, ravnina, linearna varijacija. Ako imamo dvije različite točke q1 i q2 u Rd,
tada se linearna kombinacija
q1 + (1 ‐ )q2 ( R)
zove pravac u Rd Rd. Općenito, ako imamo k linearno nezavisnih točaka q1, q2, ..., qk u Rd (kd),
onda se linearna kombinacija
1q1 + 2q2 +...+ k‐1qk‐1 + (1 ‐ 1 ‐ ... ‐ k‐1)qk (j R, j = 1, ..., k‐1)
zove linearnom varijacijom dimenzije (k ‐ 1) u Rd. Linearna varijacija dimenzije (d ‐ 1) u Rd se
zove hiperravnina. Hiperravnina u R3 se zove ravnina.
Definicija 3. Konveksna kombinacija, duljina. Ako imamo dvije različite točke q1 i q2 u Rd, onda
se konveksna kombinacija točaka q1 i q2 može izraziti kao
161
q1 + (1 ‐ )q2 ( R, 0 1).
Ova linearna kombinacija opisuje duljinu q1q2 koja spaja q1 i q2 .
Definicija 4. Konveksni skup, konveksna ljuska. Skup točaka S Rd je konveksan ako i samo
ako je za bilo koje dvije točke q1 i q2 S, duljina q1q2 u potpunosti sadržana u S. Konveksna
ljuska skupa točaka U Rd je najmanji konveksni skup u Rd koji sadrži U.
Definicija 5. Poligon, vrh, brid, potporna ravnina. Poligon P u Rd definiran je konačnim skupom
duljina (bridova) takvih da je krajnja točka (vrh) svake duljine zajednička za točno dva brida i
ne postoji podskup bridova sa istim svojstvom. Svi bridovi skupa čine podskup
dvodimenzionalne linearne varijacije koju zovemo potporna ravnina poligona P.
Definicija 6. Jednostavni, konveksni poligon. Poligon P je jednostavan ako ne postoji par ne‐
susjednih stranica koje dijele istu točku. Jednostavan poligon je konveksan ako njegova
unutrašnjost tvori konveksni skup.
Definicija 7. Poliedar, strana. Poliedar je u Rd definiran pomoću grafa k‐dimenzionalnih strana
(k‐strana) gdje je k < d. Svaka k‐strana sa k > 0 tvori k‐dimenzionalni poliedar. Vrhovi su 0‐
strane, bridovi su 1‐strane, a (d‐1)‐strane su 'poligoni' poliedara. U R3 2‐strane zovemo
jednostavno stranama.
Definicija 8. Jednostavni, konveksni poliedar. Poliedar je jednostavan ako ne postoji niti jedan
par ne‐susjednih k‐strana, koje dijele n‐stranu reda, gdje je 0 n k. Jednostavni poliedar je
konveksan ako je njegova unutrašnjost konveksan skup.
Definicija 9. Objekt, scena. Objekt je skup točaka S u Rd (koji može biti i beskonačan) takav da
se može definirati na konačan način. Pretpostavlja se da je S kompaktan i da je definicija
objekta jednostavna (kao za poliedar ili implicitne objekte – kuglu, stožac...). Scena je skup
objekata, njihovih svojstava i izvora valova.
162
Definicija 10. Zraka. Zraka u Rd je polupravac definiran svojom ishodišnom točkom o Rd i
vektorom smjera Rd. Zraka se može izraziti kao:
o + ( R, 0).
Definicija 11. Područje. Područje u Rd je kompaktan skup točaka iz Rd koji se može definirati na
konačan način.
Definicija 12. Snop. Područje je područje omeđeno sa tri zrake, koje imaju ishodište u istoj
točci.
Definicija 13. Nepravilna trokutasta mreža. Nepravilna trokutasta mreža je skup trokuta
nastalih triangulacijom skupa točaka u Rd .
Definicija 14. Linija vidljivosti. Duljina q1q2 , između dvije točke q1, q2 Rd se zove linija
vidljivosti ako ne siječe niti jedan objekt u sceni.
Definicija 15. Vidljivost između dvije točke. Dvije točke q1, q2 Rd iz scene su vidljive ako
duljina q1q2, predstavlja liniju vidljivosti. Inače su točke q1 i q2 nevidljive.
Definicija 16. Vidljivost između točke i područja. Područje A je vidljivo iz točke p ako i samo ako
su sve točke q A vidljive iz točke p. Područje A je djelomično vidljivo iz p ako i samo ako
postoje barem dvije točke q1, q2 Rd takve da je q1 vidljiva iz p, dok je q2 nevidljiva. Područje A
je nevidljivo iz p ako i samo ako ne postoji niti jedna točka q A vidljiva iz točke p.
Definicija 17. Vidljivost između dva područja. Dva područja A, B su vidljiva ako i samo ako su svi
parovi točaka a A, b B vidljivi. A i B su nevidljive ako i samo ako ne postoji niti jedan par a
A, b B, vidljivih točaka. Napokon, A i B su djelomično vidljive ako i samo ako postoje dva
različita para točaka (a1, b1) i (a2, b2), a1, a2 A; b1, b2 B, takve da su točke a1 i b1 vidljive, a
točke a2 i b2 nevidljive.
163
7.2 Operacije nad trokutima
Operacije nad trokutima su u PMPS‐u posebno važne, jer snopovi imaju trokutasti presjek, a
plohe diskontinuiteta su definirane nepravilnim trokutastim mrežama. Stoga se geometrijske
operacije presijecanja snopa s plohom diskontinuiteta, te operacije dijeljenja snopova svode
na operacije nad dva trokuta. U PMPS‐u se obavljaju dvije vrste operacija: presjek dva trokuta i
razlika jednog u odnosu na drugi trokut.
Na slici 7‐1 prikazana su dva primjera para trokut. Presjek trokuta A i B prikazan je zelenom
bojom, dok je razlika trokuta A u odnosu na trokut B prikazana crvenom bojom.
Slika 7‐1 – Presjek i razlika dvaju trokuta.
Slika 7‐2 – Dva primjera granični slučajeva.
Osim jednostavnih kombinacija, koje su prikazane na gornjoj slici postoji veliki broj graničnih
slučajeva, koje također treba uzeti u obzir. To su slučajevi poput onih na slici 7‐2, gdje kod oba
164
trokuta barem jedna stranica leži na istom pravcu i/ili vrh jednog trokuta leži na stranici (ili
vrhu) drugog trokuta.
Sveukupno postoji 15 jednostavnih kombinacija, 100 graničnih kolinearnih kombinacija gdje je
barem jedna stranica trokuta A kolinearna stranici trokuta B, te 143 granične kolocirane
kombinacije, gdje barem jedan vrh trokuta A leži na stranici trokuta B ili se poklapa sa vrhom
trokuta B. Uobičajeni način za proračun rezultata ovakvih operacija jest primjena Southerland‐
Hodsonovog algoritma [132]. U ovom radu oblikovan je i razvijen izvorni algoritam, koji za
razliku od uobičajenog svaku od kombinacija tretira zasebno. Ovakav algoritam postiže bolje
performanse, ali nauštrb veličine koda.
Algoritam započinje s određivanjem, je li kombinacija dvaju trokuta spada u granično
kolinearnu grupu, granično kolociranu grupu ili grupu jednostavnih kombinacija. U prva dva
slučaja, indeksi vrhova i stranica trokuta se mijenjaju tako da indeksiranje počinje od
kolociranih vrhova i kolinearnih stranica. Potom se poziva odgovarajuća funkcija, ovisno u koju
grupu kombinacija spada. Unutar funkcije se temeljem nekolicine jednostavnih geometrijskih
testova određuje koja je točno kombinacija trokuta u pitanju. Potom se "switch‐case"
grananjem za svaku od kombinacija obavlja operacija presjeka ili razlike. Ukoliko je rezultat
operacije poligon umjesto trokuta, vrši se triangulacija poligona Delaunayjevom triangulacijom
[74].
165
7.3 Algoritam traženja „osvijetljenih“ trokuta
Algoritam traženja „osvijetljenih“ trokuta je slijedeći:
za svaki trokut T mreže M
ako bilo koja rubna zraka snopa presijeca T
dodaj T u red kandidata CT
prekini petlju
ako je CT prazan
ako je prvi vrh prvog trokuta T iz M unutar snopa
dodaj T na početak CT
za svaki T iz CT
ako bilo koji rub E trokuta T siječe jednu od stranica snopa B
dodaj susjeda trokuta T koji ima zajednički rub E na CT
dodaj T u red osvijetljenih trokuta IT
inače
ako je jedan vrh trokuta T unutar B
dodaj T redu osvijetljenih trokuta IT
ukloni T iz CT
Prva petlja algoritma traži prvi osvijetljeni trokut, uz pomoć "brute‐force" metode. Za svaki
trokut se provjerava, je ga li neka od tri rubne zrake snopa presijeca. Ukoliko se na taj način ne
pronađe niti jedan „obasjani“ trokut, slijedi provjera, je li se cijela mreža trokuta nalazi unutar
snopa. Nakon što se na taj način pronađe prvi „obasjani“ trokut, algoritam ulazi u petlju, gdje
se provjeravaju susjedni trokuti već pronađenih osvijetljenih trokuta. Tu se vrši provjera jesu li i
oni osvijetljeni. Ovaj dio algoritma koristi topološke informacije mreže za ubrzanje provjere.
Trokuti koje treba provjeriti jesu li osvijetljeni smještaju se u strukturu tipa red – novi kandidati
se ubacuju na kraj, a oni za koje se vrši provjera se uzimaju sa početka reda. Nakon provjere
kandidati se uklanjaju sa iz reda za provjeru, te se ako zaista jesu osvijetljeni dodaju u spremnik
osvijetljenih trokuta, koji je također struktura tipa red. Za spremnike kandidata i osvijetljenih
trokuta izabrana je struktura tipa red, implementirana kao vezana lista. Lista je izbrana
umjesto niza, jer ona brže obavlja ubacivanje i izbacivanje elemenata, a također nije potrebno
pristupati članovima putem indeksa.
166
7.4 Transformacija i projekcija u koordinatni sustav snopa
Na slici 7‐3 prikazana je kontura snopa sa iscrtanim linijama crvene boje. Izvor snopa je u točki
SC( xSC, ySC, zSC). Crnom bojom prikazan je glavni koordinatni sustav s osima x, y, i z, dok je
koordinatni sustav snopa prikazan crvenom bojom, sa osima xS, yS i zS.
Slika 7‐3 – Prikaz snopa u glavnom koordinatnom
sustavu i koordinatnom sustavu snopa
Matrica transformacije koordinata iz glavnog koordinatnog sustava u koordinatni sustav snopa
MGKS‐>KSS predstavlja umnožak matrice translacije i matrice rotacije.
Matrica translacije T ima zadatak izvršiti pomak koordinata, tako da ishodište glavnog
koordinatnog sustava dođe u ishodište koordinatnog sustava snopa. Njen sadržaj je slijedeći:
1
0100
0010
0001
SCSCSC zyx
T (7.1)
167
Matrica rotacije R ima zadatak napraviti rotaciju glavnog koordinatnog sustava, tako da se
njegova os z poklopi s koordinatnom osi zS snopa. Ovo se postiže rotacijom glavnog
koordinatnog sustava oko vektora
Zn koji je okomit na obje gore navedene osi, i to za kut θ,
koji predstavlja prostorni kut između dviju navedenih osi.
zzn SZ (7.2)
Z
Z
n
nn (7.3)
zz
zza
S
Scos (7.4)
Pomoću vektora
n sa komponentama (nx, ny, nz) iz izraza (7.3), te kuta θ iz izraza (7.4), matrica
za rotaciju se može napisati na sljedeći način:
1000
0coscos1sincos1sincos1
0sincos1coscos1sincos1
0sincos1sincos1coscos1
,2
2
2
zxzyyzx
xzyyzyx
yzxzyxx
nnnnnnn
nnnnnnn
nnnnnnn
nR (7.5)
Ukupna matrica transformacije iz glavnog koordinatnog sustava u koordinatni sustav dobije se
umnoškom matrice rotacije i matrice translacije:
TRM KSSGKS (7.6)
168
7.5 Jednostavni primjer odvijanja algoritma za skrivanje i dijeljenje trokuta
Na slici 7‐4 prikazano je izvršenje algoritma skrivanja i dijeljenja trokuta na jednostavnom
primjeru.
Slika 7‐4 – Primjer izvršenja algoritma prekrivanja i
dijeljenja trokuta
a)
b)
c) e)
d)
169
Na slici 7‐4a prikazan je početni položaj snopova, za koje treba izvršiti algoritam skrivanja i
dijeljenja. Lijevo se nalazi tlocrtni prikaz, a desno je prikaz u perspektivi. Trokuti T1 i T2 se
nalaze sprijeda, s rednim brojem vidljivost 1. Oni samo dijelom ispunjavaju presjek snopa, a u
geometriji scene predstavljaju dio koji zaklanja druge dijelove geometrije – unutrašnju ljusku.
Straga se nalaze još dva trokuta, T3 i T4, koji imaju redni broj vidljivosti 2. Oni ispunjavaju cijeli
presjek snopa i predstavljaju vanjsku ljusku, odnosno onaj dio geometrije koje je zaklonjen od
unutrašnje ljuske. Svi se ovi trokut na početku algoritma nalaze u PT. Na početku se trokuti T1 i
T2 prebacuju na hT, s obzirom da imaju isti redni broj vidljivosti. Potom se trokut T3 sa PT
provjerava u odnosu na T1. Kako postoji zaklanjanje, T3 se dijeli, nakon čega od njega preostaju
dijelovi T31 i T32, kao što je prikazano na slici b.
Petlja se potom ponavlja za trokut T31, međutim zbog provjeravanja susjednosti i informacije o
prethodnom testiranju pohranjene u CP, svi se testovi preskaču osim testa T31 i T2. S obzirom
da među njima nema zaklanjanja, T31 se prebacuje na hT. Potom se ispituje trokut T32, koji se iz
istih razloga kao i prethodni trokut provjerava samo u odnosu na T2. Preklapanje postoji, pa se
tako T32 smanjuje na T321. Petlja se potom ponavlja, međutim zbog provjeravanja susjednosti i
informacije o prethodnom testiranju pohranjene u CP, nije potrebno raditi niti jedan test
preklapanja, pa se stoga T321 prebacuje na hT (slika c).
Potom se na sličan način vrši dijeljenje trokuta T4 sa T1, što rezultira trokutom T41, kako je
prikazano na slici d. Na kraju se vrši rezanje trokuta T41 sa T2, što rezultira trokutom T411.
Konačni set trokuta je prikazan na slici e – vidi se da je proces skrivanja uspješno završen, jer se
niti jedan trokut međusobno ne preklapa.
Ovdje prikazani algoritam ima manu u velikom broju ponavljanja, pa su stoga razmotrene
moguće alternative, kako bi se eventualno postigla veća učinkovitost algoritma. Jednom
rješenju je posvećena posebna pažnja. Naime algoritam bi se mogao sprovesti na slijedeći
način:
1) prvo izvršiti presijecanje svih rubova svih trokuta koji sudjeluju u procesu skrivanja
2) izvršiti Dealunayjevu triangulaciju [74] novonastalih presjecišta
170
3) za svaki novonastali trokut ustanoviti, kojem najbližem izvornom trokutu pripada, kako
bi se kasnije moglo izvršiti ispravno stvaranje podijeljenog snopa
U ovakvom algoritmu prva dva koraka bi se mogla izvršiti učinkovito – presijecanje rubova ne
bi uzelo puno procesorskog vremena, a Dealunayjeva triangulacija je tehnika koja je dovedena
do visokog stupnja optimizacije. Međutim treći korak zahtjeva veliki broj ponavljanja, te bi
umanjio učinkovitost cijelog algoritma. Osim toga moguće je uočiti još dvije mane ovakvog
rješenja. Naime, ovdje se dijeljenje trokuta i određivanje kojem izvornom trokutu pripadaju
podijeljeni trokuti, odvija u dva zasebna koraka, dok se u algoritmu primijenjenom u PMPS‐u to
odvija istovremeno, u jednom koraku. Druga mana je, da bi ovakav alternativni algoritam
rezultirao većim brojem podijeljenih trokuta, čime bi se usporio daljnji tijek simulacije. Primjer
je prikazan na slici 7‐5 gdje se na lijevoj strani nalazi rezultat dijeljenja za PMPS‐ algoritam, a
desno za alternativni, Dealunayjev algoritam.
Slika 7‐5 – Rezultat primjene originalnog algoritma
(lijevo) i alternativnog algoritma (desno) skrivanja i
dijeljenja trokuta
171
7.6 Algoritam izvođenja relacijskih operacija sa svrhom smanjenja utjecaja
numeričkih grešaka
Realni decimalni brojevi se u računalu zapisuju kodiranjem u binarni zapis tehnikom pomičnog
zareza ANSI/IEEE standardom br. 745 iz 1985. godine. Zbog načina zapisa nije moguće svaki
realni broj pohraniti točno u binarnom obliku, već se tom prilikom događa greška. Na primjer,
ukoliko izvršimo slijedeći program:
#include <iostream> using namespace std; void main () { double d; d = 0.2; }
u memoriji će vrijednost varijable d iznositi 0.20000000000000001. Dakle pojavljuje se
numerička greška u iznosu 10‐17. Iznos ove numeričke greške je mali, ali može uzrokovati
probleme u operacijama usporedbe jednakosti. Razmotrimo slijedeći primjer:
#include <iostream> #include <math.h> using namespace std; void main () { double d; double k; d = 0.2; k = d * d; if( k == 0.04 ) cout << "U redu!" << endl; else cout << "Greška!" << endl; }
172
Ovaj program ispisati će grešku, odnosno dojaviti će da izraz 0.22 == 0.04 nije istinit. Razlog
tomu je numerička greška, koja se javlja prilikom zapisivanja broja 0.2 u memoriju, a koja
potom operacijom kvadriranja doživljava promjenu. Zbog sličnog razloga u PMPS‐u, prilikom
geometrijskih operacija translacija, rotacija, presijecanja i sl. dolazi do numeričke greške. Ona
je posljedica netočnosti pohranjivanja točnih koordinata u memoriju, te promjena koje
numerička greška doživljava prilikom računskih operacija nad koordinatama.
Kako bi se u najvećoj mogućoj mjeri izbjegli problemi sa numeričkom greškom u PMPS‐u se
usporedbe jednakosti dva broja ne vrše relacijskim operatorom usporedbe jednakosti ==, već
se koristi vlastita funkcija za usporedbu s tolerancijom. Algoritam funkcije je slijedeći:
ako je abs( A – B ) < najvećeApsolutnoOdstupanje
vrati istinu
ako je abs( B ) > abs ( A )
relativnoOdstupanje = abs( ( A – B ) / B )
inače
relativnoOdstupanje = abs( ( A – B ) / A )
ako je relativnoOdstupanje <= najvećeRelativnoOdstupanje
vrati istinu
vrati laž
U navedenom algoritmu su A, B, najvećeApsolutnoOdstupanje i najvećeRelativnoOdstupanje
ulazni parametri tipa double. Algoritam uspoređuje brojeve A i B, te predstavlja poboljšanu
verziju algoritma usporedbe sa relativnom greškom. Algoritam ima dvije provjere: provjeru
relativnog odstupanja, te provjeru apsolutnog odstupanja. Provjera relativnog odstupanja je
temeljna provjera, te ima za svrhu provjeriti koliko je relativno odstupanje razlike brojeva u
odnosu na veći od dva broja. Relativnom provjerom se pokriva cijeli opseg relativnih brojeva
173
zapisanih u dvostrukoj preciznosti, bez obzira na njihovu magnitudu. Vrijednost parametra
navjećeRelativnoOdstupanje odabire se ovisno o brojevima koji se uspoređuju. Najmanja
vrijednost tog parametra je točnost zapisa double formata, odnosno veličina numeričke greške
koja se javlja prilikom zapisivanja broja u tom formatu. Međutim, ukoliko se nad jednim od
dvaju brojeva obavlja veći broj računskih operacija, zbog povećavanja greške računanjem, ovaj
parametar je potrebno odgovarajuće povećati.
Provjera apsolutnog odstupanja služi kao osigurač za usporedbu malih brojeva, bliskih nuli.
Naime, ako uspoređujemo najbliži pozitivni broj nuli (koji se može zapisati u double formatu) s
najbližim negativnim brojem nuli, iako je njihova razlika izuzetno mala, usporedba njihove
relativne razlike prema gornjem algoritmu će biti jednaka 2.0. Ovo je daleko više od parametra
navjećeRelativnoOdstupanje, pa bi stoga u ovom slučaju usporedba netočno dala rezultat
false. Stoga će najprije biti provjereno njihovo apsolutno odstupanje. Veličina parametra
najvećeApsolutnoOdstupanje, treba biti izuzetno mala, kako ne bi konkurirala provjeri
relativnog odstupanja.
174
8 POPIS LITERATURE
1 Sikora M., Mateljan I., Bogunović N.: "The effect of refraction as a non‐linear
transformation on beam tracing simulation of sound propagation", prihvaćen za
objavljivanje na 1st European Acoustics Association Euroregio Congres on Sound and
Vibration (EAA ‐ Euroregio 2010), Ljubljana (Slovenija), 15. ‐ 18. rujna 2010.
2 Schmitzy A., Rick T., Karolski T., Kuhlen T., Kobbelt L.: „Simulation of RadioWave
Propagation by Beam Tracing“, Eurographics Symposium on Parallel Graphics and
Visualization, 2009., pp. 17–24
3 Laine S., Siltanen S., Lokki T., Savioja L.: „Accelerated beam tracing algorithm“,
Applied Accoustics, Vol. 70, No. 1, 2009., pp. 172 ‐ 181
4 Phillips J. C., Stone J. E.: „Probing Biomolecular Machines with Graphics Processors“,
Communications of the ACM, Vol. 52, No. 10, 2009., pp. 34 ‐ 41
5 Chandak A., Lauterbach C., Taylor M., Ren Z., Manocha D.: „AD‐Frustum: Adaptive
Frustum Tracing for Interactive Sound Propagation“, Proceedings of IEEE
Visualization, Vol. 14, No. 6, 2008., pp. 1707 ‐ 1714
6 Vorlander M.: „Auralization“, Springer, 2008.
7 King P., Venkatesan R., Li C.: „An Improved Communications Model for Underwater
Sensor Networks“, Proceedings of IEEE GLOBECOM, 2008., pp. 1 ‐ 6
8 Han Z., Sun Y. L.: „Wave cooperative Transmission Protocol for Underwater Acoustic
Communications“, Proceedings of IEEE International Conference on Communications,
2008., pp. 2028 ‐ 2032
9 Shan H., Li M., Chen H., LV T.: „The Developments of Simulation Software for
Ultrasonic Testing“, Proceedings of 17th World Conference on Nondestructive Testing
(17th WCNDT), Shanghai (China), 25.‐28. listopada 2008., CD Proceedings ‐ Paper 165
10 Sikora M.: „The algorithm of beam division in beam tracing method for non‐
homogeous environments“, Proceedings of 3rd Congress of Alps Adria Acoustics
Association (AAAA 2007), Graz (Austrija), 27.‐28. rujna 2007., CD Proceedings ‐Frontal
Session 2‐Paper 5
175
11 Svennson E.: „Physical modelling of acoustic shallow‐water communication channels“,
doktorska disertacija, KTH ‐ University of Stockholm, 2007.
12 Lauterbach C., Chandak A., Manocha D.: „Interactive Sound Propagation in Dynamic
Scenes Using Frustum Tracing“, IEEE Visualization and Computer Graphics, Vol. 13,
No. 6, 2007., pp. 1672 ‐ 1679
13 Kirkup S.: „The Boundary Element Method in Acoustics“, Integrated Sound Software,
2007.
14 Feistel S., Ahnert W., Miron A., Schmitz O.: „Improved methods for calculating room
impulse response with EASE 4.2 AURA“, Proceedings of 19th International congress on
Acoustics (ICA), Madrid (Spain), 2.‐7. rujna 2007.
15 Erickson J., Siau K.: „Theoretical and practical complexity of modeling methods“,
Communications of the ACM, Vol. 50, No. 8, 2007., pp. 46 ‐ 51
16 Kreuzel W.: „Vibrations from railways in tunnels and trenches with elastic anisotropis
layered medium“,Proceedings of 3rd Congress of Alps Adria Acoustics Association
(AAAA 2007), Graz (Austrija), 27.‐28. rujna 2007., CD Proceedings ‐ Interactive session
‐ Paper 5
17 Shah M., Pattanaik S.: „Caustic Mapping: An Image‐space Technique for Real‐time
Caustics“, IEEE Transactions on Visualization and Computer Graphics, Vol. 13, No. 2,
2007., pp. 272 ‐ 280
18 Overback R, Ramamoorthi R., Mark W.R.: „A Real‐rime Beam Tracer with Application
to Exact Soft Shadows“, Proceedings of Eurographics Symposium on Rendering,
2007., pp. 85 ‐ 98
19 Barczak J., Olano M.: „Interactive Shadowed Caustics Using hierarchical Light
Volumes“, Technical Report ‐ University of Maryland Baltimore County, 2006.
20 Baboud L., Décoret X.: „Realistic Water Volumes in Real‐time“, Eurographics
Workshop on Natural Phenomena, 2006., pp. 1 ‐ 8
21 de Greve B.: „Increasing the efficiency of beam tracing for noise mapping“, Seventh
FirW PhD Symposium, Gent (Belgija), 29. studenog 2006., Interactive Poster Session ‐
Paper 74
176
22 Comba J. L. D., Mitchell J. S. B., Silva C. T.: „On the Convexification of Unstructured
Grids From A Scientific Visualization Perspective“, poglavlje u knjizi „Scientific
Visualization: The Visual Extraction of Knowledge from Dana“, Springer, 2006., pp. 17
‐ 34
23 Reis G., Bertram M.: „Propagating particles through inhomogenous scalar fields“,
Proceedings of Visualization, Imaging, and Image Processing, 2006., pp. 541
24 Sikora M.: „Beam‐tracing method in non‐homogenous environments“, Proceedings of
2nd Congress of Alps Adria Acoustics Association, 2005., pp. 244 ‐ 248
25 Laine S., Aila T.: „Hierarchical Penumbra Casting“, Proceedings of Eurographics, Vol.
24, No. 3, 2005., pp. 313 ‐ 322
26 Dupire J., Topol A., Cubaud P.: „Using game engines for non 3D gaming applications“,
Proceedings International Conference on Computer Games, 2005., pp. 304 ‐ 307
27 Bertram M., Deines E., Mohring J., Jegorovs J., Hagen H.: „Phonon Tracing for
Auralization and Visualization of Sound“, Proceedings of IEEE Visualisation, 2005., pp.
151 ‐ 158
28 Sikora M.: „Algorithms for simulation of sound and ultrasound in complex dispersive
environments “, Proceedings ELMAR, 2004, pp. 289 ‐ 293
29 Nironen H.: „Diffuse Reflections in Room Acoustics Modelling“, doktorska disertacija,
Helsinky University of Techology, 2004.
30 Chung, B.K., Teh, C.H., Chuah H.T.: „Modeling of anechoic chamber using a beam‐
tracing technique“, Progress in Electromanetic Research, 2004., pp. 23 ‐ 38
31 Svensson U.P.: „Modelling room acoustics“, Proceedings of Joint Baltic‐Nordi
Acoustical Meeting (BNAM), Marienhamn (Finska), 8.‐10. lipnja 2004.
32 Mihajlović Ž., Budin L., Radej J.: „Gradient of B‐splines in Volume Rendering“,
Proceedings of the 12th IEEE Mediterranean, 2004., pp. 239 ‐ 242
33 Cleveland R. O., Tello J. S.: „Effect of the diameter and the sound speed of a kidney
stone on the acoustic field induced by shock waves“, Acoustical Research Letters
Online, Vol. 5, No. 2, 2004., pp. 37 ‐ 45
177
34 T. Funkhouser, N. Tsingos, P. Min: „A Beam Tracing Method for Interactive
Architectural Acoustics“, Journal of Acoustical Society of America, Vol. 115, No. 2,
2004., pp. 739 ‐ 756
35 Kurniawan S.H., Sporka A.J., Nemec V., Slavik P.: „Design and evaluation of computer‐
simulated spatial sound“, Proceedings of The 5th International Conference on
Disability, Virtual Reality and Associated Technologies, 2004., pp. 175 ‐ 181
36 Marchal D., Aubert F., Chaillou C.: „Collision Between Deformable Objects Using Fast‐
Marching on Tetrahedral Models, Proceedings of Eurographics/ACM SIGGRAPH
Symposium on Computer Animation, 2004., pp. 121 ‐ 129
37 Schmitz A., Rick T., Karolski T., Kobbelt L., Kuhlen T.: „Beam Tracing for Mulitpath
Propagation in urban Environments“, Proceedings of 3rd European Conference on
Antennas and Propagation, 2009., pp. 2631 ‐ 2635
38 Duncan A. J.: „The measurement of underwater acoustic noise radiated by a vessel
using the vessel's own towed array“, doktorska disertacija, Curtin university of
technology, 2003.
39 Vaananen R.: „Parametrization, Auralization, and Authoring of Room Acoustics for
Virtual Reality Applications“, doktorska disertacija, Helsinky University of Techology,
2003.
40 Schneider P. J., Eberly D. H.: „Geometric tools for computer graphics“, Morgan
Kaufmann Publishers (Elsevier), 2003.
41 Luna F.D.: „Introduction to 3D Game Programming with DirectX 9.0“, Wordware
Publishing Inc., 2003.
42 Cao X., MAKINO M., SHIRAI H., SHINODA S.: „An Interactive Visualization of High
Frequency Electromagnetic Wave Propagation on the CAVE“, Proceedings of 3rd CAVE
programming workshop (CPW3), Espoo (Finska), 27.‐29. kolovoza 2003., PC‐CAVE and
use cases Section ‐ Paper 7
43 Di Giampaolo E., Mioc F., Sabbadini M., Bardati F.: „Measurement and analytical
validation of astigmatic beam tracer“, Proceedings of 26th ESA Antenna Technology
178
Workshop on Satellite Antenna Modelling and Design Tools, Noordwijk (Nizozemska),
12.‐14. studenog 2003., Tool Validation Section ‐ Paper 3
44 Schiettecatte B., Nackaerts A., De Moor B.: „Real‐Time Acoustics Simulation using
Mesh‐Tracing“, Proceedings of the International Computer Music Conference (ICMC),
Singapore, 29. rujna ‐ 04. listopada 2003.
45 Teschenr M., Heidelberg B., Muller M., Pomeranets D., Gross M.: „Optimized Spatial
Hashing for Collision Detection of Deformable Objects“, Proceedings of Vision
Modeling and Visualization, 2003., pp. 47 ‐ 54
46 Funkhouser T., Tsingos N., Jot J.M.: „Survey of Methods for Modeling Sound
Propagation in Interactive Virtual Environment Systems“,The 6th Annual International
Workshop on Presence, Aalborg (Danska), 6.‐8. listopada 2003.
47 Alvares S., Gattass M.: „Propagation Paths in 2.5D Environments“, Proceedings of the
Climdiff 2003 Workshop, 2003., pp. 111 ‐ 118
48 Mihajlović Ž., Budin L., Guid N.: „Reconstruction of Gradient in Volume Rendering“,
Proceedings ICIT, 2003., pp. 282 ‐ 286
49 M. Foco, P. Polotti, A. Sarti, S. Tubaro: „Sound Spatialization Based in Fast Beam
Tracing in the Dual Space“, Proceedings of the 6th Int. Conference on Digital Audio
Effects (DAFx‐03), London (Velika Britanija), 8.‐11. rujna 2003., Spatialization & 3D
Audio Section ‐ Paper 2
50 J. H. Rindel, C. L. Christensen: „Room Acoustic Simulation and Auralization ‐ How Close
Can We Get to the Real Room?“, The 8th Western Pacific Acoustics conference, 2003.
51 Di Giampaolo E., Bardati F., Sabbadini M.: „Recent improvements in beam tracing“,
IEEE Topical Conference on Wireless Communication Technology, 2003., pp. 255 ‐ 256
52 Funkhouser T., Tsingos N., Carlbom I., Elko G., Sondhi M., West J.: „Modeling Sound
Reflection and Diffraction in Architectural Environments with Beam Tracing“,
Proceedings of Forum Acusticum (FA2002), Sevilla (Španjolska), 16.‐20. rujna 2002.,
Paper NUM‐02‐004‐IP
53 Dunn F., Parberry I.: „3D Math Primer for Graphics and Game Development“,
Wordware Publishing Inc., 2002.
179
54 M. Sikora, B. Ivančević, K. Jambrošić: „Use of Acoustic Simulation and Visualization
for Revitalization of Ancient Buildings“, Proceedings ELMAR, 2002., pp. 121 ‐ 125
55 K. Jambrošić, B. Ivančević, M. Sikora: „Acoustic properties of an old stone atrium used
for concerts“, Proceedings of Forum Acousticum (FA2002), Sevilla (Španjolska), 16.‐
20. rujna 2002., Paper RBA‐02‐017
56 M. Sikora, B. Ivančević, K. Jambrošić: „The Simulation of Propagation of Ultrasound
During Invasive and Non‐invasive Neurosurgical Treatments“, Proceedings EMBEC,
Vol. 2, 2002., pp. 1156‐1157
57 F. P. Mechel: „Improved mirror source method in room acoustics“, Journal of Sound
and Vibration, Vol. 256, No. 5, 2002., pp. 873 ‐ 940
58 Tsingos N., Carlbom I., Elko G., Funkhouser T., Kubli R.: „Validation of Acoustical
Simulations in the “Bell Labs Box”“, IEEE Computer Graphics and Applications, Vol.
22, No. 4, 2002., pp. 28 ‐ 37
59 Olson B.C.: „Merging EASE for sound reinforcement systems and CAESAR for room
acoustics“, Proceedings of 142nd Meeting Acoustical Society of America (ASA), Fort
Lauerdale (Florida, SAD), 3.‐7. prosinca 2001.
60 Tsingos N.: „A versatile software architecture for virtual audio simulations“,
Proceedings of the 7th International Conference on Auditory Display (ICAD2001),
Espoo (Finska), 29. srpnja ‐ 01. kolovoza 2001., 3D/Immersive Sound I Section ‐ Paper
4
61 Iwasaki K., Dobashi Y., Nishita T.: „Efficient Rendering of Optical Effects within Water
Using Graphics Hardware“, Pacific Graphics, 2001., pp. 374 ‐ 383
62 M. Abrash : „Graphics Programming Black Book“, Coriolis Group Books, srpanj 1997.
63 Sarti A., Tubaro S.: „Low‐cost geometry‐based acoustic rendering“, Proceedings of
COST‐G6 Conference on Digital Audio Effects (DAFx01), Limerick (Irska), 6.‐8. prosinca
2001., pp. 19 ‐ 22
64 N. Tsingos, T. Funkhouser: „Modeling Acoustics in Virtual Environments Using the
Uniform Theory of Diffraction“, Proceedings of 28th International Conference on
180
Computer Graphics and Interactive Techniques (ACM SIGGRAPH), Los Angeles (SAD),
12. ‐ 17. kolovoza 2001., pp. 545 ‐ 552
65 M. Sikora: „Trodimenzionalna simulacija raspodjele zvučnog polja unutar lubanje“,
Magistarski rad, Fakultet elektrotehnike i računarstva, 2001.
66 M. Sikora, B. Ivančević, I. Zorić: „3D Simulation of Ultrasound Propagation in Human
Scull“, Proceedings ELMAR, 2001., pp. 174 ‐ 178
67 B. Ivančević, M. Sikora, K. Jambrošić: „Simulation of Certain Acoustic Properties of the
“Knežev Dvor” in Dubrovnik“, Proceedings ICECOM, 2001., pp. 101 ‐ 104
68 A. Farina, L. Tronchin: „Comparison between measurements of the scattering and
diffusion coefficients“, Proceedings of 17th International Congress on Acoustics
(ICA2001), Rim (Italija), 2.‐7. rujna 2001., Invited Paper in the Structured Session on
Scattering in Room Acoustics
69 Nirenstein S., Gain J., Blake E.: „Aggressive Visibility Pre‐processing with Adaptive
Sampling“, Technical Report, Department of Computer Science, University of Cape
Town, 2001.
70 A. Farina, A. Bellini, E. Armelloni: „Non‐linear convolution: A new approach for the
auralization of distorting systems“, Proceedings 110th AES Convention, Amsterdam
(Nizozemska), 12.‐15. svibnja 2001., Section K ‐ Paper 2
71 Sikora M.: „Porat – A Computer Simulation of the Propagation of Sea Waves“,16th
International Course & Conference on the Interfaces among Mathematics, Chemistry
& Computer Sciences (MCC2001), Dubrovnik, 25.‐30. lipnja 2001., Section on
Computational Chemistry & Physics ‐ Paper 5
72 Kraus M., Ertl T.: „Simplification of Nonconvex Tetrahedral Meshes“, Proceedings of
NSF/DoE Lake Tahoe Workshop for Scientific Visualization, 2000., pp. 185 ‐ 196
73 A. Farina, L. Tronchin, M. Pontillo, V. Tarabusi: „The calculation of the impulse
response in the binaural technique“, Proceedings 7th International Congress on Sound
and Vibration (ICSV7), Garmisch‐Partenkirchen (Germany), 4.‐7. srpnja 2000.
74 De Berg M., Van Kreveld M., Overmars M., Schwarkopf O.: „Computational Geometry
– Algorithms and applications „, Springer‐Verlag, 2000.
181
75 J. Ericksonn: „Finite‐Resolution Hidden Surface Removal“, Proceedings of the 11th
Annual ACM‐SIAM Symposium on Discrete Algorithms, 2000., pp. 901 ‐ 909
76 I. Drumm: „The adaptive beam tracing algorithm“, Journal of Acoustical Society of
America, Vol. 107, No. 3, 2000., pp. 1405 ‐ 1412
77 A. Farina: „Introducing the surface diffusion and edge scattering in a pyramid‐tracing
numerical model for room acoustics“, Proceedings of the 108th AES Convention, Pariz
(Francuska), 19.‐22. veljače 2000., Session N ‐ Paper 1
78 A. Farina, „Validation of the numerical simulation of the scattered sound field with a
geometrical pyramid tracing approach“, Proceedings of ACOUSTICS 2000 ‐ IOA
Conference, Liverpool (Velika Britanija), 14.‐17. travnja 2000.
79 A. Farina: „Validation of the pyramid tracing algorithm for sound propagation
outdoors: comparison with experimental measurements and with the ISO/DIS 9613
standards“, Advances in Engineering Software ‐ Elsevier Applied Science, Vol. 31, No.
4, 2000., pp. 241 ‐ 250
80 Funkhouser T.: „Geometrical Theory of Diffraction for Modeling Acoustics in Virtual
Environments“, Technical report, Bell Labs, 2000.
81 J. Bittner : „Hierarhical Techniques for Visbility Determination“, doktorska disertacija,
Department of Computing Science and Engineering, Faculty of Electrical Engineering,
Chech Technical University , 1999.
82 J. C. Mould, G. L. Wojcik, L. M. Carcione, M. Tabei, T. D. Mast, R. C. Waag: „Validation
of FFT‐Based Algorithms for Large‐Scale Modeling of Wave Propagation in Tissue“,
Proceedings of the IEEE Ultrasonics Symposium , 1999., pp. 1551 ‐ 1556
83 G. L. Wojcik, J. C. Mould Jr., L. M. Carcione: „Combined Transducer and Nonlinear
Tissue Propagation Simulations“, ASME International Mechanical Engineering
Congress and Exposition, Nashville (SAD), 15.‐20. studenog 1999.
84 J. C. Mould, G. L. Wojcik, L. M. Carcione, M. Tabei, T. D. Mast, R. C. Waag: „Nonlinear
Pulse Calculations & dana in water and a tissue mimic“, Proceedings of the IEEE
Ultrasonics Symposium, Vol. 2, 1999., pp. 1521 ‐ 1526
182
85 Fortune S: „Topological beam tracing“, Proceedings of the 15th symposium on
computational geometry, 1999., pp. 59 ‐ 68
86 Funkhouser T., Carlbom I., Elko G., Pingali G., Sondhi M., West J.: „A Beam Tracing
Approach to Acoustic Modeling for Interactive Virtual Environments“, Procedings
SIGGRAPH, 1998., pp. 21 ‐ 32
87 Khoury S., Freed A., Wessel D.: „Volumetric Modeling of Acoustic Fields in CNMAT's
Sound Spacialization Theatre“, Proceedings of IEEE Visualisation, 1998., pp. 439 ‐ 442
88 G.L. Wojcik, D.K. Vaughan, N. Abboud, J. Mould, Jr.: „Finite Element Modeling for
Ultrasonic Transducers“, Proceedings SPIE Int. Symp. Medical Imaging, Vol. 3341,
1998., pp. 19 ‐ 42
89 D. Ghazanfarpour, J.M. Hasenfratz: „A Beam Tracing Method with Precise Antialiasing
for Polyhedral Scenes“, Computers and Graphics, Vol. 22, No. 1, 1998., pp. 103 ‐ 115
90 B. Ivančević, I. Zorić, M. Sikora: „Kompjuterska simulacija širenja ultrazvuka u
omeđenoj ravnini“, Proceedings ELMAR, 1998., pp. 291 ‐ 294
91 B. Ivančević, I. Zorić, M. Sikora: „Computer simulation and measurement of the
ultrasound field in a bounded plane“, Proceedings IMEKO TC‐4 Symposium on
Development in Digital Measuring Instrumentation, 1998., pp. 737 ‐ 741
92 A. Farina, L. Tronchin: „3D Impusle Response measurements on S. Maria del Fiore
Curch“, Proceedings 16th International Congress on Acoustics (ICA), Seattle (SAD),
20.‐26. lipnja 1998.
93 Snyder J., Lengyel J.: „Visibility Sorting and Compositing without Splitting for Image
Layer Decompositions“, Proceedings of the 25th annual conference on Computer
graphics and interactive techniques, 1998., pp. 219 ‐ 230
94 Tsingos N., Gascuel J.D.: „Fast rendering of sound occlusion and diffraction effects for
virtual acoustic environments“, Proceedings of AES Convention, 1998., pp. 4 ‐ 7
95 O'Rourke J.: „Computational Geometry in C“, Cambridge ‐ University Press, 1997.
96 I. Drumm: „The development and application of an adaptive beam tracing algorithm
to predict the acoustics of auditoria“, doktorska disertacija, University of Salford,
1997.
183
97 B. Ivančević, I. Zorić, M. Sikora: „Sound field measurement in the bounded plane“,
Proceedings of 39th International Symposium on Electronics in Marine (ELMAR 1997),
Zadar (Hrvatska), 25.‐27. lipnja 1997.
98 L. Tronchin, A. Farina: „Acoustics of the former teatro „La Fenice“ in Venice“, Journal
of the Audio Engineering Society, Vol. 45, 1997., pp. 1051 ‐ 1062
99 Moller T.: „A Fast Triangle‐Triangle Intersection Test“, Journal of graphics tools, Vol. 2,
No. 2, 1997., pp. 25 ‐ 30
100 Moller T.: „Fast, minimum storage ray‐triangle intersection“, Journal of Graphics
Tools, Vol. 2, No. 1, 1997., pp. 21 ‐ 28
101 Diefenbach P. J.: „Pipeline rendering: Interaction and realism through hardware‐based
multi‐pass rendering“, doktorska disertacija, University of Pennsylvania, 1996.
102 X. Pueyo, F. Perez, T. Sellares, J. Suy: „An Object Oriented Approach for Teaching
Visibility Computation algorithms“, Computers and Graphics, Vol. 20, No. 4, 1996., pp.
605 ‐ 610
103 M. Sikora, H. Domitrović: „CODA – COmputerizeD Auralization“, Proceedings of 100th
AES Convention, Copenhagen (Danska), 11.‐14. svibnja 1996., Paper 4230
104 M. Sikora: „CODA ‐ COMPUTERIZED AURALIZATION“, Proceedings of 38th
International Symposium on Electronics in Marine (ELMAR 1996), Zadar (Hrvatska),
lipanj 1996.
105 Muthupari S, Raghavan S.L., Rao K.J.: „Elastic properties of sodium borovandate
glasses“, Journal of Material Research, Vol. 10, No. 11, 1995., pp. 2945 ‐ 2951
106 A. Farina: „Aurora listens to the traces of pyramid power“, Noise & Vibration
Worldwide, Vol. 26, No. 6, 1995., pp. 6 ‐ 9
107 G. Wojcik, J. Mould, Jr., F. Lizzi, N. Abboud, M. Ostromogilsky and D. Vaughan:
„Nonlinear Modeling of Therapeutic Ultrasound“, Proceedings of the IEEE Ultrasonics
Symposium, Vol. 2, 1995., pp. 1617 ‐ 1622
108 M. Sikora: „Model zvučnog polja“, Diplomski rad, Fakultet elektrotehnike i
računarstva ‐ Zagreb, 1995.
184
109 Y. Zhou, Z. Tang: „Convert Non‐Convex Meshes to Convex Meshes for Depth Sorting in
Volume Rendering“, Lecture Notes In Computer Science, Vol. 1024, 1995., pp. 223 ‐
232
110 D. R. Begault: „3D Sound for Virtual Reality and Multimedia“, Academic Press
Professional, 1994.
111 A. Farina, P. Galaverna, G. Truffelli: „Ramsete un nuovo software per la previsione del
camplo sonoro in teatri, ambienti industriali e amibente esterno“, Atti del XXII
Congresso Nazionale AIA, Lecce (Italija), 13.‐15. travnja 1994.
112 G.L. Wojcik, D.K. Vaughan, V. Murray, J. Mould, Jr.: „Time‐domain Modeling of
Composite Arrays for Underground Imaging“, Proceedings of the IEEE Ultrasonics
Symposium, 1994., pp. 1027 ‐ 1032
113 Mateljan I.: „Akustičke karakteristike širokopojasnih zvučničkih sustava“, doktorska
disertacija, Sveučulište u Zagrebu, 1993.
114 M. Kleiner, B. I. Dalenback, P. Svensson: „Auralization ‐ An Overview“, Journal of
Audio Engineering Society, Vol. 41, No. 11, 1993., pp. 861 ‐ 875
115 B. Naylor: „Constructing Good Partitioning Trees“, Graphics Interface (annual
Canadian CG conference), 1993., pp. 181 ‐ 191
116 G.L. Wojcik, D.K. Vaughan, N. Abboud, J. Mould, Jr.: „Electromechanical Modeling
Using Explicit Time‐Domain Finite Elements“, Proceedings of the IEEE Ultrasonics
Symposium, Vol. 2, 1993., pp. 1107 ‐ 1112
117 Mitchell D., Harahan P.: „Illumination from Curved Reflectors“, Proceedings
SIGGRAPH, 1992., pp. 283 ‐ 291
118 Williams P. L.: „Visibility Ordering Meshed Polyhedra“, ACM Transactions on Graphics,
Vol. 11, No. 2, 1992., pp. 103 ‐ 126
119 Teller S. J., Sequin C. H.: „Visibility Preprocessing For Interactive Walkthroughs“,
Computer Graphics, Vol. 25, No. 4, 1991., pp. 61 ‐ 69
120 Reif J. H., Tygar J. D., Yoshida A.: „The Computability and Complexity of Optical Beam
Tracing“, Proceedings of 31st Annual IEEE Symposium on Foundations of Computer
Science, 1990., pp. 106‐114
185
121 Watt M.: „Light‐Water Interaction using Backward Beam Tracing“, Computer
Graphics, Vol 24, No 4, 1990., pp. 377 ‐ 385
122 Gervautz M., Purgathofer W.: „A simple method for color quantization: octree
quantization“, Graphics gems, 1990., pp. 287 ‐ 293
123 Pinter V.: „Osnove elektrotehnike“, Tehnička knjiga, 1989.
124 A. Trgo: „Matematika I“, FESB, Sveučilište u Splitu, 1989.
125 F. P. Preparata, M. I. Shamos: „Computational Geometry: An Introduction“, Springer‐
Verlag, 1985.
126 Walsh J.P., Dadoun N., Kirkpatrick D.G.: „The geometry of beam tracing“, Proceedings
of the first annual symposium on Computational geometry, 1985., pp. 55 ‐ 61
127 P. S. Heckbert, P. Hanrahan: „Beam Tracing Polygonal Objects“, Computer Graphics,
1984., pp. 119 ‐ 127
128 Pierce A.D.: „Acoustics ‐ An Introduction to its Physical Principles and Applications“,
McGraw‐Hill, 1981.
129 Fuchs H., Kedem Z. M., Naylor B. F.: „On visible surface generation by a priori tree
structure“, Proceedings of SIGGRAPH, 1980., pp. 124 ‐ 133
130 Jelaković T.: „Zvuk, sluh, arhitektonska akustika“, Školska knjiga, 1978.
131 Weiler K., Atherton P.: „Hidden surface removal using polygon area sorting“,
Proceedings of SIGGRAPH, 1977., pp. 214 ‐ 222
132 Sutherland I. E., Hodgman G. W.: „Reentrant polygon clipping“, Communications of
the ACM, Vol. 17, No. 1, 1974., pp. 32‐42
133 Abramowitz M. i Stegun I.A.: „Handbook of Mathematical Functions with Formulas,
Graphs, and Mathematical Tables„, Dover Publications, 1972.
134 Amdahl G. M.:„Validity of the Single Processor Approach to Achieving Large‐Scale
Computing Capabilities“, AFIPS Conference Proceedings, 1967., pp. 483‐485
186
9 POPIS INTERNETSKIH ADRESA
135 Shene C. K.: „Introduction to Computing with Geometry Course Notes“,
http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/notes.html, 2010.
136 Wade B., Naylor B. et al.: „BSP Tree Frequently Asked Questions“,
http://www.gamedev.net/reference/articles/article657.asp, 2010.
137 Dawson B.: „Comparing floating point numbers“, http://www.cygnus‐software.com/
papers/comparingfloats/comparingfloats.htm, 2010.
138 Maunder C.: „MFC Grid control 2.27“, http://www.codeproject.com/KB/miscctrl/
gridctrl.aspx, 2010.
187
SAŽETAK
U ovom radu razvijena je, u kodu implementirana i ispitana proširena metoda praćenja
snopova (PMPS). Analizom postojećih metoda simulacija širenja zvučnih valova zapaženo je da
još nije razvijena metoda širenja snopova, koja bi mogla ravnopravno tretirati refleksiju i
refrakciju vala. Cilj takve, proširene, metode praćenja snopova je simulirati širenje zvuka u
nehomogenim sredinama, odnosno u onim sredinama, gdje se val ne širi samo jednim
medijem ili gdje se fizikalne karakteristike medija u kojem se val širi mijenjaju. Prilikom razvoja
metode definirana je nova struktura scene sastavljena od entiteta, ljuski i graničnih ploha.
Ovakva struktura scene omogućava definiranje nekonkveksne sredine, koja sadrži više medija.
Geometrija scene temeljena je na nepravilnim trokutastim mrežama. Snopovi koji se koriste za
praćenje širenja zvuka trokutastog su presjeka, a prilikom širenja se prilagođavaju okolini,
odnosno vrši se podjela snopova, prigodom nailaska na diskontinuitet. Razvijen je i ispitan
algoritam dijeljenja trokutastih snopova, radi prilagođavanja okolnoj geometriji. Ovaj algoritam
temelji se na postupku presjeka i oduzimanja dva trokuta u ravnini, koji je u suštini drugačiji u
odnosu na dosad uobičajeni Southerland‐Hodsonov algoritam.
Prilikom proračuna geometrije refraktiranih snopova, ustanovljeno je i analizirano odstupanje,
koje nastaje kao rezultat nelinearnosti refrakcije. Analiza je pokazala da je za uske snopove i za
male razlike u brzini zvuka između dvaju medija moguće zanemariti ova odstupanja.
Konačni rezultat simulacije je plošni skenom prostora, koji daje vrijednosti razine intenziteta
zvuka u pojedinim točkama. Izračun razine intenziteta zvuka nov je u odnosu na tradicionalnu
metodu izračuna kod simulacije širenjem snopova. Ovaj novi način izračuna donosi povećanu
brzinu i fleksibilnost kod simulacije drugih valnih fenomena, a nauštrb određene greške koja se
188
uvodi u proračun. Ova greška se pokazala zanemarivom i to najprije temeljem teoretske
analize, a potom i prilikom mjerenja.
Prilikom mjerenja na tri ispitne scene ustanovljeni su rezultati, te vremenske i prostorne
performanse simulacije. Usporedbom sa dvije komercijalne simulacije prostorne akustike,
temeljene na metodi praćenja zraka, potvrđeno je da PMPS daje ispravne rezultate.
Vremenske i prostorne performanse simulacije bile su u razini one brže od dvije simulacije s
kojima je uspoređena. Prilikom usporedbe jedina mana PMPS‐a bila je simuliranje refleksija
višeg reda, koje je uzrokovalo stupanjski porast vremenskih i prostornih performansi. Najveću
prednost PMPS je pokazao prilikom proračuna raspodjele zvuka velikom rezolucijom, odnosno
prilikom proračuna prostora velikih dimenzija.
189
SUMMARY
SIMULATION AND VISUALIZATION METHODS FOR WAVE PROPAGATION IN NON‐
HOMOGENEOUS MEDIA
This thesis presents the development, coding and testing of the comprehensive beam tracing
method (CBTM). The present beam tracing methods for simulation of sound waves
propagation do not compute the refraction, but only the reflection of sound waves. CBTM is
designed for simulation of propagation of sound in non‐homogenous environments ‐
environments where the wave propagates through several media, or through one media with
slightly different physical characteristics. This method has different scene structure than
traditional simulations ‐ in order to enable definition of scenes with several non‐convex media,
scene structure is based on boundary surfaces, shells and entities. Geometry of scene is
defined using triangular irregular networks. The beams used for tracing the propagation of
sound in scene have triangular section. During propagation they are adapted to surrounding
geometry ‐ beam is divided when it encounters a discontinuum. This algorithm is developed
specially for CBTM, and is thoroughly tested. It is based on process of intersection and
subtraction of two planar triangles. The algorithm for intersection and subtraction of two
planar triangles in CBTM differs from usual Southerland‐Hodgson algorithm.
Construction of refracted beams in CBTM has shown slight errors in geometry of beams, which
occur because refraction is a non‐linear transformation. These errors were analyzed ‐ the
analysis showed that errors can be tolerated for refraction occurring between two media
whose physical characteristics do not differ much, and for beams that are not wide.
The final result of the simulation is the plane scan of simulated scene, which presents the level
of sound intensity in raster of points in a plane. Level of sound intensity is calculated in a
different fashion from traditional beam tracing simulations. This new way of calculation gives
190
an improved performance, and possibility for extension of simulated wave phenomena, but at
cost of a slight error. These errors were analyzed theoretically, and measured, with the
conclusion that they can be neglected, because they are smaller than errors already
incorporated in a simulation model.
The CBTM was tested on three scenes, in order to check the results of simulations, and also to
measure time and space performance of this method. CBTM was compared with two
commercial simulations based on ray‐tracing model. The comparison showed that CBTM is
accurate, and that performances of CBTM are comparable to the faster of two ray‐tracing
simulations. The only drawback of CBTM that comparison discovered was that for high order
of reflected sound the performance decreased exponentially. The biggest advantage of
method is the very good performance in case of big resolution of plane scan, or in case of large
simulated scenes.
191
KLJUČNE RIJEČI:
SIMULACIJA, AKUSTIKA, RAČUNALNA GEOMETRIJA
KEYWORDS:
SIMULATION, ACOUSTICS, COMPUTATIONAL GEOMETRY
192
ŽIVOTOPIS
Rođen sam 1972. godine u Splitu, gdje sam završio osnovnoškolsko i srednjoškolsko
obrazovanje. Srednju školu pohađao sam u Matematičko‐informatičkom obrazovnom centru u
Splitu od 1986. do 1990. godine. Na Fakultetu elektrotehnike i računarstva u Zagrebu, stekao
sam 1995. godine zvanje diplomiranog inženjera elektrotehnike, na smjeru
„Radiokomunikacije i profesionalna elektronika“, sa diplomskim radom „Simulacija zvučnog
polja“. Magistrirao sam također na zagrebačkom FER‐u 2000. godine sa radom
„Trodimenzionalna simulacija raspodjele ultrazvučnog polja unutar lubanje“.
Prvo zaposlenje bilo mi je u splitskog tvrtci ENTER d.o.o., gdje radim od 1996. do 2004. godine
na mjestu voditelja GIS odjela. Potom 2004. godine osnivam i vodim vlastiti obrt naziva
„SIKORA“, gdje se nastavljam baviti informatikom sa naglaskom na GIS sustavima. Na Fakultetu
elektrotehnike, strojarstva i brodogradnje u Splitu zaposlen sam od 2006. godine, na mjestu
asistenta, te držim nastavu na kolegijima „Programiranje“, „Objektno orijentirano
programiranje i „Programski jezici i prevodioce“. Na navedenim kolegijima sam prije stalnog
zaposlenja vršio nastavu kao honorarni suradnik od 2003. godine.
Autor sam 17 radova objavljenih na domaćim i inozemnim konferencijama, a sudjelovao sam i
na znanstvenim projektima Ministarstva znanosti i tehnologije #2001‐15 "Raspodjela
ultrazvučnog polja za vrijeme neurokirurških operacija", te #0036023 „Utjecaj ultrazvuka velike
snage na tkivo“. Autor sam komercijalne simulacije širenja morskih valova „PORAT“, koja je
izrađena 2000. godine po narudžbi splitske tvrtke Obala d.o.o., te se u međuvremenu
intenzivno koristi pri projektiranju luka.
Član sam udruženja „Autodesk Developer Network“ od 2000. godine, „Hrvatskog akustičkog
društva“ od 2004. godine, te udruženja „Association of Computing Machinery“ od 2006.
godine. Živim u Splitu, oženjen sam i otac dvoje djece.
193
CURICULIM VITAE
I was born in Split, in 1972. There I completed the primary and secondary school (math‐IT
educational center). My B.Sc. (1995) and M.Sc. (2000) work was done at University of Zagreb
Faculty of electrical engineering and computing in the field of acoustical simulation.
I was first employed in private owned company ENTER d.o.o. Split, where I was working from
1996. till 2004. as a GIS manager. I have founded my own company „SIKORA“ in 2004., whose
field of work is IT with emphasis on GIS. At University of Split, Faculty of Electrical Engineering,
Mechanical Engineering and Naval Architecture, I am working since 2006. as a teaching
assistant. I am teaching courses "Programming" and "Object‐oriented programming", as well
as "Programming languages and compilers".
I am author of 17 papers published at domestic and international conferences. I have worked
on scientific projects of Ministry of education and technology #2001‐15 "Ultrasound field
distribution during neurosurgery", and #0036023 „The impact of the high‐intensity ultrasound
to human tissue “. I am the author of a commercial simulation of the propagation of sea waves
„PORAT“ (2000).
I am member of „Autodesk Developer Network“ since 2000., „Croatian acoustical society“
since 2004., and „Association of Computing Machinery“ since 2006.. I am, living in Split,
married and have two kids.