【问题标题】:View Matrix in DirectX 11 - strange transformationsDirectX 11 中的查看矩阵 - 奇怪的转换
【发布时间】:2012-09-19 18:25:18
【问题描述】:

我正在为 3ds max 编写一个基于 DirectX 11 的渲染器插件。

我从 3ds max 得到实际的视口矩阵,在反转后看起来: [Rx Ry Rz] [Ux Uy Uz] [Dx Dy Dz] [Px Py Pz]

  • 其中 R 代表 Right,U 代表 Up,D id 方向,P 代表 Position。

我正在将此视图矩阵应用于 DirectX (本人基于rastertek教程:http://www.rastertek.com/dx11tut04.html) 但是我没有创建自己的视图矩阵,而是使用 3ds max 的这个视图矩阵, 它具有基本相同的结构: [Rx Ry Rz 0] [Ux Uy Uz 0] [Dx Dy Dz 0] [Px Py Pz 1]

起初一切似乎都很好,因为最大视口中的视图和 DirectX 窗口中的渲染视图看起来几乎相同。但是最大视口和 DirectX 窗口中的变换并不相同。看起来像:当我在最大移动相机位置时,DirectX 中的相机目标正在移动,而当我在最大移动相机目标(或旋转相机)时,DirectX 中的相机位置正在移动。

感谢您的帮助... 3天都想不通了……

【问题讨论】:

    标签: sdk directx-11 3dsmax 3ds


    【解决方案1】:

    我终于找到了解决办法……

    首先,我从 3ds max 矩阵中提取方向和位置并手动创建 视图矩阵,但使用:D3DXMatrixLookAtRH 和 D3DXMatrixPerspectiveFovRH(用于投影矩阵)而不是 D3DXMatrixPerspectiveFovLH 和 D3DXMatrixLookAtLH 解决了大部分问题...

    然后,我注意到 3ds max 矩阵在平移相机期间没有更新(仅更新了位置)所以,为了查看视图矩阵中的向量,我使用了“位置方向”...

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-08
      • 1970-01-01
      • 2012-07-15
      • 1970-01-01
      • 2018-02-08
      相关资源
      最近更新 更多