Direct3D Соотношение сторон камеры / проблема масштабирования - PullRequest
2 голосов
/ 06 октября 2008

Я использую 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. Почему это так и что может быть не так?

1 Ответ

1 голос
/ 06 октября 2008

Я разобрался с проблемой и уже ответил.

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

...