Atmosphärische Streulichtberechnungen (Realtime Atmospheric Scattering)

Ob dynamische Tageszeitänderungen oder eine realistische Planetendarstellung, was noch vor wenigen Jahren undenkbar erschien, gehört mittlerweile zum Alltag eines 3D-Programmierers. Physikalische Streulichtberechnungen bilden die Grundlage für die Darstellung der korrekten Himmelsfarben in Abhängigkeit vom Sonnenstand und der Kameraposition innerhalb bzw. außerhalb der Atmosphäre.
Treffen die einfallenden Lichtstrahlen auf Teilchen (Luftmoleküle) in der Atmosphäre, deren Durchmesser deutlich kleiner sind als die Wellenlängen des sichtbaren Lichts, kommt es zur sogenannten Rayleigh-Streuung. Während die roten Lichtanteile die Atmosphäre nahezu ungestört durchqueren können, wird blaues Licht sehr viel stärker gestreut. Als Folge davon erscheint der Himmel am Tage blau und in den Dämmerungsstunden rötlich.
Im Unterschied dazu streuen Teilchen, deren Durchmesser in etwa den Wellenlängen des sichtbaren Lichts entsprechen (Aerosole, Rauch, Nebel), das einfallende Licht unabhängig von seiner Farbe auf gleiche Weise. Dieser als Mie-Streuung bekannte Vorgang ist für den grauen Himmel an einem regnerischen Tag oder bei Smog verantwortlich.

Die nachfolgenden Links sollten Ihnen bei der Einarbeitung in das doch recht komplexe Thema sowie bei der praktischen Anwendung (Integration in ein Spieleprojekt bzw. eine 3D-Engine) behilflich sein:



Ausgewählte Links:


Atmosphären-Darstellung als Post-Processing-Effekt (OpenGL-Programmbeispiel):



Eine verständliche Einführung in die physikalischen Grundlagen der Atmosphärischen-Streulichtberechnungen:



Sean O’Neil: Accurate Atmospheric Scattering (GPU Gems 2 Artikel+Programmbeispiel):