LWJGL FPS 相机旋转仅限于像素

LWJGL FPS Camera rotation is limited to pixels

虽然我熟悉 OpenGl (LWJGL),但我目前正在做一个用于测试的小型 fps 项目。我的问题是相机的旋转不是很顺畅。它"jumps"从一个像素到另一个像素,其实很明显。我怎样才能把它弄平? [Link 到素材:] https://www.youtube.com/watch?v=6Hgt1hXCKKA&feature=youtu.be

我的代码总结: 我将当前鼠标位置存储在 Vector2f 中;

我通过相机的相对移动(新位置 - 旧位置)增加偏航和俯仰;

我正在将鼠标移动到 window

的中心

我将当前位置(window 的中心)存储在旧位置 Vector2f

一种可能的方法是不将输入设备(鼠标、键盘等)的(增量)输入视为新相机位置或旋转角度的绝对值,而是将它们视为推动或力 move/rotate在某个方向。然后,您只需使用一些时间微分 dt 上的积分,用一些 damping/friction 因子更新相机 position/rotation,以减少相机的平移或 angular 动量,使其快速停下来。这将是某种物理 模拟 。 另一种可能的方法是通过 参数插值 :每当您收到输入设备的(增量)输入时,您都会从中计算出一个新的 "desired target position or rotation angle",然后在当前和目标之间进行插值随着时间的推移达到该目标的状态。