我是新来的。在根据相机的视角渲染模型的最后一点(这是一个词吗?)时,我遇到了一些麻烦。
我已经成功地创建了我的 3D 相机,能够在 3D 空间中旋转它,并移动/旋转我的枪模型以与相机的移动/旋转相对应。
然而,最后一部分,我无法弄清楚。我试图在相机的旋转轴上偏移枪模型的位置,但找不到任何关于如何做到这一点的信息。
这是我到目前为止的代码,没有我想要的偏移量。
GunWorldMatrix = Matrix.CreateScale(0.5f) *
CameraRotation *
Matrix.CreateTranslation(CameraPosition);
可以这么说,它最终将枪“放在我的头上”。完美地定位和旋转模型,但我不知道如何根据它自己的轴或相机的轴添加任何偏移量。(因此您可以将其置于臀部射击位置等)
虽然,这;
Matrix view = Matrix.CreateLookAt(new Vector3(0, 2, 0), new Vector3(0, 0, 0), Vector3.UnitY);
作为观点,有了这个;
GunWorldMatrix = Matrix.CreateScale(0.5f) *
Matrix.CreateRotationX(-0.15f) *
Matrix.CreateTranslation(new Vector3(0.2f, 1.65f, 0f));
因为如果 Guns World Matrix 被冻结在没有旋转的轴上,它就会完美定位……这可能有帮助,也可能没有帮助。有任何想法吗?