Řešení radační soustavy rovnc 1996-2016 Josef Pelkán CGG MFF UK Praha pepca@cgg.mff.cun.cz http://cgg.mff.cun.cz/~pepca/ RadSoluton 2016 Josef Pelkán, http://cgg.ms.mff.cun.cz/~pepca 1 / 23
Soustava lneárních rovnc N j j j1 B B F E 1.. N 1 1F 11, 1F 1, 2.. 1F 1, 2F2, 1 1 2F2, 2.. 2F2,........ F 1 F 2.. 1 F N N B1 E B2 E.... B E N N, N N, N N, N N N vektor neznámých [B ] 1 2 RadSoluton 2016 Josef Pelkán, http://cgg.ms.mff.cun.cz/~pepca 2 / 23
Velčny B.. neznámé radosty jednotlvých plošek př barevném výpočtu je třeba spočítat radosty pro všechny požadované vlnové délky (barevné složky - např. R,G,B) E.. vlastní (emtované) radosty (R,G,B).. faktory odrazvost materálu (R,G,B) F j.. konfgurační faktory závslé pouze na geometr scény RadSoluton 2016 Josef Pelkán, http://cgg.ms.mff.cun.cz/~pepca 3 / 23
Vlastnost matce soustavy M matce M je poměrně řídká pro složtější scény M je dagonálně domnantní a dobře podmíněná lze j úspěšně řešt teračním metodam (Jacob, Gauss- Sedel) N Fj 1 j1 j F RadSoluton 2016 Josef Pelkán, http://cgg.ms.mff.cun.cz/~pepca 4 / 23
Gauss-Sedelova metoda Matcový tvar soustavy: První odhad: Krok: Výpočet v prax: M B E M M j j B B ( 0 ) E RadSoluton 2016 Josef Pelkán, http://cgg.ms.mff.cun.cz/~pepca 5 / 23 N, 1 1 N ( k1) E M M M B M j ( k ) j j M B ( k) 1 j j1 j1 N j j j1 B E B F 1.. N
Fyzkální nterpretace (sbírání) B j B j j j B E B F RadSoluton 2016 Josef Pelkán, http://cgg.ms.mff.cun.cz/~pepca 6 / 23
Rezduum Rezduum (odhad chyby) k-té terace: ( k) ( k) r E M B V jednom kroku výpočtu se aktualzuje jedna složka vektoru řešení B : B ( k1) ( k) B r ( k) M (Jacobho metoda.. rezdua se opravují po dokončení terace, Gauss-Sedel.. oprava po každém kroku) RadSoluton 2016 Josef Pelkán, http://cgg.ms.mff.cun.cz/~pepca 7 / 23
Southwellova terační metoda Jacobho Gauss-Sedelova metoda v každém kroku výpočtu vynulují jednu složku rezdua (na úkor ostatních!) složky se aktualzují v pořadí 1, 2,... N Southwellova metoda vybírá k aktualzac vždy složku s největší absolutní hodnotou rezdua složky s velkou chybou se opravují častěj rychlejší konvergence vektoru řešení RadSoluton 2016 Josef Pelkán, http://cgg.ms.mff.cun.cz/~pepca 8 / 23
Southwellova terační metoda výběr složky s maxmálním rezduem: r = max j { r j } aktualzace -té složky řešení B aktualzace vektoru rezduí r kroky až se opakují, dokud soustava nesplňuje konvergenční krterum RadSoluton 2016 Josef Pelkán, http://cgg.ms.mff.cun.cz/~pepca 9 / 23
Inkrementální výpočet rezdua Aktualzace vektoru řešení v jednom kroku výpočtu: ( p1) ( p) ( p) B B B Oprava rezdua: ( p1) ( p) ( p) ( p) ( p) r E M B B r M B Protože se změnla pouze -tá složka vektoru řešení: ( p1) ( p) ( p) r r M r j j j j M 1.. N RadSoluton 2016 Josef Pelkán, http://cgg.ms.mff.cun.cz/~pepca 10 / 23
Southwellův algortmus double B[N], E[N], r[n], M[N][N]; // ncalzace řešení a rezdua for ( nt =0; <N; ++ ) { B[] := 0.0; r[] := E[]; } whle ( nezkonvergovalo ) { // jeden krok výpočtu: výběr tak, aby fabs(r[])== max(fabs(r[])) double delta = r[]/m[][]; B[] += delta; for ( nt j=0; j<n; j++ ) r[j] -= M[j][]*delta; } RadSoluton 2016 Josef Pelkán, http://cgg.ms.mff.cun.cz/~pepca 11 / 23
Fyzkální nterpretace (střílení) B.. radosta -té plošky (přímá nepřímá) jeden krok výpočtu.. rozdělení (výstřel) radosty z -té plošky do okolí r.. dosud nevystřelená radosta -té plošky konvergence metody.. celková nevystřelená energe ve scéně se zmenšuje RadSoluton 2016 Josef Pelkán, http://cgg.ms.mff.cun.cz/~pepca 12 / 23
Fyzkální nterpretace (střílení) ( p1) ( p) ( p) j j B B r F j j B j B RadSoluton 2016 Josef Pelkán, http://cgg.ms.mff.cun.cz/~pepca 13 / 23
Celková nevystřelená energe Podle recpročního pravdla pro konfgurační faktory: ( p1) ( p) ( p) ( p) ( p) j j j j j j j j r r F r r F A A r Dstrbuce energe v jednom kroku výpočtu: r ( p1) A 0 <1 ( p1) ( p) ( p) j j j j j j r A r A F r A j 1.. N RadSoluton 2016 Josef Pelkán, http://cgg.ms.mff.cun.cz/~pepca 14 / 23
Progresvní radační metoda M. Cohen at al., SIGGRAPH 88 nteraktvní výpočet osvětlení po každém kroku se nakreslí průběžný výsledek snaha dobře odhadnout řešení jž v několka prvních krocích modfkace Southwellovy metody výběr plošky s největší dosud nevystřelenou energí použtí okolní složky osvětlení RadSoluton 2016 Josef Pelkán, http://cgg.ms.mff.cun.cz/~pepca 15 / 23
Progresvní radační metoda double B[N], E[N], db[n], F[N][N], A[N], ro[n]; for ( nt =0; <N; ++ ) { // ncalzace B, db B[] := E[]; db[] := E[]; } whle ( nezkonvergovalo ) { // jeden krok výpočtu výběr tak, aby db[]*a[]== max(db[]*a[]) for ( nt j=0; j<n; j++ ) { double drad = db[]*ro[j]*f[j][]; B[j] += drad; db[j] += drad; } db[] = 0.0; zobrazení mezvýsledku pomocí radost B[] } RadSoluton 2016 Josef Pelkán, http://cgg.ms.mff.cun.cz/~pepca 16 / 23
Okolní složka ( ambent term ) vylepšení vzhledu průběžně kreslených mezvýsledků aproxmace dosud nespočítaných odrazů světla Celková dosud nevystřelená radosta: B r A A RadSoluton 2016 Josef Pelkán, http://cgg.ms.mff.cun.cz/~pepca 17 / 23
Okolní složka Průměrný koefcent odrazu: A A Odhad zbytkové (okolní) radosty: Bamb B 1... 2 B 1 Pro zobrazení se radosta každé plošky upraví: dsp B B B amb RadSoluton 2016 Josef Pelkán, http://cgg.ms.mff.cun.cz/~pepca 18 / 23
Hyper-relaxace urychlení konvergence terační metody (Jacob, Gauss-Sedel, progresvní radační metoda) př aktualzac rozdělím/seberu o trochu větší množství energe předpovídám budoucí vývoj konvergence pozor na přílš velký koefcent hyper-relaxace (metoda pak už nemusí konvergovat)! je nutné počítat se záporným rezduem! RadSoluton 2016 Josef Pelkán, http://cgg.ms.mff.cun.cz/~pepca 19 / 23
Hyper-relaxace Krok výpočtu s hyper-relaxací: B ( k1) ( k) B Hyper-relaxační koefcent: r ( k) M 1 napø. 1. 2 ( např. 1.2 ) Příslušná složka rezdua se jž nenuluje, ale bude mít hodnotu: r ( k1) ( k) 1 r RadSoluton 2016 Josef Pelkán, http://cgg.ms.mff.cun.cz/~pepca 20 / 23
Přestřelování ( overshootng ) M. Feda, W. Purgathofer, 1992 př hyper-relaxac beru v úvahu množství dosud nevystřelené energe v prvních fázích výpočtu přestřeluj více, pozděj jž méně jstější konvergence RadSoluton 2016 Josef Pelkán, http://cgg.ms.mff.cun.cz/~pepca 21 / 23
Lteratura M. Cohen, J. Wallace: Radosty and Realstc Image Synthess, Academc Press, 1993, 109-130 (chyby!) M. Cohen, S. E. Chen, J. R. Wallace, D. P. Greenberg: A progressve refnement approach to fast radosty mage generaton, SIGGRAPH 88, 75-84 RadSoluton 2016 Josef Pelkán, http://cgg.ms.mff.cun.cz/~pepca 22 / 23
Konec Další nformace: A. Glassner: Prncples of Dgtal Image Synthess, Morgan Kaufmann, 1995, 900-916 J. Foley, A. van Dam, S. Fener, J. Hughes: Computer Graphcs, Prncples and Practce, 800-803 M. Feda, W. Purgathofer: Acceleratng radosty by overshootng, The Thrd EG Workshop on Renderng, Brstol, 1992, 21-32 RadSoluton 2016 Josef Pelkán, http://cgg.ms.mff.cun.cz/~pepca 23 / 23