Rayと三角形の交差判定
5/14 追記中
教科書
- 作者: Eric Lengyel,狩野智英
- 出版社/メーカー: ボーンデジタル
- 発売日: 2002/10/25
- メディア: 単行本(ソフトカバー)
- 購入: 7人 クリック: 293回
- この商品を含むブログ (50件) を見る
これのレイと三角形の交差のところ
4.2.1 直線と平面の交差
5.2.1 レイと三角形の交差
の理解が難航したので問題箇所に関してメモ。
texとか使ってみたかったしな。
平面の定義
点を通り方向に垂直な平面を
平面の式変形
から
として展開
ここで、
(ここでP'は位置を表す同次座標なので、w=1)
とすると
なんか同次座標が出てくるw
三角形平面
三角形の点を
とすると
から法線が求められる。
とおいて外積を展開して
Rayの定義
始点、方向のベクトル
同次座標に拡張して
Q'は位置ベクトルでV'は方向ベクトルなので4つ目の要素が1, 0になる
Rayと平面の交点
LV=0の時は交差しない
交点が三角形の内側にあるかの判定
3点と交点を2次元に射影してそれで判定する。
平面法線の要素の大きさでどの平面に射影するか選ぶ(法線要素の一番大きい軸を捨てる)
三角形
P_{0}, P_{1}, P_{2}
交点
P
に対して
e=P_{1}-P{0}, f=P_{2}-P{0}, g=P-P{0}
とすると
eを90度回転(どっち向きでもいい)する
ne=()e
もし
(ne\cdot f)(ne\cdot g)<0
(基準の辺eの同じ側にないということ)
なら三角形の内側に無いことになる。
三辺に対して判定する。
これでとりあえず実装に入れるというものデス。
実際には、Tomas Moller方式などもっと高速な方法を使うところですがぼちぼち。