Lösen der Matrizengleichung Oliver Deussen Lösungsverfahren K 1
letztes Kapitel: Berechnung der Formfaktoren F außerdem: B: zu berechnende Strahlung, E: gegebenes Eigenleuchten nun: Wie löst man K B = E Idee: K B = E (I - P F) B = E mit: I: Einheitsmatrix, P F Matrix aus Formfaktoren und Reflektivität Oliver Deussen Lösungsverfahren K 2
Zur Erinnerung: K : 1 ρ 1 F 1,1 ρ 1 F 1,2 ρ 1 F 1,n ρ 2 F 2,1 1 ρ 2 F 2,2 ρ 2 F 2,n...... ρ n F n,1 1 ρ n F n,n I : 1 0 0 0 1 0...... 0 1 P F : ρ 1 F 1,1 ρ 1 F 1,2 ρ 1 F 1,n ρ 2 F 2,1 ρ 2 F 2,2 ρ 2 F 2,n...... ρ n F n,1 ρ n F n,n Oliver Deussen Lösungsverfahren K 3
Eigenschaften von K Größe n n bei n Basisfunktionen ( Knoten) nicht dünn besetzt Werte sind Null, wenn ρ Null, oder F i = 0 (d.h die Elemente sehen sich nicht) nicht symmetrisch Umwandlung in symmetrische Matrix: ede Zeile i mit A i multiplizieren (es gilt F i A i = F i A ) Symmetrie wird im folgenden nicht explizit benutzt Diagonaldominant: n =1 i K i K ii, i Oliver Deussen Lösungsverfahren K 4
Diagonaldominanz ist die Voraussetzung, daß iterative Lösungsverfahren anwendbar sind Spektralradius bis Eins Spektralradius: Norm einer Matrix bestimmt die Größe des größten Eigenwertes Maß für Konvergenzgeschwindigkeit iterativer Verfahren hat P F eine Norm kleiner Eins, so ist K = I P F invertierbar und die Neumannfolge von Multiplikationen mit P F konvergiert K 1 = [I P F] 1 = (P F) a, P F < 1 a=0 gut konditioniert kleine Änderungen der Eingabewerte erzeugen kleine Änderungen der Ergebniswerte Oliver Deussen Lösungsverfahren K 5
Lösungsverfahren Direkte (Gauß-) Lösung: O(n 3 ) nicht praktikabel außerdem numerisch schwierig Iterative Verfahren Verfahren (zu Lösen K B = E): Bilde: r (0) = K B (0) E hierbei B (0) : Startwert, r (0) : Restevektor Entwickle: B (1) aus r (0) usw. ist r (i) = 0, so ist eine Lösung erreicht. Oliver Deussen Lösungsverfahren K 6
Jacobi-Iteration für ede Zeile gilt: K i B = E i oder, wenn Element K ii herausgezogen wird: K ii B i = E i i K i B Division durch K ii ergibt (plus iterative Schreibweise): B (k+1) i = E i K ii i K i B (k) K ii Oliver Deussen Lösungsverfahren K 7
über den Restevektor r k i ausgedrückt: B (k+1) i = B (k) i + r(k) i K ii Jacobi-Iteration: wähle beliebige Zeile und relaxiere pro Zeile: O(n) viele Zeilenveränderungen notwendig Oliver Deussen Lösungsverfahren K 8
Gauss-Seidel-Verfahren Variation der Jacobi-Iteration hier: die neuesten Versionen der B i werden gleich verwendet Behandlung einer Zeile (Relaxierung eines r i ): B (k+1) i = E i i 1 =1 B (k+1) K i K ii n =i+1 B (k) K i K ii Aufwand für Update eines B : O(n) ein Iterationsschritt: O(n 2 ) Oliver Deussen Lösungsverfahren K 9
Algorithmus: für alle i: B i = Startwert while (keine Konvergenz) { für alle i: } Konvergenzkriterien: B i = E i n =1 i B K i K ii r < ε oder B (k+1) B (k) < ε wobei ε festgelegte Fehlerschranke Oliver Deussen Lösungsverfahren K 10
es gilt (K ii = 1, wenn Elemente sich nicht selbst sehen ): B i = E i n =1 i B K i K ii = E i + n =1 i ρ i B K i }{{} B i B i : Anteil von Element zur Strahlung von Element i physikalisch betrachtet: Sammele Licht von allen anderen Flächen und addiere zum eigenen Leuchten aus: Cohen/Wallace: Radiosity and Realistic Image Synthesis Oliver Deussen Lösungsverfahren K 11
Southwell-Iteration Variante des Gauß-Seidel Verfahrens wähle eweils Zeile mit maximalem Fehler r i for (edes i) { B i = 0 ; r i = E i ; } while (keine Konvergenz) { i = Index mit r i = max; B i = B i + r i /K ii ; /* üblicher Term */ temp = r i ; für edes : r = r K i /K ii temp; /* update Fehler */ } Oliver Deussen Lösungsverfahren K 12
Warum dieses Updating: sei B (p) als Veränderung des Strahlungsvektors bekannt dann gilt: B (p+1) = B (p) + B (p) r (p+1) = E } K(B {{ (p) } + B (p) ) = r (p) K B (p) r (p) nur ein B i wurde verändert: in B (p) alle Einträge Null bis auf B i also: r (p+1) = r (p) K i r (p) i K ii = r (p) + ρ i F i r (p) i, Oliver Deussen Lösungsverfahren K 13
Was geschieht eigentlich mit r (p)? r (p+1) = r (p) + ρ i F i r (p) i = r (p) + ρ i F i A i A r (p) i, oder: r (p+1) A = r (p) A i + ρ i F i r (p) i A i, physikalisch betrachtet: noch unverbrauchte Energie (r (p) i A i ) wird von Fläche i auf Flächen verteilt: aus: Cohen/Wallace: Radiosity and Realistic Image Synthesis Oliver Deussen Lösungsverfahren K 14
Progressive Refinement Abwandlung der Southwell-Iteration Ziel: nach eder Iteration Feedback über gesamte Beleuchtung Bestimme für edes Element B i und B i (Teil von B i, der pro Iteration auf andere Elemente verteilt werden soll) pro Iteration: Element mit maximaler Restenergie ( B i A i ) wird ausgewählt und B i wird auf die Elemente verteilt Oliver Deussen Lösungsverfahren K 15
Algorithmus for (edes i) { B i = E i ; B i = E i ; } while (keine Konvergenz) { i = Element mit maximalem B i A i ; für edes : { rad = B i ρ F i ; B = B + rad; B = B + rad; } B i = 0; Stelle Bild mit B als Intensitäten von Element dar } Oliver Deussen Lösungsverfahren K 16
Vergleich Gauss-Seidel und progressive Refinement aus: Cohen/Wallace: Radiosity and Realistic Image Synthesis Oliver Deussen Lösungsverfahren K 17
Addition ambienter Energie ambienter Term wird hinzugefügt grobe Approximation des reflektierten Lichts, das momentan noch nicht in Berechnung einbezogen wurde B = ri A i Ai (gewichtete Summe) B: durchschnittliche Energie, die noch nicht verteilt wurde Teil der Energie, der reflektiert wird: ρ = ρi A i Ai Oliver Deussen Lösungsverfahren K 18
Fortgesetzte Reflexion: R total = 1 + ρ + ρ 2 + ρ 3 +... = 1 1 ρ Ambient hinzuzufügende Strahlung: B ambient = B R total edes Element i reflektiert einen Teil ρ i dieser Strahlung B display i = B i + ρ i B ambient Oliver Deussen Lösungsverfahren K 19
Progressive Refinement mit ambienter Energie aus: Cohen/Wallace: Radiosity and Realistic Image Synthesis Oliver Deussen Lösungsverfahren K 20
Vergleich der Verfahren visuelle Konvergenz der Verfahren: aus: Cohen/Wallace: Radiosity and Realistic Image Synthesis Oliver Deussen Lösungsverfahren K 21
Überrelaxation Verallgemeinerung des Relaxierungsschrittes über ω: B (k+1) i = B (k) i + ω r(k) i K ii r (k+1) i = (1 ω) r (k) i Überrelaxation: ω > 1 schnellere Relaxierung für stabile Systeme Unterrelaxation: ω < 1 stabilere Relaxierung für instabile Systeme Oliver Deussen Lösungsverfahren K 22
Veränderung der Szene drei Arten der Veränderung: 1. Veränderung der Beleuchtung K bleibt unverändert K B = E muß neu gelöst werden sind die Änderungen von E gering, ist das alte B eine gute Ausgangslösung bei vielen Änderungen u.u seperate Berechnung der Szene für alle Lichtquellen, skalierte Addition der Ergebnisse weitere Möglichkeit: K invertieren Oliver Deussen Lösungsverfahren K 23
2. Veränderung der Oberflächeneigenschaften (Reflektivität) K ändert sich Formfaktoren müssen aber nicht neu berechnet werden kleine Änderungen: verwende altes B als Startlösung bei wenigen geänderten Flächen: unverteilte Energie B A verteilen: 3. Veränderung der Geometrie B = ρneu ρ alt ρ alt Formfaktoren und K ändern sich potentiell: eine Änderung verändert gesamte Matrix einige Vereinfachungen für einfache Veränderungen Oliver Deussen Lösungsverfahren K 24 B
Idee für ein sich bewegendes Obekt: Berechne Volumen durch welches das Obekt sich bewegt während Formfaktorberechnung: markiere Faktoren, deren Flächen durch das Volumen in der wechselseitigen Sichtbarkeit verändert werden. bei Bewegung: nur markierte Formfaktoren werden neu berechnet Oliver Deussen Lösungsverfahren K 25