我需要帮助在 3d 中定位矩阵!
大家好!我对编程并不陌生,但我对 3d 编程很陌生。
在我的代码中,我有一个视图矩阵。视图的目标始终是 (0,0,0)。而且我还有一个临时矩阵,它控制相机(我把它的位置并在视图矩阵的 CreateLookAt 方法中使用它)。
这个理论有效,但不像我预期的那样。我可以成功地围绕立方体(左和右)旋转相机,甚至俯仰(上、下)都可以工作。但是当我想向左或向右旋转时会出现我的问题,而相机是向上倾斜(正在看对象的顶部)或向下(从下面看对象)。它“滚动”对象。如果相机表现得好像目标对象没有顶部或底部,我会喜欢它。如果我将相机向上倾斜,然后向右倾斜,相机应该围绕我的对象旋转,而不是在它上面滚动。这很难解释,因为我的母语不是英语。无论如何,如果您理解其中任何一个:D,请回复。谢谢。
tempcam *= Matrix.CreateTranslation(tempcam.Forward * 20);
tempcam = Matrix.CreateFromYawPitchRoll(MathHelper.ToRadians((float)yangle),MathHelper.ToRadians((float)zangle), 0);
tempcam *= Matrix.CreateTranslation(tempcam.Backward * 20);
cameraposition = new Vector3(tempcam.M41, tempcam.M42, tempcam.M43);
view = Matrix.CreateLookAt(cameraposition, new Vector3(0, 0, 0), new Vector3(0, 1, 0));