-1

ここに示すように、xz平面にグリッドを投影したい:

わたしは

そのために、x と z の範囲が [-1|1] の頂点グリッドを作成しました。シェーダーでは、頂点の xz スクリーン座標に View-Projection マトリックスの逆数を掛けます。次に、新しいワールドの xz 座標に応じて高さを調整し、最後にこれらの座標を View-Projection マトリックスで乗算してスクリーン空間に戻します。

理由はわかりませんが、非常に奇妙な飛行機が画面に表示されます。使用する数学演算は正しいですか?

4

1 に答える 1

0

最初に作成するグリッドは、投影空間または実際のスクリーン座標ですか? ビュー投影行列の逆数でのみ変換してワールド座標に変換するため、投影空間にあるように聞こえます。「ウィンドウ」マトリックスも含める必要があると思います。つまり、View-Projection-Window マトリックスの逆数で変換します(同様に、画面の座標に戻ります)。

編集:

私はおそらくあなたが何をしようとしているのかを正確に理解していないので、ここでいくつか質問を返します. :)

質問のスクリーンショットに示されているグリッドを取得して、それを世界の zx 座標に投影しようとしていますか? もしそうなら、なぜ zx 値のグリッドから始めるのですか? また、それらに逆ビュー マトリックスを適用すると、カメラが z に沿って見えるため、確実に線が表示されますが、2 番目のスクリーンショットでは平面を取得していることがわかります。私は少し混乱しています。

于 2009-10-24T19:08:19.893 に答える