У меня есть 3D-сцена (я использую UrhoSharp), и вся "активность" сосредоточена вокруг (0,0,0).
Я бы хотел, чтобы пользователь мог перемещать камеру и просматривать сцену.
Я думал о том, чтобы использовать сферические координаты, и когда пользователь удерживает левую кнопку мыши, я перемещаю камеру вдоль поверхности сферы. Это простая математика для расчета позиции.
Затем я бы использовал колесо мыши, чтобы отрегулировать радиус (расстояние от центра).
Это приводит к ситуации, когда камера может быть перевернута, поэтому, удерживая правую кнопку мыши, я могу повернуть вектор вверх камеры (думаю, мне придется рассчитать касательную вдоль сферы в этой точке).
Я пытался реализовать это, но движение камеры не очень интуитивно понятно.
Так что я ищу предложения (и математические) о том, как лучше всего иметь возможность свободно перемещать камеру с помощью мыши.