Jedes Patch oder jede Kugel wird als Lichtquelle betrachtet, jede Lichtquelle ist ein Körper, empfängt Licht und sendet welches aus. Es gibt auch Lichtquellen die den Lichtquellen des Raytracings entsprechen, also keine Ausdehnung besitzen und somit eine Außnahme bilden.
Jetzt wird mit der Iteration, wie bei dem ,,Progressive Radiosity'' begonnen. Mathematisch ist die Helligkeit eines Lichtpunktes wie folgt zu beschrieben:
Ia = Max I, 1 ... n
wobei
I 1 ... n die Helligkeit aller anderen Lichtquellen ist.
Hier ist zu sehen das ein ähnliches Gleichungssystem wie bei beim Radiosity entsteht. Nur das hier der Formfaktor entfällt und daß keine Summe gebildet wird. Licht braucht nicht aufsummiert werden! Licht löscht sich gegenseitig aus, dies kann man einfach beobachten wenn man mehrere Lichtquellen auf eine Weiße Fläche richtet, überlappen sich mehrere Lichtquellen auf einer Fläche so ist die Stelle die von mehreren Lichtquellen bestrahlt wird nicht heller als der Anteil der nur von der stärksten Lichtquelle beschienen wird. Der gleiche Effekt entsteht bei einem Bildschirm, wird dieser von vorn mit einer Lampe beschienen und von hinten durch ein Bild, wird das Bild nicht heller, im Gegenteil es erscheint dunkler je heller die Lichtquelle ist die die Leuchtschicht von vorn bescheint, ist die Lichtquelle von vorn auso auf jedem Fleck des Bildschirmes heller als das darzustellende Bild, sieht man vom Bild nichts mehr.
Aufgrund der Maximalwertrechnung kann mit dem ,,Progressive Radiosity'' begonnen werden. Es wird wie beim Radiosity mit der stärksten Lichtquelle begonnen diese zu verteilen. Da keine Formfaktoren berechnet werden kann ein einfaches Physikalisches Modell der Lichtverteilung angewendet werden. Diese Berechnung ist genauso wie beim Raytracing. Mann kann auch sagen es wird die Lichtverteilung mittels Raytracing berechnet. Somit kann auch eine Verteilung durch durchsichtige Körper hindurch und von spiegelnden Körpern weg, berechnet werden.
Die Iteration ist beendet wenn die Schleife durch alle Patches gelaufen ist. Die wichtigste Abbruchbedingung des Radiosity, die noch zu verteilende Energie des Gesamtsystems <= eps, gibt es bei der Lichtstärkenverteilung nicht. Im Gegenteil, durch die Verteilung des Lichtes wird es im Bild heller und somit ist die Summe aller Lichtstärken nach jedem Iterationsschritt größer, also es wird heller. Eigentlich ein logisch zu erklärendes Ergebnis.
Ob das Verfahren konvergiert ist Anhand der zu verteilenden Lichtstärke zu sehen, diese wird immer kleiner, da die Lichtstärke der Lichtempfangenden Fläche auf jeden Fall kleiner ist als die Lichtstärke der Lichtquelle, wird die zu verteilende Lichtstärke immer kleiner. Hier kann eine Abbruchbedingung gewählt werden, zum Beispiel wenn bei einer Lichtstärke von 0.0001 die Fläche von Schwarz nicht mehr zu unterscheiden sein, so braucht man die restlichen Patches nicht mehr zu verteilen, da das Ergebniss schon genau genug berechnet ist.
Beispiel der Iteration in C++:
void radios::verteile(void) { longint x; for (x=0; x<(anzpatches-1); x++) { // suche stärkste Lichtquelle setmaxarray(x); // verteile das Licht verteile_licht(x, x+1, anzpatches); } }