2016-04-29 5 views
-2

В настоящее время я кодирую свой собственный raytracer для школы, и у меня проблема с настройкой камеры.Вычисление вращения камеры в raytracer

Я знаю, где моя камера (сх, су, Cz) и я знаю, где он смотрит на (Lx, Ly, Lz)

Мне нужно преобразовать эти данные в: где моя камера (cX, cY, cZ) и его вращениеX и вращение Z

Я не так хорош в математике, если некоторые из вас могут дать мне немного помочь в этом? Спасибо вам большое!

+0

вы слышали углов Эйлера? [Это] (http://stackoverflow.com/questions/36604734/rotating-a-pinhole-camera-in-3d) может быть полезно ... – Matso

+0

Прежде чем вы это сделаете: я уверен, что вы не хотите Уголки Эйлера. Вместо этого используйте векторы направления и матрицы, образованные из этих векторов. –

+0

Укажите, что такое rotationX и rotationZ и как определяется ориентация камеры – MBo

ответ

0

Ну я понял это сам

, что я сделал это: cam_rot.x = RadienToDegree (экоса (- (dir.z/SQRT (пау (dir.x, 2) + пау (dir.z , 2))))) - 90; cam_rot.y = RadienToDegree ((M_PI/2 - acos (dir.y)));

Предполагая, что dir является нормированным вектором направленности между тем, где находится моя камера и где она смотрит.

Я не совсем уверен в -90 для RotationX, но мне нужно это в моем случае

работает как шарм Screenshot1

 Смежные вопросы

  • Нет связанных вопросов^_^