2008-10-06 149 views
2

我正在使用SlimDX/C#编写Direct3D应用程序。我配置的摄像机按文本框方式: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)。一切正常

我的问题是,我的三维网格(薄方盒),从侧面看,垂直站立时,它显得比它的水平时更厚。我试图将AspectRatio更改为1,情况更糟。所以通过试验和错误,我发现当AspectRatio在2.6左右时看起来很正常。为什么会这样,有什么可能是错的?

回答

1

我已经找到了问题和答案。

显然我没有缩放网格,并匹配纵横比,我应用Matrix.RotationYawPitchRoll后的Matrix.Scaling。当我向前旋转网格时,只有我意识到它看起来不管是垂直还是水平都是相同的,缩放会横向延伸,而不会旋转。交换2矩阵确实解决了我的问题。 无论如何感谢