Grafika Komputerowa Radiosity (Metoda Energetyczna) Alexander Denisjuk denisjuk@pjwstk.edu.pl Polsko-Japońska Wyższa Szkoła Technik Komputerowych zamiejscowy ośrodek dydaktyczny w Gdańsku ul. Brzegi 55 80-045 Gdańsk Grafika Komputerowa p. 1
Radiosity (Metoda Energetyczna) Najnowsza wersja tego dokumentu dostępna jest pod adresem http://users.pjwstk.edu.pl/~denisjuk/ Grafika Komputerowa p. 2
Radiosity Grafika Komputerowa p. 3
Ò Áº ºË ÓÐÓÖÔÐ Ø º½ º ÙÖ Áº½ Ì Ô Ø Ù ØÓÖ Ò ÖØ Ö Ó ØÝ Ò Ó ÙÖ Áº¾ Podział na płaty Grafika Komputerowa p. 4
ÙÖ Áº¾ Ö Ó ØÝÖ Ò Ö ÙÖ Û Ø Ø Ò ºÁØ Ú ÒØØ Ø Cieniowanie płaskie Ø Ñ ÓÒØ Ô Ø ÓÛÒ Ò ÙÖ Áº½ºË ÓÐÓÖÔÐ Ø º½ º Grafika Komputerowa p. 5
Ì Ö ÓÐÓÖÓ Ø ÓÜ Ö Ø ÓÒØÓØ Ò Ö ÝÛ ÐÐ Ú Ò Ø Ñ Ð Ø ÙÖ Áº Ö Ó ØÝÖ Ò Ö ÙÖ Û Ø ÑÓÓØ Ò Ó ÐÐÙÑ Ò Ø ÓÒº Cieniowanie z interpolacja ÔÐ Ø º½ º Ö Ù ºÌ ÓÒØ Ô Ø ÓÛÒ Ò ÙÖ Áº½ºË ÓÐÓÖ Grafika Komputerowa p. 6
Podział na płaty 1. równomiernie oświetlone 2. wystarczajaco małe 3. zużycie pamięci, obliczalna skompikowalność: O(n 2 ) Grafika Komputerowa p. 7
Rownanie energetyczne Wybrano płaty P 1,...,P n o polach poweirzchni A 1,...,A n. B i jest średnim światłem promieniowanym przez płat P i. B i = E i +R i B in i Grafika Komputerowa p. 8
Współczynnik sprzężenia optycznego F i,j ilość światła, przekazywanego z płata P i. F i,i = 0. Grafika Komputerowa p. 9
Rownanie energetyczne Całkowite światło emitowane z P j : A j B j. Całkowite światło padajace na P i : A i Bi in. A i B in i = n j=1 F j,ia j B j. Równanie wzajemności: A i F i,j = A j F j,i. B in i = n j=1 F i,jb j. Równanie radiosity: B i = E i +R i n j=1 F i,jb j. Grafika Komputerowa p. 10
Radiosity equation B = E +MB. B = B 1. B n, E = E 1. E n. M = ( R i F i,j ). (I M)B = E B = (I M) 1 E. Grafika Komputerowa p. 11
Ô Ø ÓÑÔÙØ ÓÖÑ ØÓÖ ËÓÐÚ Ö Ó ØÝ ÕÙ Ø ÓÒ ÓÖ Ê Ò ÖÛ Ø ÑÓÓØ Å Ò Ò ÙÖ Áº Ì ÓÙÖ Ø Ó Ø Ö Ó ØÝ Ð ÓÖ Ø Ñ Algorytm radiosity Grafika Komputerowa p. 12
È Ø È½ Ö ½º Obliczenie współczynników sprzężenia optycznego F i,j [0,1], n j=1 F i,j = 1. F 1,2 0, F 2,1 1. È Ø È¾ Ö ¾º ÙÖ Áº Ð Ö Ô Ø Ò Ñ ÐÐÔ Ø º Grafika Komputerowa p. 13
³ Ò È Obliczenie współczynników sprzężenia optycznego ϕ i,ϕ j < 90. pole zrzutu P j na sferę jednostkowa w P i : cosϕ j A j /d 2. część pola zrzutu P j : (cosϕ j)a j 2πd 2. Ò ³ ÙÖ Áº ÌÛÓ Ò Ò Ø Ñ ÐÐÝ Ñ ÐÐÔ Ø È Ò È Û Ø Ö È Grafika Ò ºÌ ÒÓÖÑ Ð ØÓØ Ô Ø Ö Ò Ò Ò º Komputerowa p. 14
³ Ò È Obliczenie współczynników sprzężenia optycznego F i,j cosϕ i (cosϕ j )A j 2πd 2. Całkowita ilość emitowanego światła jest 1. S i + cosϕda = π/2 0 cosϕ(2πsinϕ)dϕ = π. F i,j = cosϕ i (cosϕ j )A j πd 2 F i,j A i = F j,i A j. Ò Grafika ³ È ÙÖ Áº ÌÛÓ Ò Ò Ø Ñ ÐÐÝ Ñ ÐÐÔ Ø È Ò È Û Ø Ö Ò ºÌ ÒÓÖÑ Ð ØÓØ Ô Ø Ö Ò Ò Ò º Komputerowa p. 15
Ograniczenia Płaty sa małe w porównaniu do g. Nie uwzględnia się widoczność płat. Grafika Komputerowa p. 16
Widoczność płat. Ray tracing F i,j = V i,j cosϕ i (cosϕ j )A j πd 2. V i,j współczynnik widoczności. V i,j = V j,i. jittering (fluktacje). Grafika Komputerowa p. 17
È Współczynniki sprzężenia optycznego. Hemicube method È P j zastępiony przez projekcję. ÙÖ Áº ÈÖÓ Ø ÓÒÓÒØÓ Ñ Ù º Z-buffor. Sprzętowa akceleracja. F i,j = pixele P j część światłap i. Grafika Komputerowa p. 18
Þ ½º È Ü Ð ÓÒØÓÔ Þ ³ ³ Ë ÓÛ È Ôܾ ݾ ½ Hemicube method Ü Ý ¼ cosϕ i = cosϕ j = 1/d. Ø Þ ½ÔÐ Ò º ÙÖ Áº ÖÓÛÓ Ô Ü Ð ÐÓÒ Ø ØÓÔÓ Ø Ñ Ù ºÇÒ Ô Ü Ð ÓÛ Ô Ø È ºÌ ÓÖ Ò ÔÐ ØØ ÒØ ÖÓ Ô Ø È ºÌ ØÓÔÓ Ø Ù F i,j = pixele P j (1/d)(1/d) Pole pixeli πd 2. F i,j = pixele P j Pole pixeli πd 4. Grafika Komputerowa p. 19
Ó ³ Þ Ô½ ݾ Þ¾ ³ Ë ÓÛ È Þ Hemicube method ¼³ Ó ³ ½ F i,j = z Pole pixeli pixele P j. πd 4 Ü ½ Ü Ý ÙÖ Áº ÖÓÛÓ Ô Ü Ð ÐÓÒ Ø Ü ½ Ó Ø Ñ Ù º Grafika Komputerowa p. 20
Równanie radiosity. Metody iteracyjne (I M)B = E. B = (I M) 1 E, metody bezpośrednie O(n 3 ). Lemat 1. Niech M będzie macierza równania radiosity. Wtedy 1. m i,j 0, 2. 0 MaxRowSum(M) < 1, 3. MaxRowSum(M k ) < (MaxRowSum(M)) k,k = 1,2,..., gdziemaxrowsum(m) = max i j m i,j. Grafika Komputerowa p. 21
Równanie radiosity Wniosek 2. Niech M będzie macierza równania radiosity. Wtedy 1. I M jest macierza odwracalna, 2. (I M) 1 = I +M +M 2 +... B (I +M + +M k )E Grafika Komputerowa p. 22
Metoda Jacobiego / / Bnew, B, E sa wektorami / / m j e s t macierza B=E ; while ( not o s i a g n i ę t a dokładność ) { for ( i =1; i <=n ; i ++){ Bnew [ i ]=E [ i ]+ n j=1m[ i, j ] B [ j ] ; } B=Bnew ; } Grafika Komputerowa p. 23
Metoda Gaussa-Seidla / / Bnew, B, E sa wektorami / / m j e s t macierza B=E ; while ( not o s i a g n i ę t a dokładność ) { for ( i =1; i <=n ; i ++){ B [ i ]=E [ i ]+ n j=1m[ i, j ] B [ j ] ; } } Grafika Komputerowa p. 24
Metoda Strzałów / / B, B, E sa wektorami, m j e s t macierza B=0; B=E ; while ( not o s i a g n i ę t a dokładność ) { wybierż j tak, żeby maksymalizować B [ j ] A_j ; B [ j ]+= B [ j ] ; for ( i =1; i <=n ; i ++){ m[ i, j ] B [ j ] ; } B [ j ] = 0 ; B+= B ; } Grafika Komputerowa p. 25 B [ i ]= B [ i ]+ n j=1
RRV - Radiosity Renderer and Visualizer http://dudka.cz/rrv Grafika Komputerowa p. 26