确定向上向量并在 Matrix.CreateLookat 中变换向量



我有

Vector3 PlayerPosition = new Vector3(0,0,0);
Matrix JetztMatrix = Matrix.CreateRotationX(pitch) * Matrix.CreateRotationY(yaw);
ef.View = Matrix.CreateLookAt(PlayerPosition, Vector3.Transform(new Vector3(?1,?2,?3), JetztMatrix) + PlayerPosition, new Vector3(?4,?5,?6));

不知何故,我总是达到某个阈值,所以屏幕滚动而不是旋转。

因此,例如,我将-180°到+180°作为偏航。这导致一个转弯,但不是在一条直线上。正如我所说,它移动然后屏幕滚动,然后再次移动。

如何确定 ?1 到 ?6

ef.View = Matrix.CreateLookAt(PlayerPosition, playerPosition + JetzMatrix.Forward, Vector3.Up);

Vector3.Up将防止相机滚动。根据您的问题,很难确切地理解您想要最终得到什么。如果这不能解决您的问题或产生其他一些不良运动,请更详细地描述您想要的功能。

最新更新