我正在使用SlimDX / C#编写Direct3D应用程序。我按照文本框方式配置了相机:

private float cameraZ = 5.0f;
camera = new Camera();
camera.FieldOfView =(float)(Math.PI/2);
camera.NearPlane = 0.5f;
camera.FarPlane = 1000.0f;
camera.Location = new Vector3(0.0f, 0.0f, cameraZ);
camera.Target = Vector3.Zero;
camera.AspectRatio = (float)InitialWidth / InitialHeight;

绘图和旋转方法都是不错的 Matrix.RotationYawPitchRoll mesh.DrawSubset(0)。其他一切看似正常。

我的问题是我的3D网格(薄方框),从侧面看,垂直站立,看起来比水平时更厚。我试图将 AspectRatio 更改为1,这更糟糕。因此,通过反复试验,我发现当 AspectRatio 大约是2.6时,它看起来很正常。为什么会这样,哪些可能是错的?

有帮助吗?

解决方案

我已经找到问题并已经回答了。

显然我确实缩放了网格,并匹配宽高比,然后在Matrix.RotationYawPitchRoll之后应用Matrix.Scaling。当我将网格向前旋转时,我意识到无论垂直还是水平,它看起来都是一样的,缩放是横向拉伸,而不是我旋转的方式。交换2矩阵确实解决了我的问题。 不管怎样,谢谢

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top