LWJGL FPS相机旋转限制为像素

时间:2018-10-10 16:57:44

标签: java opengl lwjgl

尽管我对OpenGl(LWJGL)很熟悉,但我目前正在从事一个小型fps项目的测试工作。我的问题是相机的旋转不是很平稳。它在像素之间“跳跃”,这实际上非常明显。我怎样才能使它平滑? [链接到镜头:] https://www.youtube.com/watch?v=6Hgt1hXCKKA&feature=youtu.be

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

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

我将鼠标移到窗口中心

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

1 个答案:

答案 0 :(得分:1)

一种可能的方法是将输入设备(鼠标,键盘等)的输入(增量)不视为新相机位置或旋转角度的绝对值,而是将其视为冲动或力来移动/旋转在某个方向上。然后,您只需在某些时差dt上使用积分,即可通过一些阻尼/摩擦系数来更新摄像机的位置/旋转,以减少摄像机的平移或角动量,从而使其迅速停止运动。这将是某种物理上的模拟。 另一种可能的方法是通过参数插值:每当您收到输入设备的(增量)输入时,就可以从中计算出一个新的“所需目标位置或旋转角度”,然后在当前和目标之间进行插值逐渐达到目标。