![]() |
|||||
![]() |
![]() |
![]() |
![]() |
||
|
6.1 Raytracing6.1.1 EinführungDas Raytracingverfahren war das erste Beleuchtungsmodell, das die Interaktion zwischen Objekten berücksichtigt. Diese Modelle werden globale Beleuchtungsmodelle genannt. Bilder, die mit diesem Verfahren berechnet werden, erkennt man zum einen an den glänzenden und spiegelnden Oberflächen und zum anderen an den Schlagschatten, die durch Punktlichtquellen mit scharfen Rändern erzeugt werden. Die Grundidee des
Raytracings ist die Umkehrung des Sehprozesses. Physisch werden Photonen
von einer Lichtquelle ausgesandt. Kleine Mengen dieser Teilchen gelangen
direkt, oder durch Reflexion in das menschliche Auge, wo die Schwingungsenergie
der Teilchen, an das Gehirn weitergeleitet, als Farbwert interpretiert
wird. Ein einfaches Modell simuliert diesen Vorgang, indem es die von
der Lichtquelle ausgesandten Photonen als Lichtstrahl verfolgt. Dieses
Verfahren wäre sehr rechenaufwändig, weil auch solche Lichtstrahlen
verfolgt werden, die nicht das Auge des Betrachters treffen. Aus diesem
Grund wird nicht der Lichtstrahl verfolgt, sondern der Sehstrahl vom Betrachtungspunkt. 6.1.2 Das VerfahrenBei dem Verfahren von Witthed wird von einem Betrachtungspunkt aus ein Sehstrahl durch jedes Pixel der Bildebene gelegt (s. Abbildung 1). Trifft der Sehstrahl auf ein Objekt, so bestimmen die vorhandenen Lichtquellen und die Objektoberfläche die Farbe des Pixels. Um den Anteil jeder Lichtquelle für den Punkt auf der Oberfläche zu bestimmen, wird zu jeder Lichtquelle ein Strahl gesendet. Trifft dieser genannte Strahl auf ein dazwischen liegendes Objekt, so wird die Lichtquelle nicht in die Intensitätsberechnung mit einbezogen, da der Oberflächenpunkt von ihr nicht direkt beleuchtet wird. Für die Intensitätsberechnung muss der Oberflächentyp berücksichtigt werden. Es werden drei Arten von Oberflächen unterschieden :
Bei matten Oberflächen
wird die Intensität durch Addition der erreichbaren Lichtquellen
berechnet.
6.1.3 Beleuchtungmodell von WhittedZur Intensitätsberechnung an den Objektoberflächen wird das von Whitted beschriebene Beleuchtungsmodell benutzt.
Trifft der Sehstrahl
auf ein Objekt im Punkt P, so wird die Intensität an diesem Punkt
durch die Gleichung 6.1 berechnet (Abbildung
3). Die ersten beiden Terme entsprechen der Schattierungsfunktion
des Lambertreflektierers Tabelle 1 zeigt die verwendeten Parameter im Detail :
Tabelle
1
6.1.4 VerbesserungenDas Resultat dieser Berechnung lässt sich noch verbessern, indem der Spiegelungsterm um das Beleuchtungsmodell von Phong erweitert wird. Die folgende Gleichung berücksichtigt die Spiegelung nach Phong mit dem lokalen Reflexionsvektor R und dem Vektor A zum Betrachter. Der Strahlenverfolgungsalgorithmus
ist in seiner bis jetzt beschriebenen Form sehr anfällig für
Diskretisierungsfehler, da kleine Objekte möglicherweise nicht erfasst
werde, bzw. Objektkanten ungenau dargestellt werden. Um diesen Effekt
zu reduzieren, werden mehrere Sehstrahlen durch ein Pixel (z.B. 3 x 3
Strahlen) geschickt (super sampling). Die Farbe des Pixels wird durch
anschließende Mittelwertbildung der Sehstrahlen bestimmt. 6.1.5 AppletDas folgende Applet visualisiert den Algorithmus von Whitted. Anzumerken ist, dass die Szene mit Unterstützung von OpenGL, bzw DirectX berechnet wird und folgende Darstellungfehler gegenüber dem Raytracing enthält:
|
![]() |
![]() |
![]() |