我正在使用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) . 其他一切看起来都很正常。
Matrix.RotationYawPitchRoll
mesh.DrawSubset(0)
我的问题是,我的三维网格(薄方形框),当从侧面看,并站垂直,它看起来比它的水平厚。我试图改变 AspectRatio 比1更糟。所以经过反复试验,我发现当 纵横比 大约是2.6。为什么会这样?可能有什么问题?
AspectRatio
纵横比
我已经找出问题并回答了。
显然,我缩放了网格,并匹配了纵横比,然后我应用了矩阵。在矩阵后缩放。旋转yawpitchroll。当我朝前旋转网格时,我意识到无论垂直还是水平,网格看起来都是一样的,缩放比例是将它向侧面拉伸,而不是我如何旋转。交换2个矩阵可以解决我的问题。 无论如何谢谢