масштабировать случайную 3d модель для размещения в окне просмотра - PullRequest
2 голосов
/ 03 апреля 2010

Как я могу масштабировать случайную 3d модель, чтобы она поместилась в окне просмотра opengl? Я могу центрировать модель в середине порта просмотра. Как я масштабирую это, чтобы соответствовать этому в области просмотра. Модель может быть самолетом, конусом, трехмерным объектом или любой другой случайной моделью.

Ценю любую помощь.

1 Ответ

5 голосов
/ 03 апреля 2010

Вам понадобится следующая информация:

  • r: радиус ограничивающей сферы объекта
  • z: расстояние от объекта до камеры
  • fovy: вертикальное поле зрения (скажем, в градусах) камеры, как вы могли бы передать его gluPerspective

Сделайте небольшой набросок ситуации, найдите там прямоугольный треугольник и определите максимальный радиус сферы, который бы точно подходил. Учитывая приведенные выше параметры, вы должны найти r_max = z * sin(fovy*M_PI/180 / 2).

Исходя из этого, масштабный коэффициент равен r_max / r.

Все это предполагает, что область просмотра шире, чем высока; в противном случае вы должны сначала получить fovx и использовать его вместо fovy.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...