我正在使用LWJGL 3构建一个简单的Java游戏引擎(用于输入/窗口的GLFW,用于渲染的OpenGL)和用于某些数学的JOML(非常有用)。当我构建引擎时,我自然而然地构建了一个利用它的游戏,它目前的形式是一个非常简单的太空飞行模拟器[think Elite(1984)]。
情况:我目前正在开发第一人称相机系统,其中相机是船[没有headlook的驾驶舱视图]。我有3个系统:
*编辑:为翻译工作,我正在努力进行轮换。
问题:给定一个矩阵(或四元数,如果那更容易/更好)表示相机的旋转(通过从当前方向减去最后一个方向获得)我需要找到一个数字代表围绕给定轴的当前旋转速度(例如,摄像机,用于俯仰),以便“计算机”可以在相反方向上施加扭矩,直到围绕该轴的运动为零。
也就是说,当我停止提供音高输入(mouse.y在死区内)时,计算机将提供音高输入(像播放器一样)以减少绕横轴(局部x或摄像机右侧)的旋转为零。 / p>