LWJGL FPS Вращение камеры ограничено пикселями - PullRequest
0 голосов
/ 10 октября 2018

Я сейчас работаю над небольшим fps-проектом для тестирования, хотя я знаком с OpenGl (LWJGL).Моя проблема здесь в том, что вращение камеры не очень плавное.Он «прыгает» от пикселя к пикселю, что на самом деле очень очевидно.Как я могу сгладить это?[Ссылка на отснятый материал:] https://www.youtube.com/watch?v=6Hgt1hXCKKA&feature=youtu.be

Сводка моего кода: я сохраняю текущую позицию мыши в Vector2f;

Я увеличиваю рыскание и наклон благодаря относительному движениюкамера (новая позиция - старая позиция);

Я перемещаю мышь к центру окна

Я сохраняю текущую позицию (центр окна) в старойпозиция Vector2f

1 Ответ

0 голосов
/ 10 октября 2018

Один из возможных способов - трактовать (дельта) ввод вашего устройства ввода (мышь, клавиатура и т. Д.) Не как абсолютные значения для вашей новой позиции камеры или углов поворота, а рассматривать их как импульс или силу для перемещения / поворота.в определенном направлении.Затем вы просто используете интегрирование по некоторым временным дифференциалам dt, чтобы обновить положение / вращение камеры с некоторым коэффициентом демпфирования / трения, чтобы уменьшить поступательный или угловой момент камеры, чтобы она быстро остановилась.Это было бы несколько физическое моделирование .Другой возможный подход - через параметрическую интерполяцию : всякий раз, когда вы получаете (дельта) вход вашего устройства ввода, вы вычисляете из него новую «желаемую целевую позицию или угол поворота», а затем интерполируете между текущим и целевым состояниемсо временем, чтобы достичь этой цели.

...