Ray: Unterschied zwischen den Versionen
Aus Das Sopra Wiki
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| Zeile 1: | Zeile 1: | ||
Ein Ray (deutsch: Strahl) ist prinzipiell eine Halbgerade. Rays werden durch eine Position und einen Richtungsvektor beschrieben. Zu beachten ist hierbei dass der Richtungsvektor normalisiert sein muss! | Ein Ray (deutsch: Strahl) ist prinzipiell eine Halbgerade. Rays werden durch eine Position und einen Richtungsvektor beschrieben. Zu beachten ist hierbei dass der Richtungsvektor normalisiert sein muss! | ||
In XNA gibt es dazu die Ray<ref>[http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.ray.aspx MSDN Artikel] zur Ray Structure</ref> [[Struct]]. Diese verfügt bereits über Intersect-Methoden für verschiedene [[Bounding Volume|Bounding Volumes]], welche z.B. beim [[Ray Tracing]] direkt verwendet werden können, ohne dass man die dahinterliegende Mathematik kennen muss. | In XNA gibt es dazu die Ray<ref>[http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.ray.aspx MSDN Artikel] zur Ray Structure</ref> [[CSharp#Structs|Struct]]. Diese verfügt bereits über Intersect-Methoden für verschiedene [[Bounding Volume|Bounding Volumes]], welche z.B. beim [[Ray Tracing]] direkt verwendet werden können, ohne dass man die dahinterliegende Mathematik kennen muss. | ||
== Berechnung des Schnittpunkts == | == Berechnung des Schnittpunkts == | ||
Wenn man die Ray [[Struct]] von XNA und ihre Intersect-Methoden verwendet, dann bekommt man als Ergebnis für eine Schnittberechnung lediglich die Entfernung auf dem Ray zurück, nicht aber den Schnittpunk. Der Schnittpunkt lässt sich alledings leicht aus den Daten des Rays berechnen: | Wenn man die Ray [[CSharp#Structs|Struct]] von XNA und ihre Intersect-Methoden verwendet, dann bekommt man als Ergebnis für eine Schnittberechnung lediglich die Entfernung auf dem Ray zurück, nicht aber den Schnittpunk. Der Schnittpunkt lässt sich alledings leicht aus den Daten des Rays berechnen: | ||
<br/><br/> | <br/><br/> | ||
<math>\vec s = \vec p_r + d * \vec r_r \!\,</math> | <math>\vec s = \vec p_r + d * \vec r_r \!\,</math> | ||
