Microsoft Word - doktorat-final31.doc

Слични документи
4.1 The Concepts of Force and Mass

Sveučilište J.J. Strossmayera Fizika 2 FERIT Predložak za laboratorijske vježbe Lom i refleksija svjetlosti Cilj vježbe Primjena zakona geometrijske o

Ponovimo Grana fizike koja proučava svijetlost je? Kroz koje tvari svjetlost prolazi i kako ih nazivamo? IZVOR SVJETLOSTI je tijelo koje zr

Stručno usavršavanje

(Microsoft Word - Dr\236avna matura - studeni osnovna razina - rje\232enja)

1 MATEMATIKA 1 (prva zadaća) Vektori i primjene 1. U trokutu ABC točke M i N dijele stranicu AB na tri jednaka dijela. O

Microsoft Word - predavanje8

(Microsoft Word - MATB - kolovoz osnovna razina - rje\232enja zadataka)

Newtonova metoda za rješavanje nelinearne jednadžbe f(x)=0

(Microsoft Word - Dr\236avna matura - kolovoz ni\236a razina - rje\232enja)

PLAN I PROGRAM ZA DOPUNSKU (PRODUŽNU) NASTAVU IZ MATEMATIKE (za 1. razred)

Sveučilište J.J. Strossmayera Fizika 2 FERIT Predložak za laboratorijske vježbe Određivanje relativne permitivnosti sredstva Cilj vježbe Određivanje r

Microsoft Word - 6ms001

Elementarna matematika 1 - Oblici matematickog mišljenja

4.1 The Concepts of Force and Mass

Matematika 1 - izborna

Техничко решење: Софтвер за симулацију стохастичког ортогоналног мерила сигнала, његовог интеграла и диференцијала Руководилац пројекта: Владимир Вуји

DUBINSKA ANALIZA PODATAKA

Microsoft Word - Dopunski_zadaci_iz_MFII_uz_III_kolokvij.doc

Postojanost boja

Impress

(Microsoft Word - Rje\232enja zadataka)

PowerPoint Presentation

Microsoft PowerPoint - Odskok lopte

Microsoft Word - 15ms261

Slide 1

XIII. Hrvatski simpozij o nastavi fizike Istraživački usmjerena nastava fizike na Bungee jumping primjeru temeljena na analizi video snimke Berti Erja

Microsoft Word - 24ms221

PuTTY CERT.hr-PUBDOC

Završni rad br Postupak praćenja zrake u okviru Nvidia RTX platrforme

Natjecanje 2016.

Development Case

MATEMATIKA viša razina MATA.29.HR.R.K1.24 MAT A D-S MAT A D-S029.indd :30:29

Microsoft Word - Akreditacija 2013

Microsoft Word - 12ms121

CVRSTOCA

Microsoft Word - Akreditacija 2013

10_Perdavanja_OPE [Compatibility Mode]

Toplinska i električna vodljivost metala

Microsoft Word - Akreditacija 2013

8. razred kriteriji pravi

(Microsoft Word - Dr\236avna matura - lipanj osnovna razina - rje\232enja)

Microsoft Word - V03-Prelijevanje.doc

Microsoft PowerPoint - IS_G_predavanja_ [Compatibility Mode]

Numeričke metode u fizici 1, Projektni zadataci 2018./ Za sustav običnih diferencijalnih jednadžbi, koje opisuju kretanje populacije dviju vrs

PRAVAC

NAZIV PREDMETA OBLIKOVANJE WEB STRANICA Kod SIT132 Godina studija 3. Bodovna vrijednost Nositelj/i predmeta Haidi Božiković, predavač 6 (ECTS) Suradni

Microsoft PowerPoint - vezbe 4. Merenja u telekomunikacionim mrežama

Microsoft Word - Akreditacija 2013

SKUPOVI TOČAKA U RAVNINI 1.) Što je ravnina? 2.) Kako nazivamo neomeđenu ravnu plohu? 3.) Što je najmanji dio ravnine? 4.) Kako označavamo točke? 5.)

Numerička matematika 11. predavanje dodatak Saša Singer web.math.pmf.unizg.hr/~singer PMF Matematički odsjek, Zagreb NumMat 2019, 11. p

Техничко решење: Метода мерења ефективне вредности сложенопериодичног сигнала Руководилац пројекта: Владимир Вујичић Одговорно лице: Владимир Вујичић

Geometrija molekula

(Microsoft Word - Dr\236avna matura - svibanj osnovna razina - rje\232enja)

Microsoft Word - 24ms241

Zadaci s pismenih ispita iz matematike 2 s rješenjima MATEMATIKA II x 4y xy 2 x y 1. Odredite i skicirajte prirodnu domenu funkcije cos ln

MAZALICA DUŠKA.pdf

Optimizacija

Microsoft Word - clanakGatinVukcevicJasak.doc

Динамика крутог тела

Satnica.xlsx

SVEUČILIŠTE U ZAGREBU SVEUČILIŠNI RAČUNSKI CENTAR UVJETI KORIŠTENJA USLUGE EDUADRESAR Zagreb, kolovoz 2013.

Sveučilište u Zagrebu

РАСПОРЕД ИСПИТА У ИСПИТНОМ РОКУ ЈАНУАР 1 ШКОЛСКЕ 2016/2017. ГОДИНЕ (последња измена ) Прва година: ПРВА ГОДИНА - сви сем информатике Име пр

Kvadrupolni maseni analizator, princip i primena u kvali/kvanti hromatografiji

2015_k2_z12.dvi

Microsoft Word - Svrha projekta.doc

I година Назив предмета I термин Вријеме II термин Вријеме Сала Математика : :00 све Основи електротехнике

I година Назив предмета I термин Вријеме II термин Вријеме Сала Математика : :00 све Основи електротехнике

I година Назив предмета I термин Вријеме II термин Вријеме Сала Математика : :00 све Основи електротехнике

Zadaci s rješenjima, a ujedno i s postupkom rada biti će nadopunjavani tokom čitave školske godine

I година Назив предмета I термин Вријеме Сала Математика :00 све Основи електротехнике :00 све Програмирање

Elementi praćenja i ocjenjivanja za nastavni predmet Matematika u 4. razredu Elementi praćenja i ocjenjivanja za nastavni predmet Matematika u 4. razr

STABILNOST SISTEMA

WAMSTER Prezentacija

ТРОУГАО БРЗИНА и математичка неисправност Лоренцове трансформације у специјалној теорији релативности Александар Вукеља www.

Satnica.xlsx

Microsoft Word - Master 2013

12_Predavanja_OPE

Sveučilište J.J. Strossmayera Fizika 2 FERIT Predložak za laboratorijske vježbe Cilj vježbe Određivanje specifičnog naboja elektrona Odrediti specifič

Microsoft Word - Rjesenja zadataka

ka prof-miomir-mijic-etf-beograd

PowerPoint Presentation

P11.3 Analiza zivotnog veka, Graf smetnji

Škola: Geodetska škola, Zagreb Razredni odijel: IV. D Datum: 22. studenog Školska godina: 2018./2019. Nastavnik: Katija Špika Mentor: Armando Sl

Primjena neodredenog integrala u inženjerstvu Matematika 2 Erna Begović Kovač, Literatura: I. Gusić, Lekcije iz Matematike 2

ALIP1_udzb_2019.indb

Microsoft Word - Master 2013

ТЕСТ ИЗ ФИЗИКЕ ИМЕ И ПРЕЗИМЕ 1. У основне величине у физици, по Међународном систему јединица, спадају и следеће три величине : а) маса, температура,

Prva skupina

Valovi 1. Transverzalni valni impuls koji se širi užetom u trenutku t = 0 opisan je jednadžbom y = a3 a 2 x 2, gdje je a = 1 m (x i y takoder su izraž

Prikaz slike na monitoru i pisaču

Орт колоквијум

Microsoft PowerPoint - 11.pptx

7. predavanje Vladimir Dananić 14. studenoga Vladimir Dananić () 7. predavanje 14. studenoga / 16

(Microsoft Word - Dr\236avna matura - lipanj osnovna razina - rje\232enja)

PowerPoint Presentation

Microsoft Word - CAD sistemi

U proračunu Europske unije za Hrvatsku je ukupno namijenjeno 3,568 milijardi Eura za prve dvije godine članstva

PROGRAMIRANJE Program je niz naredbi razumljivih računalu koje rješavaju neki problem. Algoritam je postupak raščlanjivanja problema na jednostavnije

Транскрипт:

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

Poglavlje 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 1

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 2

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

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

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

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 6

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 n i, a 7

udaljenost od stranice i iznosi d i. Na taj način se dobije virtualni izvor S i. Postupak je opisan sa slijedećim izrazom: S i = S + 2d i n i (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 S i 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 8

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(n r ), 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 S a 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 9

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 10

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. a) b) 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: 11

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 12

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: 2 r l N (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]. 13

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). a) b 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 14

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

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

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. a) b) c) Slika 2 9 a) jednostavna refleksija snopa, b) refleksija snopa od kuta prostorije, c) refleksija od malih posmaknutih ploha 17

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

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

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: a) b) 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. 20

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 21

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 22

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 23

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

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 25

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

Poglavlje 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 razmotrene dvije aproksimacije korištene u simulaciji. simulaciji. Naposljetku će biti 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 27

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 28

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. REFRAKCIJA Izvor Prijemnik Voda Polistiren Zrak REFLEKSIJA Diskontinuitet 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 29

Ovakva scena je realnija od one prethodne, tipične za klasične geometrijske simulacije. a) Diskontinuiteti na njima se događa refleksija i refrakcija - vrsta objekta: ploha - dimenzije: 2D Izvor: - vrsta objekta: točka - dimenzija: 0D Scena Prijemnik: - vrsta objekta: točka - dimenzija: 0D Volumeni (mediji) mogu biti homogeni i nehomogeni: - vrsta objekta: volumen - dimenzije: 3D b) 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. 30

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: izvor riječna voda morska voda prijemnik Slika 3 4 Refrakcija zvuka na granici dvaju medija 31

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 32

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). toplo Temp ( C) 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 33

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 34

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 35

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

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. Zrak D1 D1 D2 E3 D1 D1 Voda Staklo D1 E1 E2 D3 D3 D1 D3 D1 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: 37

D1 D1 D2 E3 D1 D1 Zrak Voda Staklo D1 E1 E2 D3 E4 D4 D3 D1 D3 D1 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) 38

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

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 40

- 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. b X c 1 a 2 d Y 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: 41

- 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 42

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(n 2 ), š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 43

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*m 2 ). 44

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 45

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 46

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 47

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). Crtanje geometrije scene u vanjskom programu Uvoz geometrije ploha diskontinuiteta Definiranje entiteta temeljem ploha diskontinuiteta Definiranje fizikalnih svojstava entiteta Uvoz geometrije izvora Definiranje fizikalnih svojstava izvora Proračun i provjera topologije scene i ploha diskontinuiteta Predaja podataka fazi praćenja snopova 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 48

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

Početak praćenja snopova Kreiraj izvorne snopove prema vrhovima dodekaedra i dodaj ih na stog neobrađenih snopova GENERIRANJE POČETNOG SKUPA SNOPOVA Uzmi i ukloni jedan snop sa stoga neobrađenih snopova ŠIRENJE I DJELJENJE SNOPOVA 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 NE Je li stog neobrađenih snopova prazan? OBRADA NAILASKA SNOPOVA NA DISKONTINUITET DA Završetak praćenja snopova 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. 50

a) b) Slika 3 21 a) početni snop, b) reflektirani/refraktirani snop Inicijalni snopovi stvaraju se pomoću ikosaedra, kao na slici dolje. a) b) 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 3 (, 0, ) ( 2.618 033 989, 0.0, 4.236 067 977) 3 2 ( 0,, ) (0.0, 4.236 067 977, 2.618 033 989) 51

( 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) 5 1 1.61803 (3.1) 2 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: N 20 4 n (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 52

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

a) b) 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 54

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

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

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 M GKS >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 M GKS >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 z pr 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). 57

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/z pr. 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 M GKS >KSS. Potom se izvrši presjek snopa sa ravninom paralelnom xy ravnini, na udaljenosti z pr. 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 58

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 59

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 M KSS >GKS : M M (3.3) 1 KSS GKS GKS KSS 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 60

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

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. Uzmi jedan snop sa stoga snopova za obradu Izračunaj intenzitet na kraju snopa i dodaj ga na stog zatvorenih snopova Ispunjen kriterij kraja praćenja? DA NE Razlika intenziteta na rubovima snopa manja od praga? DA NE Podjeli snop na četiri dijela Ispunjen kriterij totalne refleksije? DA NE Izračunaj geometriju reflektiranog snopa Izračunaj geometriju reflektiranog snopa Izračunaj intenzitet zvuka refraktiranog snopa Ovisno o totalnoj refleksiji izračunaj intenzitet zvuka reflektiranog snopa Dodaj nastale snopove na stog izvornih snopova NE Je li stog snopova za obradu prazan? DA Slika 3 31 Obrada snopova na diskontinuitetu 62

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

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 64

Na slici 3 32 prikazano je kako se, iz upadnog snopa B U zatvorenog trokutom T Z, stvara reflektirani snop B RFL. Izvor upadnog snopa I se zrcali preko plohe na kojoj leži trokut T Z (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 T Z. Ukoliko ne dolazi to totalne refleksije (poglavlje 3.5.3), osim reflektiranog snopa stvara se i refraktirani snop B RFR, 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 T Z, 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 B RFR. 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 T RFL. 65

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*n 2 ). 66

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 10 8 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. Rekurzivno stvori oktalno stablo zatvorenih snopova Povećaj broj trenutno obrađivanog retka plošnog skena Povećaj broj trenutno obrađivanog stupca plošnog skena 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 Uzmi jedan snop iz lista oktalnog stabla Je li se točka T nalazi u snopu DA NE Izračunaj intenzitet snopa i pribroji ukupnom intenzitetu točke T NE Jesu li obrađeni svi snopovi iz lista oktalnog stabla DA NE Jesu li obrađeni svi stupci za trenutni redak plošnog skena? DA NE Jesu li obrađeni svi retci plošnog skena? DA Prikaži rezultate Slika 3 34 Dijagram generiranja rezultata 67

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*n 2 ), 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. 68

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: I PA d S (3.4) S Ako je poznata akustička snaga izvora akustični intenzitet može se izračunati deriviranjem akustičke snage po površini S: 69

dp A I (3.5) d S 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. I PA 4 r 2 (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]: I I e x 0 (3.7) gdje je I 0 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 70

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: L I L 0 D r s (3.8) I U ovom izrazu je atenuacija izražena koeficijentom D koji daje prigušenje u [db/m]. Njegova veličina je: D 4,34 db / m (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 71

Medij u kojem se širi upadni i reflektirani val karakteriziran je specifičnom gustoćom ρ I i brzinom zvuka c I, dok je se iza diskontinuiteta nalazi drugi medij, karakteriziran sa ρ II i c II. Upadni val ima tlak p I, te intenzitet I I ; reflektirani val ima tlak p I', te intenzitet I I' ; dok refraktirani, preneseni val ima tlak p II, te intenzitet I II. 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: sin sin I ci II cii (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 I I dijeli se na intenzitet refraktiranog vala I II i intenzitet reflektiranog vala I I '. I I I I (3.11) II ' I Omjer zvučnih tlakova reflektiranog i upadnog vala, predstavlja koeficijent refleksije: R p I ' ' (3.12) pi Kako je intenzitet zvuka proporcionalan kvadratu zvučnog tlaka, izraz za reflektirani intenzitet je slijedeći: I I R 2 I I ' (3.13) Korištenjem jednadžbi (3.11) i (3.13) dolazi se do sljedećeg izraza za intenzitet prenesenog, refraktiranog zvuka: I II 2 R I I 1 (3.14) 72

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: R Z Z II I (3.15) II Z Z I Akustička impedancija medija jednaka je umnošku specifične gustoće i brzine zvuka u mediju: Z c (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/m 3 ) Z (10 3 kg/(m 2 s)) 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: 73

ci c II (3.17) Totalna refleksija će se dogoditi, ukoliko je pri tome upadni kut veći od kritičnog θ C : c I C arcsin (3.18) cii Tom prilikom se cjelokupna energija snopa reflektira pa su onda vrijednosti intenziteta reflektiranog i refraktiranog snopa slijedeće: I ' (3.19) I I I I 0 (3.20) II 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 74

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]: p EF 1 T T 0 p 2 dt (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: p EF 1 T T 0 N n 1 p n sin( t ) dt (3.22) n 2 gdje je p n 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. p EF 1 T T 0 p1 sin( t 1) p2 sin( t 2 ) dt (3.23) 2 p EF 1 T T 0 2 2 2 p1 sin ( t 1) 2 p1 sin( t 1) p2 sin( t 2) p2 sin ( t 2) dt 2 (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 75

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. p EF 1 T T 0 2 2 2 2 p1 sin ( t 1) p2 sin ( t 2) dt (3.25) p EF 1 T T 0 T 2 2 1 2 2 p1 sin ( t 1) dt p2 sin ( t 2) dt (3.26) T 0 p EF 2 2 1 2EF p EF p (3.27) Ukoliko ovaj princip primijenimo na sve nadolazeće zvučne valove, ukupni zvučni tlak može računati prema izrazu: p UK 2 2 2 p p2 p (3.28) 1... n p 2 UK 2 2 2 p1 p2 p (3.29)... n 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. I I1 I... (3.30) UK 2 I n 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. 76

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 P A iznosi: I PA 4 r 2 e r (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 r 1, dok je udaljenost koju bi zvuk prošao da se širi od virtualnog izvora snopa do prijemnika jednaka r 2. 77

Slika 3 38 Proračun intenziteta za neizravni snop Intenzitet u težištu početnog trokuta snopa jest I 0. Vrijednost akustičkog intenziteta na mjestu prijema jest: I I 0 r 2 1 2 2 r e ( r 2 r 1 ) (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 I 0 računa se temeljem vrijednosti akustičkog intenziteta I K 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 I K jednak. Slika 3 39 Proračun intenziteta kraja snopa 78

Kako bi ovakva aproksimacija bila prihvatljiva, potrebno je da relativna razlika između najmanje vrijednosti akustičkog intenziteta I min i njegove najveće vrijednosti I max ne bude veća od dopuštene tolerancije akustičkog intenziteta t I. I max I min t I (3.33) I min 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 t I 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 I 0 računa se izrazima: I R 2 0 I K za slučaj refleksije 2 I 0 (1 R ) I K za slučaj refrakcije (3.34) gdje je I K 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 79

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 80

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

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

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). I I 0 r 2 1 2 2 r e ( r 2 r 1 ) (3.35) Pri tome je od fizikalnih vrijednosti potrebno znati intenzitet u težištu početnog trokuta snopa I 0, te koeficijent atenuacije u mediju γ. Od geometrijskih parametara potrebno je znati samo udaljenost težišta početka snopa od virtualnog izvora snopa r 1, te udaljenost predmetne točke od virtualnog izvora snopa r 2 (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 83

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 84

Nakon toga se intenzitet zvuka računa pomoću sljedeće jednadžbe: I TRAD P 4 r N NREFL i ri e (1 j ) 2 tot i 1 j 1 N REFR k 1 k (3.36) gdje je prvi član smanjenje intenziteta zbog širenja prostorom (r tot 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 n m operacije presijecanja zrake sa plohom - 1280, odnosno n m+1 operacija računanja udaljenosti između dvije točke - 1 operaciju potenciranja - 5, odnosno m + 1 operacija funkcije e x - 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 e x 85

Vidimo da je složenost metode PMPS u ovom slučaju linearna O(6*n), dok je složenost tradicionalne metode stupanjska O(n m ), š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 I min i vrijednosti u težištu snopa I 0 (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 86

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

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

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. Proračun topologije scene 1..* Proračun snopova «extends» 1 Izvođenje simulacije «extends» Proračun oktalnog stabla snopova 1 1 1 1 1 Prikaz jednog ili više snopova «uses» «uses» Kontrola 3D prikaza Korisnik «uses» Kontrola scene putem kontrole stabla «uses» 1 Prikaz plošnog skena «extends» Proračun razine intenziteta zvuka Slika 4 2 Obrazac upotrebe izvođenja simulacije te analize rezultata simulacije. 89

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

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: 91

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

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

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 94

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

Geometrijske klase Topološke klase Klase simulacije Klase MFC-a * -stablo 1 1 CBSPTreeNode -_backchild : CBSPTreeNode -_frontchild : CBSPTreeNode -_parent : CBSPTreeNode -_myface : CFace -_colcoplanar[] : CFace -_colbackfms[] : CFace -_colfrontfms[] : CFace 1 1 -BSP stablo entiteta CEntity -_colpshells[] : CShell -_pcolbsptree : CBSPTreeNode +dattn : double +ddens : double +dspeed : double +dz : double * -entiteti scene članske funkcije koriste CVector2d +x : double +y : double * CVector +x : double +y : double +z : double CVertex -_nindex : long * -vrhovi TIN-a 1 CSource +pobjpoint : CVector 1 -izvor 1 1 CSegment2d -_objd : CVector2d -_objend : CVector2d -_objstart : CVector2d CTriangle2d -_objline[] : CSegment2d -_objpoint[] : CVector2d CSegment -_objd : CVector2d -_objend : CVector2d -_objstart : CVector2d CTriangle -_objline[] : CSegment -_objpoint[] : CVector * CEdge -_nindex : long -rubovi 3 -vrhovi 3 1 CFace -_nindex : long -_pv[] : CVertex -_pe[] : CEdge -_pmesh : CMesh +norder : long 1 * -rubovi TIN-a * -faceovi BSP stabla * -faceovi TIN-a 1 1 CMesh -_colface[] -_coledge[] -_colvertex[] 1 1 1 -geometrije ljuske -geometrija plohe diskontinuiteta -_colpboundarysurfaces[] : CBoundarySurface +pobjmesh : CMesh +pobjmeshd3d : ID3DXMesh 1 1 CScene * -ljuske entiteta -_colpentities[] : CEntity 1 -DirectX mesh CShell 1 * -plohe koje čine ljusku CBoundarySurface +pobjmesh : CMesh -_pobjent1 : CEntity -_pobjent2 : CEntity +pobjmeshd3d : ID3DXMesh 1 -DirectX mesh * -plohe diskontinuiteta scene -_colpboundarysurfaces : CBoundarySurface -_pobjsrc : CSource -_pobjotroot : COctree -_pobjscan : CScan +ddivtrsh : double +dinttrsh : double +dpow : double +dvoltrsh : double -device : IDirect3DDevice9 1 1 1 1 -DirectX device 1 * -rezultat simulacije CScan -_colscanpoints : CVector -_colscanintensity : double -_objbrc : CVector -_objtlc : CVector 1 -simulirana scena CSimbaDoc -pobjscene : CScene -... CMainFrame -... CSimbaView -device : IDirect3DDevice9 -... 1 -DirectX mesh CAABB 1 1 -područje oktalnog stabla 1 COctree -_objcenter : CVector -_objaabb : CAABB -_colbeams : CBeam -_bisleaf : bool -_colpquads[] : COctree -stablo * 1 1 -oktalno stablo snopova u sceni -snopovi unutar jednog oktanta oktalnog stabla * 1 -početni i krajnji trokut snopa CBeam -_pstartt : CTriangle -_pendt : CTriangle -_psourcepoint : CVector +objaabb3 : CAABB +norder : int +dint : double +dvol : double +Triangle : IDirect3DVertexBuffer9 -DirectX geometrija 1 1 -DirectX device 1 -izvor snopa 1 4 7 UML dijagram klasa. 96 ID3DXMesh -... 1 1 1 Klase DirectX-a IDirect3DVertexBuffer9 -... 1 IDirect3DDevice9 -... 1

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

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 98

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 99

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

CMainFrame:objMain CScene:objScene OnEditCalculateBeams(colRawBeams, r) loop colrawbeams.empty()!= true CalculateOrderFromPoint(colTriangles) O(n) FindIlluminatedTriangles(colTriangles) colilluminatedtriangles O(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 ProcessDividedTriangles(colDividedTriangles, r) colfinishedbeams, colrawbeams O(k), k~?n colfinishedbeams Slika 4 8 Sekvencijski dijagram algoritma praćenja snopova 101

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. k n (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). 102

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

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: 2 r r 1 b 20 20* d 20* d 20* d 20* d 1 (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: T ( n) O( b * n) O((20* d r 1 1) * n) (4.3) Uzevši u obzir činjenicu da je d r+1 >>20>>1 kao konačan izraz vremenske složenosti algoritma dijeljenja snopova dobiva se: r 1 T ( r, n) O( d * n) (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: r 1 M ( r) O( d ) (4.5) 104

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) loop for( row=0; row < s ; row++ ) loop for( col=0; col < s ; col++ ) FindLeaf(colOctreeBeams) colleaf O(x), x<<n IsPointInsideBeams(objLeaf) colbeams O(n/8 x ) CalculatePointintensity(colBeams) arrintesity[row][col] arrintensity Slika 4 9 Sekvencijski dijagram algoritma generiranja plošne raspodjele 105

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 8 x manji od ukupnog broja snopova. Stoga je složenost ove funkcije iznosi: n O x (4.6) 8 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 106

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 s 2 puta. Ako primijenimo tu činjenicu na izraz za složenost jednog izvršenja petlje (4.6) dobivamo ukupnu složenost algoritma: O s 2 n x 8 (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 T ( s) O s (4.8) Prostorna složenost ovog algoritma se ponaša po zakonu: 2 M ( s) O s (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. 107

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 108

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 109

š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. 110

Slika 4 10 Paralelizacija algoritma praćenja snopova 111

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 112

arrintensity[][], a predstavlja vrijednost razine intenziteta zvuka u jednoj točki proračuna. CMainFrame:objMain CTask:objTask[0] CTask:objTask[1]... CTask:objTask[t-1] OnEditCalculateScanParallel(colOctreeBeams, s, t) loop for( row=0; row < s ; row++ ) loop for( col=0; col < s ; col=col+t) CalculateOnePointParallel(colOctreeBeams, row, col) CalculateOnePointParallel(colOctreeBeams, row, col+1) CalculateOnePointParallel(colOctreeBeams, row, col+(t-1)) loop nofinishedtasks < t arrintesity[row][col+1] arrintesity[row][col] arrintesity[row][col+(t-1)] arrintensity Slika 4 11 Paralelizacija algoritma praćenja snopova 113

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: 114

S tot 1 (1 P) P S (4.10) gdje je S tot 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. 115

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 116

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

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 m 3, 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. 118

Slika 5 2 Plošni sken scene KVADAR izračunat sa simulacijom A gore, simulacijom B u sredini, te PMPS om dolje 119

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 120

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

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 122

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

Slika 5 6 Plošni sken scene AURA izračunat sa simulacijom A gore, simulacijom B u sredini, te PMPS om dolje 124

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 125

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

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

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

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 129

š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. 130

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

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: 132

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 mem(mb) SHOEBOX AURA CONCAVE Simulacija A 30 59 18 Simulacija B 11 14 9 PMPS 67 440 921 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 133

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

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

Slika 5 14 Vremenske (gore) i prostorne (dole) performanse simulacije scene AURA ovisno o redu refleksija 136

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(d r+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(3 r+1 ). Stoga se može zaključiti da se prilikom svake refleksije u prosjeku od jednog upadnog dobiju tri reflektirana snopa. 137

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

Slika 5 15 Vremenske (gore) i prostorne (dole) performanse simulacije scene AURA ovisno o složenosti geometrije 139

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(s 2 ), gdje je s rezolucija snkeniranja prostora po jednoj osi. Simulacija A je nešto slabija, te raste sa T(s 2 ), dok je simulacija B po ovom kriteriju najslabija te raste sa T(s 4 ). 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. 140

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 141

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(s 2 ), 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. 142

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

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

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

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 146

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/m 3 ) γ ( 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 147

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 c I uzeta je brzina zvuka u glicerolu, c II 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: 148

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

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 150

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 151

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 152

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

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 154

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 155

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 156

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 157

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 158

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

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 R d predstavljena je d torkom (x 1, x 2,..., x d ). 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 R d, tada se linearna kombinacija q 1 + (1 )q 2 ( R) zove pravac u R d R d. Općenito, ako imamo k linearno nezavisnih točaka q 1, q 2,..., q k u R d (k d), onda se linearna kombinacija 1 q 1 + 2 q 2 +...+ k 1 q k 1 + (1 1... k 1 )q k ( j R, j = 1,..., k 1) zove linearnom varijacijom dimenzije (k 1) u R d. Linearna varijacija dimenzije (d 1) u R d se zove hiperravnina. Hiperravnina u R 3 se zove ravnina. Definicija 3. Konveksna kombinacija, duljina. Ako imamo dvije različite točke q 1 i q 2 u R d, onda se konveksna kombinacija točaka q 1 i q 2 može izraziti kao 160

q 1 + (1 )q 2 ( R, 0 1). Ova linearna kombinacija opisuje duljinu q 1 q 2 koja spaja q 1 i q 2. Definicija 4. Konveksni skup, konveksna ljuska. Skup točaka S R d je konveksan ako i samo ako je za bilo koje dvije točke q 1 i q 2 S, duljina q 1 q 2 u potpunosti sadržana u S. Konveksna ljuska skupa točaka U R d je najmanji konveksni skup u R d koji sadrži U. Definicija 5. Poligon, vrh, brid, potporna ravnina. Poligon P u R d 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 nesusjednih stranica koje dijele istu točku. Jednostavan poligon je konveksan ako njegova unutrašnjost tvori konveksni skup. Definicija 7. Poliedar, strana. Poliedar je u R d 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 R 3 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 R d (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. 161

Definicija 10. Zraka. Zraka u R d je polupravac definiran svojom ishodišnom točkom o R d i vektorom smjera R d. Zraka se može izraziti kao: o + ( R, 0). Definicija 11. Područje. Područje u R d je kompaktan skup točaka iz R d 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 R d. Definicija 14. Linija vidljivosti. Duljina q 1 q 2, između dvije točke q1, q2 R d se zove linija vidljivosti ako ne siječe niti jedan objekt u sceni. Definicija 15. Vidljivost između dvije točke. Dvije točke q 1, q 2 R d iz scene su vidljive ako duljina q 1 q 2, predstavlja liniju vidljivosti. Inače su točke q 1 i q 2 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 q 1, q 2 R d takve da je q 1 vidljiva iz p, dok je q 2 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 (a 1, b 1 ) i (a 2, b 2 ), a 1, a 2 A; b 1, b 2 B, takve da su točke a 1 i b 1 vidljive, a točke a 2 i b 2 nevidljive. 162

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 163

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]. 164

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

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 S C ( x SC, y SC, z SC ). Crnom bojom prikazan je glavni koordinatni sustav s osima x, y, i z, dok je koordinatni sustav snopa prikazan crvenom bojom, sa osima x S, y S i z S. Slika 7 3 Prikaz snopa u glavnom koordinatnom sustavu i koordinatnom sustavu snopa Matrica transformacije koordinata iz glavnog koordinatnog sustava u koordinatni sustav snopa M GKS >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 0 0 0 0 1 0 0 T (7.1) 0 0 1 0 xsc ysc z SC 1 166

Matrica rotacije R ima zadatak napraviti rotaciju glavnog koordinatnog sustava, tako da se njegova os z poklopi s koordinatnom osi z S snopa. Ovo se postiže rotacijom glavnog koordinatnog sustava oko vektora n Z koji je okomit na obje gore navedene osi, i to za kut θ, koji predstavlja prostorni kut između dviju navedenih osi. nz zs z (7.2) n Z n (7.3) n Z z S z a cos (7.4) zs z Pomoću vektora n sa komponentama (n x, n y, n z ) iz izraza (7.3), te kuta θ iz izraza (7.4), matrica za rotaciju se može napisati na sljedeći način: n nxn R n nxn 2 x 1 cos cos nxn y 1 cos nz sin nxnz 1 cos 2 1 cos nz sin n y 1 cos cos n ynz 1 cos 1 cos n sin n n 1 cos n sin n 1 cos y, 2 z y y z x z 0 0 0 n sin y n sin x cos 0 0 0 1 (7.5) Ukupna matrica transformacije iz glavnog koordinatnog sustava u koordinatni sustav dobije se umnoškom matrice rotacije i matrice translacije: M GKS KSS R T (7.6) 167

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. a) b) d) c) e) Slika 7 4 Primjer izvršenja algoritma prekrivanja i dijeljenja trokuta 168