【问题标题】:LibGDX Camera rotate around axis high coordinates jerkyLibGDX相机绕轴旋转高坐标生涩
【发布时间】:2017-01-04 19:34:19
【问题描述】:

似乎找不到我以下问题的解决方案。我在 libGDX 中设置了透视凸轮。我使用 .rotateAround 例程来旋转我的相机。这在围绕低坐标旋转时非常有效。但是要旋转的轴的坐标越高,旋转就越不稳定。

在我的 CameraInputController 类中:

@Override
protected boolean process(float deltaX, float deltaY, int button) {

        if (button == Buttons.LEFT) {

        // DRAG CAMERA

        } else if (button == Buttons.RIGHT) {

        // ROTATE CAMERA
        perspectiveCam.rotateAround(new Vector3(clickedX, clickedY, 0), Vector3.Z, deltaX * -100);

        } 

    return true;
}

这行得通:

perspectiveCam.rotateAround(new Vector3(0f, 0f, 0f), Vector3.Z, deltaX * -100) 

以下代码导致小部分拖动,然后突然旋转,然后再次拖动,等等:

perspectiveCam.rotateAround(new Vector3(100000f, 100000f, 0f), Vector3.Z, deltaX * -100)

我知道它的工作原理是平移,然后旋转凸轮,然后将相机向后平移。谁能指出我正确的方向?它是半径/浮点值中的东西吗?

提前致谢!

编辑: 有关“错误”,请参见此处: rotating gif

【问题讨论】:

  • 我很好奇,Vector3.Z 返回什么值? O.o
  • Vector3.Z 是一个新的 Vector3(0,0,1)!我正在转动相机的轴... 编辑:第一个参数 Vector 3 是设置旋转矢量的点,第二个参数是要旋转的轴(Vector.Z),第三个参数是角度(浮动)。

标签: camera libgdx rotation


【解决方案1】:

我在这里找到了答案:https://gamedev.stackexchange.com/questions/57547/vertices-shaking-with-large-camera-position-values

我不知道这是一件事。高位置值的浮点精度。答案是将我的网格移近 (0,0,0)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-15
    • 1970-01-01
    • 2012-07-23
    • 2016-09-22
    • 2018-08-03
    • 1970-01-01
    相关资源
    最近更新 更多