gpt4 book ai didi

c++ - 如何从 View 矩阵获取当前相机位置?

转载 作者:搜寻专家 更新时间:2023-10-31 00:56:36 24 4
gpt4 key购买 nike

我已经实现了一个简单的弧形球相机并且它运行良好 - 当我使用鼠标时,我用滚动、俯仰和打哈欠更新了 View 矩阵。

但是,为了正确计算镜面反射,我需要世界空间中的当前相机位置,它在应用旋转时本身不会更新。

你们知道如何从 View 矩阵中检索当前位置吗?或者还有其他更新方法吗?

最佳答案

您有一些简单的选择:

  1. 通过调用 XMMatrixInverse 或 D3DXMatrixInverse 反转 View 矩阵,从而获得“CameraWorld”矩阵。那么它的 (_41,_42,_43) 个元素就是位置 vector 。

  2. 反转 View 矩阵(例如上次)但不读取 roe,而是使用 XMMatrixDecompose 或 D3DXMatrixDecompose 来获取相机位置和方向。

一个好主意是在程序内存中同时拥有 View 和 InvView 矩阵,以便快速访问这些信息:矩阵求逆的计算量很大。

  • View 矩阵只是相机世界矩阵的逆变换(只是忘记系统的左手或右手)。

关于c++ - 如何从 View 矩阵获取当前相机位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39280104/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com