-
09-09-2019 - |
質問
私が使用している
worldview_inverse * (projection_inverse * vector)
ワールド空間座標に画面空間座標を変換します。 私が想定している。
(x,y,1,1)
しばらくます。 、遠く平面上のポイントに変換します
(x,y,-1,1)
は、近平面上の点に変換し、Iラインと交差視錐台内のすべてのオブジェクトを照会することができるラインを接続します。 形質転換後、私は、それぞれ.W成分によって得られた点を分割します。 これは、遠平面のために動作しますが、近い平面上の点は、何らかの形でワールド空間の原点に変換されます。
私は通常、それはないの後、投影の前に1であるので、これは、私が逆投影に供給しています1のWコンポーネントと関係していると思うし、私は逆投影をやっています。私が間違って何をしているのですか?
解決
私はこれが唯一の回避策ですけど、あなただけの遠点と視聴位置を使用して近くの平面の点を推定することができます。
near_point = view_position
+ (far_point - view_position) * (near_distance / far_distance)
あなたの本当の問題について。まず、Wによって分割することを忘れないでください!また、あなたの射影行列に応じて、あなたは、z = -1とは対照的に(X、Y、0,1)しようとしています。
near_point = worldview_inverse * (projection_inverse * vector)
near_point /= near_point.W
所属していません StackOverflow