2008-10-06 125 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矩陣確實解決了我的問題。 無論如何感謝