Качающаяся / качающаяся камера - PullRequest
3 голосов
/ 21 мая 2011

Я некоторое время искал в интернете, решение ни с чем.То, что я хочу знать, это как реализовать качание / качание в 3D-камере в OpenGL (или DirectX), как в Minecraft, Call of Duty и т. Д. Я пробовал циклоиды, пока они работают, я не могу понять направлениеработать правильно.

1 Ответ

6 голосов
/ 21 мая 2011

Что вы думаете о следующем.

  1. вычислите cam_pos, cam_dest, cam_up как обычно.
  2. вычислить cam_right как крест (cam_pos, cam_up)
  3. создать поплавок camera_time (при ходьбе camera_time += delta_time;)
  4. вычислить offset_factor = sin(camera_time);

Затем вы можете вызвать gluLookAt или аналогичную функцию следующим образом.

gluLookAt(cam_pos + cam_right * offset_factor, cam_des + cam_right * offset_factort, cam_up)

Это заставит камеру поворачиваться справа налево. Вы можете добавить то же самое для вектора cam_up с некоторыми изменениями.

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