【问题标题】:Rotate camera over centre of a model将相机旋转到模型的中心
【发布时间】:2011-01-23 16:29:19
【问题描述】:

我有 2 个使用 DirectX 9 渲染的网格和一个正在查看 0,0,0 的相机。一个网格位于 0,0,0,另一个位于 5,0,0。我如何将相机旋转 0,0,0 以始终查看两个网格但从新位置?我想按键盘上的箭头键并能够旋转相机

【问题讨论】:

  • 真的有必要同时用 Direct3D9 和 DirectX9 标记问题吗?
  • 你的意思是你想让它看起来两个网格都在原地旋转?
  • 我会将所有 3d 模型旋转到 0,0,0 位置,以便我可以从不同的位置看到它们。不知道是旋转相机还是旋转网格更容易...

标签: c++ direct3d9


【解决方案1】:

从lookat 函数构建相机矩阵。有 d3dx 函数可以构建适当的矩阵。

您想要做的是设置相机,以便您可以让它绕着物体转一圈。假设一个以 2.5,0,0 为中心的半径为 10 的圆。我不确定您要围绕哪个轴旋转,但我假设 z(和 x):

// pseudo
cameraposition= vec3(sin(x)*10.0 + 2.5,0,cos(x)*10)
cameralookat= vec3(2.5,0,0)

欲了解更多信息,请参阅http://msdn.microsoft.com/en-us/library/bb397804.aspx

【讨论】:

    猜你喜欢
    • 2015-03-04
    • 2017-06-07
    • 2019-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-26
    • 2016-01-05
    相关资源
    最近更新 更多