Raytracing-Verfahren



Soviel vorweg zum Prinzip. Jetzt wollen wir uns die Mathematik hinter dem ganzen mal näher anschauen.


Ein Strahl sei definiert durch seinen Anfangspunkt und seinen Richtungsvektor.

Ein Objekt sei eine Menge von Punkten, zwischen denen sich Flächen aufspannen.

Jedes Objekt hat bestimmte Materialeigenschaften wie Farbe, Reflexionsanteil, Transparenz und Dichte.


Der Schnittest:

Legt man einen Strahl durch die Szene kann er entweder gar kein Objekt schneiden, ein einziges oder sogar mehrere. Die ersten beiden Fälle benötigen keine weitere Sonderbehandlung. Im letzten Fall jedoch ist es nötig, hereuszufinden welches Objekt vom Strahl als erstes getroffen wird. Es verdeckt dann nämlich die anderen, wodurch diese nicht weiter betrachtet werden müssen.


Man beginnt nun für jedes Objekt in der Szene zu testen, ob der Strahl es trifft. Hierfür geht man in unserer vorliegenden Datenstruktur alle Flächen durch aus denen das Objekt besteht und berechnet den Schnitt des Strahls mit der Ebene in der diese Fläche liegt. Gibt es einen Schnitt mit der Ebene (was recht häufig vorkommt), so wird geschaut, ob der Schnittpunkt innerhalb der Fläche liegt.

Bewahrheitet sich dies, so schneidet der Strahl diese Fläche. Der Schnittpunkt wird in eine Liste aufgenommen, danach wird mit der nächsten Fläche fortgefahren, bis alle Flächen des Objekts behandelt wurden. Dann folgt das nächste Objekt. Ist man alle Objekte durchgegangen, betrachtet man die erzeugte Liste und bestimmt nun den Punkt, der davon am dichtesten am Startpunkt des Strahls liegt. Für diesen Punkt und sein zugehöriges Objekt startet man dann zB. die Berechnung der Farbwerte.



Index

Beschleunigungsmöglichkeiten

Raytracing