Cでレイトレーサーに取り組んでいます。レイプレーンの交差の計算を理解しようとしています。私は持っている
d = ((Po-Lo) (ドット) N) / (L (ドット) N)
今、私が正しければ...
n - the planes normal ray
Po = single point on the plane
L = the vector that represents the ray I am shooting
Lo = a point on the line
これがどのように機能するかについて私は混乱しています。ピクセルごとに移動する場合、線上の点 (Lo) は平面に着陸する必要がありますか? それが本当なら、キャストしている光線 (L) の方向ベクトルでそのポイントを表すことはできませんか?
これを完全に複雑にしすぎているように感じますが、コードでこれを機能させる方法がまったくわかりません。
編集:
d = a scalar in the real world domain.
では、平面と光線 (私が見ている点) が交差するためには、d をゼロにする必要がありますか? そして、方向ベクトル座標を使用して、線上のその点を表すことができますか>