好吧,这快把我逼疯了。我已经浏览了大量示例,但似乎无法完全满足我的需求。我正在使用 XNA,我有一个顶点平面,我的相机在天空中俯视顶点。
我想要的是在 Y 轴上旋转相机,基本上得到与调整其 YAW 相同的结果。但是,每当我尝试绕 Y 轴旋转或调整其 YAW 时,实际上都没有发生任何事情。然而,我可以通过在世界上创建一个 Y 旋转矩阵来获得我想要的效果,但这感觉不是“正确”的做法,我希望相机本身旋转而不是世界。这是我所拥有的代码片段:
cameraPosition = Vector3.Transform(new Vector3(
cameraOffset.X - cameraOffset.X,
zoomAmount,
cameraOffset.Z - cameraOffset.Z),
Matrix.CreateRotationY(rotationAngle)) + cameraOffset;
view = Matrix.CreateLookAt(cameraPosition, cameraTarget, new Vector3(0, 0, 1));
谢谢!