Обратная перспектива - PullRequest
       33

Обратная перспектива

1 голос
/ 02 августа 2011

Как я могу отменить эффекты перспективной проекции (в Direct3D) на элемент, указанный на изображении ниже.Я хочу, чтобы он выглядел как прямоугольный баннер (избавьтесь от видимого эффекта трапеции).

example

Матрица просмотра настроена с камерой на (0.0f, 0.8f,2.5f), указывая на (0, 0, 0), и указанный элемент рисуется параллельно оси x.

Я пытался нарисовать этот элемент с помощью матрицы ортогональной проекции, однако я застряло том, как узнать его координаты на экране, когда в перспективе, так что все выстраиваются в линию при рисовании в ортогональной проекции.Это часть анимации, в которой этот элемент фокусируется, когда он вращается вокруг оси y.

1 Ответ

0 голосов
/ 02 августа 2011

Вместо того, чтобы выровнять рамку с осями, вам просто нужно отрегулировать ее так, чтобы она была плоской в ​​направлении обзора камеры.Вектор нормали, указывающий на переднюю часть элемента, должен указывать прямо на камеру.Я думаю, что Direct3D имеет функцию LookAt, которую вы можете использовать для этого.

Вам не нужно связываться с матрицей проекции, если только вы не хотите избавиться от масштабирования расстояния.

...