通过在 Unity 2018.4.12f 中使用 MRTK_V2,我尝试使用第一代 hololens 对多层建筑进行空间映射。hololens 提供了我希望在远程位置(在扫描的建筑物外运行统一应用程序的计算机)近乎实时(大约 10 秒)呈现的空间映射数据。这样做的想法是,远程位置的人可以跟踪扫描过程并在他/她的眼前看到建筑物的 3D 模型,同时也可以在 3D 模型中跟踪 hololens 用户。
我已经拥有映射和跟踪功能,并且能够通过套接字发送序列化网格并在另一端反序列化它们。但是,我无法在接收端的正确位置渲染网格。
在发送网格之前,我尝试将单个网格的顶点从本地空间转换到世界空间,但这不起作用,因为网格的位置由连接到它的世界锚点控制。断开锚点似乎不利,因为这会导致数据出现大量漂移。我想将所有网格连接到空间中的一个点,将它们转换为世界空间,但在我目前对空间映射概念的理解中,这是不可能的。
现在我想知道我是否可以在接收端渲染相对于世界锚点的网格,例如通过使用天蓝色的空间锚点。我可以想象这是不可能的,因为锚点可能需要与现实世界建立联系。此外,锚点在运行时确实会改变它们的位置,因此需要不断更新,使得锚点的使用不太理想。
任何帮助将不胜感激!