我和我的团队目前正在为Microsoft hololens开发软件。我们正在使用Unity并在c#中进行编码。目标是对房间进行3D扫描并对其进行纹理处理。之后,它们将被上传到我们的大学服务器,并可下载到VR-PC。 因此,我们现在的问题是,我们不知道如何检测房间的无纹理部分。也许是射线广播? 3D-Mesh总是在变化,这使其变得更难。
答案 0 :(得分:0)
有一个名为“ Spatial Understanding”的过程,该过程可用于检测初始房间扫描的进度。我不确定上面链接的文档是否是当前MRTK的最新版本,或者它们是否引用的是旧版本,但是无论哪种方式,它们都可以是一个很好的起点。
可以看到一个示例here。您可以使用“拓扑查询”来获取地板,天花板和墙壁。根据您的预期空间,当房间的totalArea值超过某个值并且检测到四堵墙,地板和天花板时,您可以考虑完成房间扫描。
即使有这些标签来帮助,何时考虑将房间“完整”的决定也是相当随意的,并且不适用于建筑上怪异或相连的空间,因此,我不会将这种方法作为阻止用户使用的硬性限制即使上传的空间不符合您选择的“空间理解”要求,也可以执行此操作。
为用户提供良好的UX扫描可能是鼓励他们扫描所有内容的最佳方法,其中覆盖的信息会显示检测到的墙壁/地板平面,以帮助他们知道尚未检测到的内容。