• Nie Znaleziono Wyników

Podstawy teoretyczne

Algorytm 2 Przegl ˛ adanie drzewa kd według algorytmu z pracy [HKBZ97]

2.1.2 Metody energetyczne

Metody energetyczne (ang. radiosity) wykorzystuj ˛a in˙zynierskie modele wymiany ciepła stosowa-ne m.in. przy obliczaniu elementów statków kosmicznych. Pierwsze doniesienia o wykorzystaniu tych algorytmów w grafice komputerowej zaprezentowano w pracach [GTGB84] i [NN85]. W me-todzie energetycznej zakłada si˛e, ˙ze całkowita energia ´swietlna emitowana lub odbijana od dowolnej powierzchni jest absorbowana lub odbijana przez inne powierzchnie. Rozkład energii ´swietlnej na scenie jest obliczany niezale˙znie od pozycji obserwatora, a wi˛ec po jego wyznaczeniu konieczna jest odpowiednia projekcja wyników.

Wprowadzenie

Podstawowym zało˙zeniem w metodzie energetycznej jest potraktowanie wszystkich powierzchni jako nieprzezroczystych i matowych. Powierzchnie takie odbijaj ˛a ´swiatło jednakowo w ka˙zdym kierunku, a wi˛ec niezale˙znie od k ˛ata patrzenia wydaj ˛a si˛e jednakowo jasne. Zostały one nazwane

w XVII wieku. Nat˛e˙zenie ´swiatła odbitego od powierzchni lambertowskiej jest okre´slone prawem

Lamberta

Io= Is· ρ · cos(α), (2.8)

gdzie Io oznacza nat˛e˙zenie ´swiatła odbitego zarejestrowane przez obserwatora, Is jest nat˛e˙zeniem ´zródła ´swiatła,ρ ∈ [0, 1] jest współczynnikiem odbicia, a α k ˛atem pomi˛edzy kierunkiem

obserwa-cji a wektorem normalnym do powierzchni. Dzi˛eki temu, ˙ze stosunek nat˛e˙zenia ´swiatła odbitego do padaj ˛acego zale˙zy wył ˛acznie od k ˛ata obserwacji i współczynnika odbicia, mo˙zliwe jest znaczne uproszczenie równa´n opisuj ˛acych przepływ energii ´swietlnej pomi˛edzy elementami sceny.

Zadaniem metod energetycznych jest wyznaczenie dla ka˙zdego punktu na scenie jego

promieni-sto´sci (ang. radiosity)B(A), czyli strumienia energii emitowanego z danej powierzchni. Jednostk ˛a promienisto´sci, nazywanej tak˙ze nat˛e˙zeniem wypromieniowania, jestmW2



. Przy ograniczeniu wszys-tkich powierzchni na scenie do powierzchni lambertowskich, równanie (2.1) mo˙zna upro´sci´c do po-staci [CW93]

B(A) = E(A) + ρ(A) Z

S

B(A)G(A, A)dA, (2.9)

gdzieB(A) i B(A) oznaczaj ˛a odpowiednio promienisto´sci w punktach A i A,E(A) oznacza

pro-mienisto´s´c własn ˛a ´zródeł ´swiatła, ρ(A) jest współczynnikiem odbicia, a G(A, A) jest nazywane

j ˛adrem geometrycznym. Warto´s´cG(A, A) zale˙zy zarówno od wzajemnego poło˙zenia punktów A i A, jak i od obecno´sci przeszkód pomi˛edzy tymi punktami.

Dyskretyzacja równania o´swietlenia

Pomimo uproszcze´n, analityczne rozwi ˛azanie równania (2.9) jest mo˙zliwe jedynie w bardzo prostych przypadkach. Stosowane s ˛a zatem metody probabilistyczne i numeryczne pozwalaj ˛ace znale´z´c roz-wi ˛azanie przybli˙zone. Jedn ˛a z najcz˛e´sciej stosowanych metod numerycznych jest metoda elementów sko´nczonych (MES). Pozwala ona przybli˙zy´c rozwi ˛azanie równania (2.9) rozwi ˛azaniem układu rów-na´n liniowych.

W metodzie elementów sko´nczonych skomplikowana funkcja jest aproksymowana sum ˛a wa˙zon ˛a prostych funkcji bazowych. Ka˙zda z funkcji bazowych okre´slona jest na pewnym przedziale wybra-nym z dziedziny funkcji aproksymowanej. Suma przedziałów funkcji bazowych musi pokry´c cał ˛a dziedzin˛e funkcji aproksymowanej. Współczynniki przy funkcjach bazowych s ˛a dobierane w ten sposób, aby warto´sci funkcji aproksymowanej i sumy wa˙zonej funkcji bazowych były sobie

rów-ne w wybranych punktach dziedziny, nazywanych w˛ezłami. Warto´sci współczynników w w˛ezłach s ˛a niewiadomymi, które mo˙zna znale´z´c rozwi ˛azuj ˛ac liniowy układ równa´n.

Idea zastosowania MES w metodzie energetycznej polega na aproksymacji ci ˛agłej funkcjiB(A)

za pomoc ˛a sumy

B(A)≈X

i

Biξi(A), (2.10)

gdzie ξi(A) oznacza i–t ˛a funkcj˛e bazow ˛a. Funkcjami bazowymi s ˛a z reguły funkcje wielomianowe przyjmuj ˛ace warto´sci niezerowe jedynie w bliskim otoczeniu danego w˛ezła, za´s w˛ezłami s ˛a wybrane punkty na powierzchniach wyst˛epuj ˛acych na scenie. Ka˙zda funkcja bazowa jest okre´slona dla pewne-go przedziału dziedzinyB(A), czyli dla pewnego wycinka powierzchni. Poza wybranym przedziałem

warto´s´cξi(A) jest równa zero. Cz˛esto u˙zywan ˛a funkcj ˛a bazow ˛a jest

ξi(A) =   

1 je´sli A nale˙zy do płatu i 0 je´sli A nie nale˙zy do płatu i

. (2.11)

Metoda elementów sko´nczonych pozwala zapisa´c formuł˛e (2.9) jako układ równa´n liniowych

E= (Ξ− P · F) · B, (2.12)

gdzie E oznacza wektor promienisto´sci własnych, elementy macierzy Ξ s ˛a splotem odpowiednich funkcji bazowych, macierz P jest macierz ˛a diagonaln ˛a współczynników odbicia, macierz F jest ma-cierz ˛a współczynników konfiguracji (kształtu) zale˙znych od współczynników sprz˛e˙zenia, a wektor B jest poszukiwanym wektorem promienisto´sci. Dla stałych funkcji bazowych macierz Ξ jest macierz ˛a jednostkow ˛a, a macierz F zawiera współczynniki sprz˛e˙zenia. Wektor rozwi ˛aza´n układu (2.12) wy-znacza z zało˙zonym bł˛edem warto´sci promienisto´sci dla wybranego zbioru punktów stanowi ˛acych w˛ezły.

Znalezienie układu równa´n liniowych aproksymuj ˛acego (2.9) wymaga przeprowadzenia szeregu operacji. Pierwsz ˛a z nich jest podział wszystkich powierzchni wyst˛epuj ˛acych na scenie na niewielkie

płaty elementarne. Dla ka˙zdego płatu nale˙zy wybra´c zbiór punktów b˛ed ˛acych w˛ezłami, w których

obliczane s ˛a warto´sci promienisto´sci. Z ka˙zdym w˛ezłem nale˙zy zwi ˛aza´c wybran ˛a funkcj˛e bazow ˛a. Liczba i poło˙zenie w˛ezłów zale˙zy od postaci funkcji bazowych. Dla stałych funkcji bazowych wy-bierany jest zazwyczaj jeden punkt po´srodku płata elementarnego. Dla ka˙zdej pary płatów elementar-nych nale˙zy tak˙ze wyznaczy´c warto´s´c współczynnika sprz˛e˙zenia, czyli wielko´sci opisuj ˛acej wzgl˛edne poło˙zenie i obecno´s´c przeszkód ograniczaj ˛acych wzajemn ˛a widoczno´s´c. Znajomo´s´c powy˙zszych da-nych jednoznacznie okre´sla współczynniki układu równa´n (2.12).

Współczynniki konfiguracji

Współczynniki konfiguracji (kształtu) okre´slaj ˛a wa˙zony wpływ energii emitowanej z dziedziny pewnej funkcji bazowej na dziedzin˛e innej funkcji bazowej. W najprostszym przypadku s ˛a równe stosunkowi energii docieraj ˛acej z płatui do płatu j do całkowitej energii emitowanej z płatu i.

Współ-czynniki kształtu zale˙z ˛a wył ˛acznie od odległo´sci i wzajemnej orientacji płatów elementarnych oraz od istnienia ewentualnych przeszkód pomi˛edzy nimi.

Wyznaczenie współczynnika sprz˛e˙zenia dla pary płatów elementarnych ma dwa etapy. W pierw-szym wyznacza si˛e funkcj˛e widoczno´sci. Warto´s´c funkcji widoczno´sci zale˙zy od obecno´sci przeszkód cz˛e´sciowo lub całkowicie blokuj ˛acych wymian˛e energii pomi˛edzy badanymi płatami. Z reguły stosu-je si˛e dwuwarto´sciow ˛a funkcj˛e widoczno´sci równ ˛a 1, gdy pomi˛edzy płatami elementarnymi nie ma ˙zadnych przeszkód, i równ ˛a 0 w przeciwnym przypadku.

Do wyznaczania funkcji widoczno´sci mo˙zna posłu˙zy´c si˛e algorytmem rzucania promieni. Kon-struuje si˛e promie´n o pocz ˛atku na jednym z płatów elementarnych i skierowany na drugi z płatów. Nast˛epnie poszukuje si˛e obiektów przecinanych przez ten promie´n, które s ˛a poło˙zone pomi˛edzy po-cz ˛atkiem promienia a drugim z badanych płatów. Wystarczy znale´z´c jeden taki obiekt, aby okre´sli´c warto´s´c funkcji widoczno´sci równ ˛a zero. Z powodu logarytmicznej zło˙zono´sci algorytmu poszuki-wania obiektów przecinanych przez promie´n rozwi ˛azanie to jest do´s´c efektywne.

Drugim krokiem procedury wyznaczania współczynnika sprz˛e˙zenia jest okre´slenie jego warto´sci zale˙znej od kształtu i wzajemnego poło˙zenia płatów elementarnych. Dla niektórych kształtów płatów elementarnych znane s ˛a analityczne formuły okre´slaj ˛ace t˛e warto´s´c, jednak z powodu ich zło˙zono´sci s ˛a rzadko stosowane. Jednym z podstawowych sposobów obliczania warto´sci współczynnika kształtu jest metoda próbkowania półsfery (metoda Nusselta) [CW93].

Ide˛e metody Nusselta przedstawiono na rys. 2.7. Konstruowana jest umowna półsfera o ´srodku poło˙zonym na jednym z płatów elementarnych. Drugi z płatów jest rzutowany na powierzchni˛e pół-sfery, a nast˛epnie na koło b˛ed ˛ace jej podstaw ˛a. Współczynnik kształtu jest równy stosunkowi pola zaj˛etego przez rzut do pola całego koła

FdAi→dAj = S

πr2. (2.13)

Metoda Nusselta stanowi podstaw˛e wielu algorytmów. Jedn ˛a z modyfikacji jest metoda próbko-wania półsze´scianu (rys. 2.8). Półsfera zast˛epowana jest półsze´scianem, którego ´sciany s ˛a dzielone na niewielkie elementy. Z ka˙zdym elementem zwi ˛azana jest warto´s´c jego współczynnika kształtu

S r

dAi

dAj

Rysunek 2.7. Wyznaczanie współczynników kształtu metod ˛a Nusselta.

wzgl˛edem płatudAi. Nast˛epnie badany płatdAj jest rzutowany na powierzchni˛e półsze´scianu i jego współczynnik kształtu jest obliczany jako suma współczynników "przykrytych" elementów.

Metoda próbkowania półsze´scianu jest szczególnie podatna na implementacj˛e z wykorzystaniem klasycznych procesorów graficznych zawieraj ˛acych realizacj˛e sprz˛etow ˛a algorytmu wyznaczania obiek-tów widocznych, np. algorytmz–bufora lub inaczej bufora gł˛eboko´sci. Algorytm ten pozwala

zrzu-towa´c wszystkie elementy sceny na płaszczyzny wyznaczone przez ´sciany półsze´scianu. Przy rzuto-waniu zachowana jest kolejno´s´c obiektów, tzn. płaty poło˙zone dalej od ´scian półsze´scianu zostan ˛a przysłoni˛ete przez elementy bli˙zsze. Pozwala to na jednoczesne wyznaczenie funkcji widoczno´sci. Czas wykonania algorytmu wykorzystuj ˛acego bufor gł˛eboko´sci zale˙zy liniowo od liczby elementów na scenie. Szereg implementacji wykorzystuj ˛acych ide˛e próbkowania półsze´scianu i klasyczne pro-cesory graficzne zaprezentowano m.in. w pracach [Kel97], [BGZ97], [NC02], [Lan04], [CHL04].

Istniej ˛a tak˙ze inne algorytmy wyznaczania współczynników sprz˛e˙zenia. Przykładem mog ˛a by´c ró˙znorakie metody probabilistyczne. S ˛a one jednak rzadko stosowane ze wzgl˛edu na czasochłonno´s´c i nisk ˛a jako´s´c uzyskiwanych wyników. Wspomaganie metod energetycznych przy u˙zyciu algorytmów

dAi

dAj

Rysunek 2.8. Wyznaczanie współczynników kształtu metod ˛a próbkowania półsze´scianu.

probabilistycznych zastosowano w procesorze AR350 [Hal01].

Rozwi ˛azanie układu równa ´n o´swietlenia

Rozwi ˛azanie układu równa´n (2.12) pozwala na znalezienie warto´sci promienisto´sci dla zbioru punk-tów poło˙zonych na powierzchni obiekpunk-tów wyst˛epuj ˛acych na scenie. Niestety, aby uzyska´c wystar-czaj ˛ac ˛a dokładno´s´c, konieczne jest stosowanie odpowiednio g˛estej siatki w˛ezłów, czyli odpowiednio małych płatów elementarnych. Dla skomplikowanych scen liczba płatów elementarnych mo˙ze prze-kroczy´c 106 elementów. Du˙za liczba w˛ezłów, a wi˛ec tak˙ze zmiennych w układzie (2.12), wymaga ogromnych mocy obliczeniowych do znalezienia rozwi ˛azania.

Rozmiar układu równa´n o´swietlenia powoduje, ˙ze klasyczne metody (np. metoda Gaussa o zło˙zo-no´sciO(n3)) s ˛a praktycznie bezu˙zyteczne. W praktycznych implementacjach stosowane s ˛a zazwyczaj relaksacyjne metody rozwi ˛azywania układu równa´n, b˛ed ˛ace modyfikacjami metod iteracyjnych Jaco-biego czy Gaussa–Seidla. Cz˛esto stosowan ˛a jest metoda progresywnego ulepszania (ang. progressive

refinement) [Lan04].

warto´s´c dotychczas obliczonej promienisto´sci Bi oraz promienisto´sci, która jeszcze nie została wy-promieniowana∆Bi. Algorytm ten jest algorytmem iteracyjnym, w którym pojedyncza iteracja skła-da si˛e z dwóch etapów. Etap pierwszy obejmuje wybór elementu z najwi˛eksz ˛a warto´sci ˛a niewypro-mieniowanej energii∆Bi. W drugim kroku energia wszystkich płatów elementarnych jest zwi˛ekszana o warto´s´c zwi ˛azan ˛a z emisj ˛a energii∆Bi.