【问题标题】:XNA model translation is bizzarreXNA模型翻译很奇怪
【发布时间】:2013-04-03 21:52:07
【问题描述】:

当使用Matrix.CreateTranslation(x,y,z) 时,我得到了奇怪的结果。我使用固定值进行了测试,一次一个变量,并确定了以下内容:

  • 改变X坐标时,模型从左上角移动到右下角。

  • 当改变 Y 坐标时,模型会上下移动。

  • 我不打算改变 Z 坐标,但由于我的程序的性质,我无法弄清楚它究竟做了什么。

我画了我的模型。旋转工作正常。我正在以正确的顺序进行翻译(至少我认为):scale * rotation * translation

我认为问题出在我的相机设置上,但我不知道到底是什么问题。我正在尝试创建一个自上而下的 RTS 相机。

这是我的相机设置:

campos = new Vector3(5000.0F, 5000.0F, 5000.0F)
effect.View = Matrix.CreateLookAt(campos, Vector3.Down, Vector3.Up)

我可以根据需要提供更多信息。

【问题讨论】:

    标签: vb.net 3d xna camera


    【解决方案1】:

    Matrix.CreateLookAt的第二个参数不是相机朝向的方向,而是目标点。

    如果您试图让相机向下看,请使用

    Matrix.CreateLookAt(campos, campos + Vector3.Down, Vector3.Forward)
    

    这将告诉相机始终注视相机下方一个单位的点。

    您的翻译可能效果不佳,因为相机没有对准您想要的位置,因此看起来模型正在对角线移动。

    【讨论】:

    • 好的,以前我尝试这个时,我的模型根本不会出现。我已经解决了这个问题,但翻译问题仍然存在。我在每个刻度的 X 位置添加 5,然后它向屏幕的右下角移动。
    猜你喜欢
    • 1970-01-01
    • 2015-05-14
    • 1970-01-01
    • 2016-09-06
    • 1970-01-01
    • 2012-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多