Ray: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
{{Stub}} | |||
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! | ||
Version vom 17. Dezember 2009, 13:07 Uhr
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[1] Struct. Diese verfügt bereits über Intersect-Methoden für verschiedene Bounding Volumes, welche z.B. beim Ray Tracing direkt verwendet werden können, ohne dass man die dahinterliegende Mathematik kennen muss.
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:
<math>\vec s = \vec p_r + d * \vec r_r \!\,</math>
<math>\vec s \!\,</math> ist der Schnittpunkt
<math>\vec p_r \!\,</math> ist die Position des Rays
<math>d \!\,</math> ist der Abstand zum Schnittpunkt auf dem Ray
<math>\vec r_r \!\,</math> ist der Richtungsvektor des Rays
Referenzen
- ↑ MSDN Artikel zur Ray Structure