拡張現実アプリケーションの透視投影をまだ実装しています。このスレッドで Aldream から説明されている、ビューポートの計算やその他のカメラに関する質問を既にいくつか行っています。
ただし、現時点では有用な値は得られません。これは、デカルト座標空間の計算に依存していると思います。
緯度、経度、高度をデカルト座標空間に変換する方法はいくつかありましたが、どれも正しく機能していないようです。現在、私はECEF(地球中心)を使用していますが、ハバーシン式と三角法(2点間の距離と方位からxとyを計算する)の組み合わせなど、さまざまな計算も試しました。
だから私の質問は:
デカルト座標空間は透視投影にどのように影響しますか? 単位をどこで「補正」する必要がありますか?(たとえば、メートルまたはセンチメートルを使用している場合)?
たとえば、カメラが (0,0,2m の高さ) にあり、ポイントが (10,10,0) にあるとします。これで、ウィキペディアで言及されている関数を簡単に使用でき、その後、他のスレッド (上記) で説明されている dx、dy、dz の変換を使用できます。私がまだ得ていないこと: この投影法は、座標系の単位が何であるかをどのように「認識」していますか? これは私が現在行っている間違いだと思います。座標系の単位を扱っていないため、投影から適切な値を取得できません。
単位がセンチメートルの座標系を使用している場合、透視投影のすべての値が増加しています。このユニットの問題をどこで「解決」する必要がありますか? カメラの幅と高さをピクセルからメートルに「変換」する必要がありますか? 座標系をピクセルに変換する必要がありますか? この状況を処理するには、どの座標系を使用する必要がありますか? 私の問題を理解していただければ幸いです。
編集:私はそれを自分で解決しました。 座標系を ecef から独自の座標系に変更し (haversine と方位を使用して x、y、z を計算)、適切な値が得られました。:)