Надеюсь, простой ответ, но я не могу его получить.
У меня есть движок 3D-рендеринга, который я написал.
У меня есть положение камеры, положение взгляда и вектор вверх.
Я хочу иметь возможность наклонять камеру влево, вправо, вверх и вниз. Как камера на фиксированном штативе, которую вы можете взять за ручку и наклонить ее вверх, вниз, влево, вправо и т. Д.
Математика ставит меня в тупик. Мне удалось выполнить панорамирование вперед / назад и панорамирование вверх / вниз / влево / вправо, но я не могу обработать векторную математику, чтобы заставить ее наклоняться.
Для наклона влево и вправо я хочу повернуть положение поворота вокруг положения камеры, но мне нужно учитывать вектор подъема, в противном случае поворот не знает, какую ось повернуть.
Математика / алгоритм, который мне нужен, похож на ...
Камера = (сх, су, CZ)
LookAt = (лк, LY, LZ)
Up = (их, иу, UZ)
RotatePointAroundVector (лк, LY, LZ, их, иу, UZ, сумма)
Кто-нибудь может помочь с математикой?
Большое спасибо.