200
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.

postupci simulacije i vizualizacije širenja vala u nehomogenim

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 

 

 

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 

 

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 

 

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. 

 

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. 

 

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).  

 

 

 

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 

 

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 

 

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 

 

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. 

 

111 

 

 

Slika 4‐10 – Paralelizacija algoritma praćenja 

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 

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.