Graphics Reference
In-Depth Information
Abb. 9.79 Einbettung der Fa-
cette in einem rechteckigen
Container
der Startpunkt eines Primärstrahls {s} beginnt auf der virtuellen Projektionsflä-
che im Punkt . xv ; yv ;0/ , damit hat jeder Primärstrahl die Gleichung:
die Facetten sind sortiert und ihre maximalen/minimalen Abmessungen auf der
Projektionsfläche sind ermittelt. Mit diesen lässt sich ein rechteckiger Container
bilden, in dem die Facette eingebettet ist. Möglicherweise schneidet ein Strahl
durch Pixel P
die Facette, wenn P innerhalb des Containers liegt. Erst
wenn dies der Fall ist wird detailliert geprüft, ob der Schnitt innerhalb der Facette
liegt.
.
xv
;
yv
;0/
der
virtuellen Projektionsfläche generiert und durch die Szene verfolgt. Jede einzelne
Strahlverfolgung ist dabei unabhängig vom Verlauf/Ergebnis jedes anderen Strahls.
Prinzipiell kann man die Berechnung für jeden einzelnen Primärstrahl als eigen-
ständigen Prozess betrachten und diese Prozesse parallelisieren. Bei Rechnern mit
nur einem Prozessor macht das wenig Sinn. Hat man aber ein Prozesscluster zur
Verfügung, verkürzt sich die Berechnungszeit erheblich.
Die Strahlverfolgung liefert einen Farbwert für den Punkt
Nacheinander werden alle Primärstrahlen ausgehend vom Punkt
.
xv
;
yv
;0/
,derdem
realen Pixel unmittelbar zugewiesen wird (was nicht immer zweckmäßig ist), oder
der z. B. in einem einspaltigen Array
.
xv
;
yv
;0/
Dim RaySpalte() As Color
extern zwischengespeichert wird. Der Bildaufbau erfolgt dann später mit allen fer-
tigen Spalten. Da RayTracing von der Beobachterposition abhängig ist, gelten die
oben ermittelten Daten nicht für andere Beobachterpositionen, sondern müssen für
diese neu berechnet werden.
Für den eigentlichen RayTracing-Kern sind in der Literatur unzählige, mehr oder
weniger detaillierte Pseudocodes verfügbar. Abweichend von dieser Praxis wird
Search WWH ::




Custom Search