<メモ修正/トップに戻る>2006/04/30レイトレース・視点、視点ベクトル、三角を構成する頂点A,B,C でA>B、A>Cのベクトルを出して、その2つのベクトルの外積から法線が算出できる。 その法線と視点ベクトルとの内積を出す(この値をV)、Vが0の場合は平面と視点が平行のため交差点はない。 頂点A>視点のベクトルと法線との内積を出す(この値をG) T=G/Vで、Tが視点から交点までの距離を現す。Tがマイナス又は0の場合は裏面に対して交点がある。 視点+(視点ベクトル*T)で交点(P)が算出される。 ------------------------------------------------------- 交点が出たのでそれが三角内部に存在するかの判定を行う。 頂点A>頂点Bと頂点A>交点Pの二つのベクトルから外積を出す。 頂点B>頂点Cと頂点B>交点Pの二つのベクトルから外積を出す。 頂点C>頂点Aと頂点C>交点Pの二つのベクトルから外積を出す。 3つの外積の各要素の符号(X、Y、X同士全部符号が同じ)だった場合交点Pは三角の中に存在する。 ------------------------------------------------------- 問題はGを算出する際のベクトルである、計算式では頂点A>視点のベクトルなのだが これをこのまま使うとTが逆転して裏になる。ので視点>頂点Aのベクトルとして計算している。 とりあえず正常に動作はしているが、理由は不明。うーん法線方向の問題かもしれん。 2005/04/05 MEMO
2002|05|06|07|08|09|10|11|12| |