Как управлять обзором через перемешение курсора мышки?

Добрый день, возник вопрос по поводу изменения координат положения камеры в пространстве.
Итак, что есть: есть простенькая демо-сцена в браузере, где я могу менять положение камеры и угол её наклона.
Меняю положение путём трансляции матрицы камеры (классическая wasd-схема взятая из игр), а угол наклона меняю путём наклона к оси x или y. Угол наклона я вычисляю через координаты курсора на экране.
Такой способ хорош, если бы не было всё в браузере, т.к. в нём возникают проблемы:
1) Ноль считается за ту точку, где находился курсор на момент загрузки страницы. Это самая небольшая проблема, которую я хотя бы представляю как пофиксить.
2) Угол поворота ограничивается границей экрана. Т.е. подвожу курсор к границе - и всё, дальше я не могу поворачиваться.
Подскажите, что я ещё могу использовать для изменения матрицы координат камеры, чтобы границы экрана не ограничивали угол поворота? Мне на ум приходит, не знаю как правильно назвать эту вещь, но что-то вроде "прироста значений к координатам курсора, которые посылаются мышкой в систему", но я не имею малейшего представления как это реализуется и что мне в принципе надо искать.
Реализую на web-gl и java script.
  • Вопрос задан
  • 166 просмотров
Пригласить эксперта
Ответы на вопрос 3
@ehs
Architect / 3d designer
Я думаю надо описать "ускорение" мыши - медленно ведешь - упрешься в край, а быстро дернешь - прокрутишься на 360
Ответ написан
@AlexSku
не буду отвечать из-за модератора
Часто используется:
левая кн. мыши - поворот по y (вертикальная ось),
правая - поворот по x (наклоны),
колесо - зумминг (угол обзора камеры. Обычно 90 гр.)
клавиатура: W - движение вперёд, X - назад;
A - влево, D - вправо (движения перпендикулярно взгляду)
(писал по памяти)
Ответ написан
@shushpanio
shushpanio
А что мешает менять угол при зажатой ЛКМ?
Например зажимаем ЛКМ и ведем курсор влево, а камера вращается с инверсией (вправо).
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
21 нояб. 2024, в 23:30
300000 руб./за проект
21 нояб. 2024, в 22:21
3000 руб./в час
21 нояб. 2024, в 21:42
100000 руб./за проект