LibGDX:旋转相机时如何将对象保持在相同的可视屏幕位置

时间:2016-12-30 16:07:40

标签: math 3d libgdx google-cardboard

我有一个3D,Y-up世界和一个透视相机。 当我开始我的世界时,我的相机位于(0,0,0)位置(0,0,1)。 现在我将3D模型放在(10,5,10)。 (让它成为一个立方体)

当我开始围绕3个轴旋转相机甚至平移/移动它时,需要做什么(平移,旋转......)以保持此对象在视觉上相同的位置?

如果我希望能够更改模型的位置但是保持模型与相机的距离相同,还有什么必要?

我想要实现的是一个对象,我可以在其中显示玩家的当前高分,无论玩家在哪里看,它总是在例如右上角。在正常的应用程序中,我可以使用Scene2D,但是当我为Google的Cardboard开发时,Scene2D不再起作用了。 (因为我们为每只眼睛设置了两种不同的透视图设置,这些设置不能用于舞台的OrthographicCamera)。

1 个答案:

答案 0 :(得分:0)

所以你在这里尝试做的事情可以通过给立方体一个相对于相机变换的变换来数学地完成 - 基本上使相机成为你的立方体所关注的原点。

但是,如果我可以提出更好的方法 - 您可以创建一个单独的PerspectiveCamera,它保留在原点(或任何地方),并负责将UI与游戏的其余部分分开。它使用与Scene2D相同的原理,但不那么复杂,如果您不支持Google Cardboard,可以更轻松地在以后关闭用户界面。