Computergrafik
Radiosityberechnung
← Formfaktoren | ● | Beleuchtungsvergleich →
Berechnung der Lichtverteilung auf Oberflächen (Radiosity):
- Ziel: Berechnung der Lichtverteilung in einer 3D-Szene, inklusive indirekter Beleuchtung durch Reflexionen zwischen Oberflächen.
- Grundlagen:
- Jede Oberfläche in der Szene hat eine bestimmte Helligkeit, die durch den Intensitätsvektor $\vec{I}$ dargestellt wird.
- Oberflächen können auch selbst Licht abstrahlen, z.B. als Lichtquelle, beschrieben durch den Emissionsvektor $\vec{E}$.
- Der Lichttransport zwischen den Oberflächen wird durch die Matrix $M$ beschrieben.
- Jeder Eintrag $M_{ij}$ gibt an, wie viel Licht von Oberfläche $i$ zu Oberfläche $j$ gelangt.
- $M_{ij} = F_{ij} \cdot \rho_{ij}$, wobei:
- $F_{ij}$ der Formfaktor ist, der beschreibt, wie gut sich die Oberflächen “sehen” (abhängig von Geometrie und Abstand).
- $\rho_{ij}$ die diffuse Reflektivität ist, die beschreibt, wie stark die Oberfläche Licht reflektiert.
- Lichtverteilungsgleichung:
- Die Helligkeit jeder Oberfläche wird durch die folgende Gleichung berechnet:
- $ \vec{I}' = \vec{E} + M \cdot \vec{I} $
- Das bedeutet: Die neue Intensität $\vec{I}'$ einer Oberfläche ist die Summe aus dem von der Oberfläche emittierten Licht ($\vec{E}$) und dem von anderen Oberflächen reflektierten Licht ($M \cdot \vec{I}$).
- Die Helligkeit jeder Oberfläche wird durch die folgende Gleichung berechnet:
- Strahlungsgleichgewicht:
- Um die endgültige Helligkeit der Oberflächen zu berechnen, wird das Gleichgewicht des Lichts in der Szene bestimmt, beim dem $\vec{I}'$ gleich $\vec{I}$ ist:
- $ \vec{I_0} = \vec{E} + M \cdot \vec{I_0} $
- Diese Gleichung zeigt, dass die Lichtintensitäten $\vec{I_0}$ den stabilen Zustand darstellen, wenn das Licht lange genug zwischen den Oberflächen hin und her reflektiert wurde.
- Um die endgültige Helligkeit der Oberflächen zu berechnen, wird das Gleichgewicht des Lichts in der Szene bestimmt, beim dem $\vec{I}'$ gleich $\vec{I}$ ist:
- Lösung der Gleichung:
- Um $\vec{I_0}$ direkt zu berechnen, stellt man zunächst um:
- $(1 - M) \cdot \vec{I_0} = \vec{E}$
- Und erhält nach der Inversion folgende Formel:
- $ \vec{I_0} = \vec{E} \cdot (1 - M)^{-1} $
- Das Ergebnis $\vec{I_0}$ ist die endgültige Helligkeit der Oberflächen in der Szene, wenn alle Lichtreflexionen berücksichtigt sind.
- Um $\vec{I_0}$ direkt zu berechnen, stellt man zunächst um:
- Ergebnis:
- $\vec{I_0}$ repräsentiert die Helligkeit jeder Oberfläche in einer global diffus beleuchteten Szene.
- Diese Methode wird verwendet, um realistische Beleuchtungseffekte in 3D-Szenen zu erzeugen, insbesondere wenn Licht indirekt von Wänden, Böden und Objekten reflektiert wird.
- Praxis:
- In der Praxis ist die Invertierung von $(1 - M)$ mit dem Standard-Verfahren wie Gauss-Seidel ($O(n^3)$) zu teuer.
- Man verwendet daher iterative Näherungsverfahren (Stichwort: Shooting and Gathering).
← Formfaktoren | ● | Beleuchtungsvergleich →