2D アイソメトリック エンジンで世界をレンダリングしながら、舞台裏で 3D シミュレーションを行っています。私は以前に等角投影エンジンをやったことがなく、私の行列計算は一般的にさびているので問題があります。
私は射影行列を持っています。最も単純な形式は次のとおりです。
0.7 0.35 0
0 -0.87 0
-0.71 0.35 1
私のエンジンの座標系は左上が 0,0 で、+X が右/東、+Z が南であるため、いくつかの記号が反転しています。
さて、その逆は次のとおりです。
1.4080 0.5670 0.0000
0.0000 -1.1490 0.0000
1.0000 0.8050 1.0000
現在、これらのマトリックスはほとんど機能しています。
例えば
WC: 500,0,500 =画面: -1.44 , 350, 500 (X と Y は正しい)
WC: 0,0,500 =画面: -355 , 175, 500 (X と Y は再び正しい)
しかし、逆の方向に進む必要がある場合、便利な Z 値はもうありません。
Screen: -1.44, 350, 0 = WC: -2, -402.97, 0 (つまり、ゴミです。)
さらに、その Z 値がなくなるとすぐに、画面座標から世界座標を取得できなくなります。
ここでの回避策は何ですか?
編集
unproject のポイントは、マウス ピッキング用のレイを取得することです。
ここで私を台無しにしていたのは、私がしていたことに対する私の誤解だけのようです。