Tag: opengl 4

修复3D相机朝其面向的方向移动?

短版(TL; DR) 我有一个连接到SceneNode的Camera ,只要SceneNode的旋转/轴与世界对齐,运动就可以正常工作。 然而,当一个物体旋转到另一个方向“看”并被告知“向前”移动时,它不会沿着新的“向前”方向移动。 相反,它继续沿着应用旋转之前面向的方向移动。 细节和例子 我有一个场景图来管理3D场景。 该图是SceneNode对象的树,它们知道它们相对于父级和世界的变换。 根据TL; DR; 片段,假设您有一个零旋转的cameraNode (例如朝北),然后将cameraNode向左旋转+ Y“向上”轴向左旋转90度,即向西看。 到目前为止事情还可以。 如果您现在尝试将cameraNode “向前”移动(现在向西),则cameraNode会移动,就像“向前”仍然朝向北方一样。 简而言之,它就像从未在第一时间旋转一样移动。 下面的代码显示了我最近尝试过的内容以及我(当前)最佳猜测,即缩小最可能与问题相关的区域。 相关的SceneNode成员 SceneNode实现具有以下字段(仅显示与此问题相关的字段): class GenericSceneNode implements SceneNode { // this node’s parent; always null for the root scene node in the graph private SceneNode parentNode; // transforms are relative to a parent scene node, if any private […]