2012-03-30 14 views
0

頂点がある場合、その頂点がカメラの左または右にあるかどうかを決定できますか? 私がこれで見つけたすべての情報は、2Dで行う方法を示していますが、3Dが必要です。頂点がカメラの左または右にあるかどうかを確認する

カメラのルックベクトルをカメラの位置に追加すると、私は必要な光線を得られます。 しかし、上のベクトルも方程式に投げ込まれなければならないので、ややこしいようです。

私はアップベクトル=(0,1,0)とルックベクトル=(0,0,1)を作成し、その変換を頂点に適用する変換を見つけなければならないと思います。次に、頂点のx座標がカメラの座標よりも小さい場合は左に、そうでなければ右側にあると言うことができます。

答えて

0

ベクトルをView-Projectionマトリックスで乗算するのと同じくらい簡単です。ここ は、それはあなたが完全な行列の乗算を行う必要はありませんがに沸く何

private bool left(Vector3 v) 
    { 
     if (viewProjection.M11 * v.X + viewProjection.M21 * v.Y + viewProjection.M31 * v.Z + viewProjection.M41 < 0) 
      return true; 
     return false; 
    } 
(あなただけ見て結果の行列の1つのセクションを確認する必要が頂点にあるスクリーンのどちら側)

viewProjectionは明らかにビューマトリックス*投影行列です

関連する問題