2

我正在使用 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 左右时看起来很正常。为什么会这样,可能有什么问题?

4

1 回答 1

1

我已经弄清楚了问题并回答了。

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

于 2008-10-06T07:18:16.430 回答