我正在显示一个场景,其中有一些立方体。相机采用的是透视法。一切都很好,但我希望垂直线是平行的(两点透视:http://en.wikipedia.org/wiki/Perspective_(graphical)#两点透视).
从正面观察立方体时:
我想要的是:
+-----+
| |
| |
+-----+
我得到的(夸大的):
+--------+
\ /
\ /
+--+
我尝试过调整相机的视场角,但没有成功。
到目前为止我的尝试:
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);
伯克利大学有一个关于不同透视变换和您需要使用的矩阵的页面。两点透视变换为:
_ _
| 1 0 0 sin(q)/d |
| 0 1 0 0 |
| 0 0 1 cos(q)/d |
|_ 0 0 0 0 _|
Where q
是用于旋转点(而不是轴)的角度,d
无法解释(!),但我认为这是相机距焦平面的距离。
![enter image description here](https://i.stack.imgur.com/dsams.gif)
Source
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)