【发布时间】:2015-01-11 21:34:35
【问题描述】:
如何使相机位置取决于模型中特定元素(网格/骨骼)的旋转和位置。
#region CameraModeEye
if (mode == CameraMode.Eye) // do poprawienia
{
Matrix[] transforms = new Matrix[objectModel.Model.Bones.Count];
objectModel.Model.CopyBoneTransformsTo(transforms);
// test
Matrix World = (transforms[objectModel.Model.Meshes["Eye"].ParentBone.Index] * objectModel.Transform) * transforms[3];
new_position = transforms[3].Forward;
new_lookAt = new_position + Vector3.Forward;
camVector = Vector3.Up;
}
#endregion
...
view = Matrix.CreateLookAt(new_position, new_lookAt, camVector);
我有一个机器人模型(形状为 蝎子),其中包含以下元素: 身体、头部、眼睛。
“Head”随X轴旋转,依赖于“Body” 而“Eye”随Y轴旋转,依赖于“Head”。
我希望摄像机位置稍微偏离“眼睛”。 我尝试了很多方法,但每次都得到这样的结果:
World.Forward {X: -2,301742E-24 Y: 3,456487E-14 Z -1}
实际上应该是这样的:
{X: -10.0 Y: 500.0 Z: 0}
我无法理解。 我厌倦了两天,我找不到解决方案。 请帮忙
【问题讨论】:
标签: c# model camera xna position