2008-10-06 2 views
2

Я использую SlimDX/C# для записи приложения Direct3D. Я настроил камеру в соответствии с текстовым полем образом:Проблема с Direct3D Camera

 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. Почему это и что может быть неправильно?

ответ

1

Я уже выяснил проблему и ответ.

По-видимому, я действительно масштабировал сетку и соответствовал соотношению сторон, и применяю Matrix.Scaling после Matrix.RotationYawPitchRoll. Когда я поворачиваю сетку, обращенную вперед, я понимаю, что она выглядит одинаково независимо от вертикали или горизонтали, масштабирование растягивает ее в сторону, и я не вращаюсь. Меняйте матрицу 2, чтобы исправить мою проблему. Спасибо в любом случае