Стандартный способ изменения размера элемента управления DirectX
Я хотел бы знать стандартный метод изменения размера моего элемента управления DirectX. Модель отображается в элементе управления, и я хочу, чтобы после изменения размера она была того же размера, только больше ее среды должно быть видно.
Мне удалось сделать это с помощью сброса буферов области просмотра и swapchain, но я мог сделать это и другим способом (перемещение камеры), и, возможно, других, о которых я не думал. Я просто не знаю, какой это "лучший" способ.
1 ответ
Изменение размера области просмотра должно показывать только "больше" области просмотра в зависимости от изменения соотношения сторон. Например, если область просмотра удваивается по ширине и высоте, соотношение сторон будет одинаковым, поэтому будет показано то же изображение, только большего размера.
Напротив, перемещение камеры изменит количество просматриваемого изображения, например, если вы вернете камеру назад, вы увидите больше. Тем не менее, это может быть не то, что вы ищете. Вы физически перемещаете камеру в другое место, а не просто меняете свойства вида.
Вероятно, вам нужно изменить свойства проецирования камеры, что, вероятно, будет сделано с помощью "PerspectiveFovLH", вход для которого: ("поле зрения", "соотношение сторон", "z около плоскости", "z"). дальний самолет "). Расширение поля зрения (FOV) позволит вам увидеть больше сцены. Изменение соотношения сторон будет масштабироваться соответствующим образом. Обычно соотношение сторон должно быть соотношением между шириной и высотой экрана, и, если вы хотите, чтобы экран большего размера отображался более широко, масштабируйте поле обзора в соответствии с размером экрана.