Mein Raytracing Blog

Implementieren des Eines Raytracers

Advertisements

Hier beim Raytracing Blog wird viel über mathematische Konzepte hinter dem Raytracing Verfahren geredet. Heute geht es allerdings um die Praxis: Die Implementierung.

Zuerst sollte man einen Moment Zeit nehmen, um sich zu versichern, dass die Ausbreitung von Licht in der Natur nur durch eine unzählige Anzahl von Lichtquellen zustande kommt, welche Licht geradeaus fortbewegen bis sie ein Objekt oder die Oberfläche unseres Auges getroffen haben. Im Fall der Kollision eines Objektes kann der Strahl mit anderer Richtung und Eigenschaften weitergehen und womöglich trotzdem noch das Auge erreichen.

Raytracing ist daher nicht nur ein Algorithmus, sondern ein physikalischer Prozess der sich konstant um uns herum abspielt. Der einzige unterschied ist, dass beim Raytracing Algorithmus die strahlen rückwärts vom Auge aus verfolgt werden.

Der Ray-Tracing-Algorithmus nimmt ein Bild aus Pixeln. Für jedes Pixel in dem Bild, schießt sie einen primären Strahl in der Szene. Die Richtung dieses Primärstrahls wird durch das Verfolgen einer Linie von dem Auge zum Zentrum von diesem Pixel erhalten.

Sobald Richtung und Anfangsposition des Strahls festgelegt sind, wird für jedes Objekt in der Szene überprüft, ob es sich mit diesem Strahl irgendwo schneidet. In einigen Fällen wird der Primärstrahl mehr als ein Objekt schneiden. Wenn das passiert, wählen wir das Objekt, dessen Schnittpunkt am nächsten zum Auge ist.

Wir schießen dann ein Schattenstrahl vom Schnittpunkt zum Licht. Wenn dieser besondere Strahl kein Objekt auf dem Weg zum Licht schneidet, wird der Treffpunkt beleuchtet. Wenn er sich mit einem anderen Objekt schneidet, kommt es zu einem Schatten.

Wird diese Vorgehensweise für jeden Pixel im Bild wiederholt, so entsteht eine zweidimensionale Darstellung einer dreidimensionalen Szene.

Advertisements