0

我正在使用 LWJGL 开发 Java 游戏,我试图让它旋转以查看 3D 空间中的一个点。我已经尝试了我在互联网上可以找到的所有“lookAt”方法,但我就是无法让它工作(相机只是没有朝正确的方向看)。

你能帮我弄清楚怎么做吗?

编辑:

想通了,只需要反转矩阵。如果您遇到相同的问题,这是最终代码:

public static Matrix4f lookAt(Vector3f eye, Vector3f center, Vector3f up) {
          Vector3f forward = new Vector3f(0, 0, 0);
          Vector3f.sub(center, eye, forward);
          forward.normalise();

          Vector3f side = new Vector3f(0, 0, 0);
          Vector3f.cross(forward, up, side);
          side.normalise();

          Vector3f.cross(side, forward, up);

          Matrix4f matrix = new Matrix4f();
          matrix.m00 = side.x;
          matrix.m01 = side.y;
          matrix.m02 = side.z;
          matrix.m10 = up.x;
          matrix.m11 = up.y;
          matrix.m12 = up.z;
          matrix.m20 = -forward.x;
          matrix.m21 = -forward.y;
          matrix.m22 = -forward.z;
          matrix.invert();

          return matrix;
       }    
4

0 回答 0