1

重複の可能性:
法線ベクトルで指定された平面からXY平面への座標のマッピング

3D空間にあるドットの画面位置を取得するにはどうすればよいですか?

カメラの位置は0,0,0で、回転していません。

4

1 に答える 1

3

投影のタイプによって異なります。

標準的な透視投影は次のとおりです。

x' = (centre of viewport) - (half width of viewport) * x/z
y' = (centre of viewport) - (half height of viewport) * y/z

これにより、両方向に90度の視野が与えられ、zに沿って(0、0、0)から見ていると想定されます。

ビューポートが正方形ではないことが多いという事実に対処するために、投影の前にジオメトリをスケーリングするのが通常です。また、zが0の場合、結果は未定義であり、zが0に近づくにつれて問題が発生することに気付くでしょう。また、正と負の両方のzを、どちらかがカメラの後ろにある必要があるときに画面にマッピングします。通常、zが特定のしきい値よりも小さいジオメトリをトリミング(またはポイントを破棄)します。

ドットに関しては、(正のzを維持していると仮定して)abs(x)> zまたはabs(y)> zの場合、ドットが画面外にあることにも注意してください。フルジオメトリに移動すると、その観測を使用して画面の端でクリップし、ピクセルごとのテストを節約できます。

于 2012-12-08T00:32:32.793 に答える