从世界空间中的旋转矩阵中查找关于任意轴的旋转分量

时间:2016-05-24 06:57:05

标签: java opengl math matrix lwjgl

我正在使用LWJGL 3构建一个简单的Java游戏引擎(用于输入/窗口的GLFW,用于渲染的OpenGL)和用于某些数学的JOML(非常有用)。当我构建引擎时,我自然而然地构建了一个利用它的游戏,它目前的形式是一个非常简单的太空飞行模拟器[think Elite(1984)]。

情况:我目前正在开发第一人称相机系统,其中相机是船[没有headlook的驾驶舱视图]。我有3个系统:

  • 直接 - 相机随输入移动,不停止。没有加速,感觉非常像调试工具(它是)。的 工作
  • 不稳定 - 输入沿着/围绕局部轴(向前,向上,向右)增加力/扭矩。这种做法和感觉非常像精英危险的飞行辅助关闭[或相当于星际公民,因为我是公正的]。的 工作
  • 稳定 - 在给定输入时非稳定工作但在没有输入的情况下(在给定轴上),“计算机”将施加必要的力/扭矩以停止沿/向左移动那个轴。这项工作[读:会工作]像精英危险与飞行辅助。 无效 *

*编辑:为翻译工作,我正在努力进行轮换。

问题:给定一个矩阵(或四元数,如果那更容易/更好)表示相机的旋转(通过从当前方向减去最后一个方向获得)我需要找到一个数字代表围绕给定轴的当前旋转速度(例如,摄像机,用于俯仰),以便“计算机”可以在相反方向上施加扭矩,直到围绕该轴的运动为零。

也就是说,当我停止提供音高输入(mouse.y在死区内)时,计算机将提供音高输入(像播放器一样)以减少绕横轴(局部x或摄像机右侧)的旋转为零。 / p>

0 个答案:

没有答案
相关问题