Bar*_*ula 4 c++ directx 3d directx-11 game-engine
我已经实现了一个简单的弧球相机,它运行良好 - 当我使用鼠标时,我用滚动、俯仰和哈欠更新视图矩阵。
但是,为了正确计算镜面反射,我需要世界空间中的当前相机位置,在应用旋转时本身不会更新。
你们知道如何从视图矩阵中检索当前位置吗?或者还有其他方法可以更新吗?
您有一些简单的选择:
通过调用 XMMatrixInverse 或 D3DXMatrixInverse 来反转视图矩阵,从而得到“CameraWorld”矩阵。那么它的 (_41,_42,_43) 元素将是位置向量。
反转视图矩阵(例如上次)但不是读取 roe,而是使用 XMMatrixDecompose 或 D3DXMatrixDecompose 来获取相机位置和方向。
一个好主意是在程序内存中同时拥有 View 和 InvView 矩阵,以便快速访问这些信息:矩阵求逆的计算成本很高。
| 归档时间: |
|
| 查看次数: |
9546 次 |
| 最近记录: |