3

いくつかの立方体を含むシーンを表示しています。カメラは遠近法を使用しています。すべてうまく機能しますが、垂直線を平行にしたいと思います (2 点遠近法: http://en.wikipedia.org/wiki/Perspective_(graphical)#Two-point_perspective )。

立方体を正面から見た場合:

私が欲しいもの:

+-----+
|     |
|     |
+-----+

私が得ているもの(誇張):

+--------+
 \      /
  \    /
   +--+

カメラのFOVをいじってみましたが、役に立ちませんでした。

これまでの私の試み:

Camera = SceneManager.CreateCamera(CameraName);
float q = 45;
float d = 5000f;
Matrix4 m = new Matrix4(
    1, 0, 0, (float)(Math.Sin(q)/d),
    0, 1, 0, 0,
    0, 0, 1, (float)(Math.Cos(q)/d),
    0, 0, 0, 0
    );
Camera.SetCustomProjectionMatrix(true, m);
4

1 に答える 1

5

バークレー大学には、使用する必要があるさまざまな視点変換と行列に関するページがあります。2 点透視変換は次のとおりです。

  _                    _
 |  1   0   0 sin(q)/d  |
 |  0   1   0     0     |
 |  0   0   1 cos(q)/d  |
 |_ 0   0   0     0    _|

q(軸ではなく)ポイントを回転させるために使用される角度はどこにあり、d説明されていません(!)が、焦点面からのカメラの距離だと思います。

ここに画像の説明を入力

ソース

于 2012-06-03T10:43:18.037 に答える