Ray: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
Florian (Diskussion | Beiträge)
Die Seite wurde neu angelegt: Ein Ray (deutsch: Strahl) ist prinzipiell eine Halbgerade. Rays werden durch eine Position und einen Richtungsvektor beschrieben. In XNA gibt es dazu die Ray<ref>[[htt...
 
LeonH (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
(5 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Ein Ray (deutsch: Strahl) ist prinzipiell eine Halbgerade. Rays werden durch eine Position und einen Richtungsvektor beschrieben.
{{Stub}}
{{löschen}}
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]] (Namespace Microsoft.Xna.Framework). 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> [[Struct]]. Diese verfügt bereits über Intersect-Methoden für verschiedene [[Bounding Volume]]s, 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:
<br/><br/>
<math>\vec s = \vec p_r + d * \vec r_r \!\,</math>
 
<math>\vec s \!\,</math> ist der Schnittpunkt<br/>
<math>\vec p_r \!\,</math> ist die Position des Rays<br/>
<math>d \!\,</math> ist der Abstand zum Schnittpunkt auf dem Ray<br/>
<math>\vec r_r \!\,</math> ist der Richtungsvektor des Rays<br/><br/>


== Referenzen ==
== Referenzen ==
<references />
<references />
[[Kategorie:Begriffe]]
[[Kategorie:Begriffe]]
[[Kategorie:MS01]]
[[Kategorie:MS02]]

Aktuelle Version vom 18. Oktober 2020, 14:00 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

  1. MSDN Artikel zur Ray Structure