LWJGL FPS相机旋转仅限于像素

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LWJGL FPS相机旋转仅限于像素相关的知识,希望对你有一定的参考价值。

我正在研究一个小型的fps项目进行测试,虽然我熟悉OpenGl(LWJGL)。我的问题是相机的旋转不是很平滑。它从像素到像素“跳跃”,这实际上非常明显。我怎样才能抚平呢? [链接到镜头:] https://www.youtube.com/watch?v=6Hgt1hXCKKA&feature=youtu.be

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

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

我正在将鼠标移动到窗口的中心

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

答案

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

以上是关于LWJGL FPS相机旋转仅限于像素的主要内容,如果未能解决你的问题,请参考以下文章

具有基本矩阵变换(WebGL)的类FPS相机运动

FPS 相机上不需要的滚动

相机像素旋转

在 FPS 场景中理解 gluLookAt xyz 旋转的问题

如何为光线投射生成相机光线

LWJGL 使用纹理时颜色混乱 + 经常禁用纹理时会降低 FPS