Ray Tracing: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 3: Zeile 3:
Ray Tracing ist das Verfolgen eines beim [[Ray Casting]] erstellten Strahls in der Szene. Ziel der Verfolgung des Strahls ist es das erste Hindernis zu finden auf welches der Strahl auftrifft. Je nachdem für welchen Zweck der Strahl ausgesendet wurde, müssen unter Umständen nur bestimmte Objekte der Szene berücksichtigt werden oder für die Genauigkeit der Schnittprüfung können manchmal die umgebenden [[Bounding Volume | Bounding Volumes]] ausreichen während manchmal genau der getroffene Teil eines Objekts benötigt wird.
Ray Tracing ist das Verfolgen eines beim [[Ray Casting]] erstellten Strahls in der Szene. Ziel der Verfolgung des Strahls ist es das erste Hindernis zu finden auf welches der Strahl auftrifft. Je nachdem für welchen Zweck der Strahl ausgesendet wurde, müssen unter Umständen nur bestimmte Objekte der Szene berücksichtigt werden oder für die Genauigkeit der Schnittprüfung können manchmal die umgebenden [[Bounding Volume | Bounding Volumes]] ausreichen während manchmal genau der getroffene Teil eines Objekts benötigt wird.


Das Finden von Schnitten kann anhand der [[Ray]] und [[Bounding Volume]] [[CSharp#Structs | Structs]] sehr einfach implementiert werden. Die Schwierigkeit beim Ray Tracing ist es den nahsten Schnittpunkt effizient, also möglichst schnell zu finden.
Das Finden von Schnitten eines Strahls mit [[Bounding Volume]]s kann anhand der [[Ray]] und Bounding Volume [[CSharp#Structs | Structs]] sehr einfach implementiert werden. Wenn man die genauen Schnittpunkte eines Strahls mit den [[Model#Face | Triangles]] eines Modells berechnen möchte muss man dies manuell implementieren da dies von XNA standardmäßig nicht unterstützt wird. Der [[Triangle Intersection]] Artikel zeigt wie dies bei XNA implementiert werden kann.
 
Die Schwierigkeit beim Ray Tracing ist es den nahsten Schnittpunkt des Strahls effizient, also zum einen möglichst schnell und zum anderen mit einem möglichst geringen zusätzlichen Speicherplatzaufwand für Beschleunigungsstrukturen zu finden.


== Naives Ray Tracing ==
== Naives Ray Tracing ==

Version vom 1. Dezember 2010, 15:11 Uhr



Ray Tracing ist das Verfolgen eines beim Ray Casting erstellten Strahls in der Szene. Ziel der Verfolgung des Strahls ist es das erste Hindernis zu finden auf welches der Strahl auftrifft. Je nachdem für welchen Zweck der Strahl ausgesendet wurde, müssen unter Umständen nur bestimmte Objekte der Szene berücksichtigt werden oder für die Genauigkeit der Schnittprüfung können manchmal die umgebenden Bounding Volumes ausreichen während manchmal genau der getroffene Teil eines Objekts benötigt wird.

Das Finden von Schnitten eines Strahls mit Bounding Volumes kann anhand der Ray und Bounding Volume Structs sehr einfach implementiert werden. Wenn man die genauen Schnittpunkte eines Strahls mit den Triangles eines Modells berechnen möchte muss man dies manuell implementieren da dies von XNA standardmäßig nicht unterstützt wird. Der Triangle Intersection Artikel zeigt wie dies bei XNA implementiert werden kann.

Die Schwierigkeit beim Ray Tracing ist es den nahsten Schnittpunkt des Strahls effizient, also zum einen möglichst schnell und zum anderen mit einem möglichst geringen zusätzlichen Speicherplatzaufwand für Beschleunigungsstrukturen zu finden.

Naives Ray Tracing

to be continued ...