空间理解受到一个小区域的限制



我正在与Unity的Hololens一起工作,并试图绘制一个大面积(15x15x25)米的地图。我可以使用SpatialMapping预制板绘制整个区域的地图,但我想对该网格进行一些空间处理,以使地板和墙壁平滑。我一直在尝试使用SpatialUnderstanding,但似乎有一个硬限制,你可以用它扫描多大的区域,全息透镜论坛线程已经详细介绍了这一点。

目前,我不了解从SpatialMappingSpatialUnderstanding的数据管道是如何工作的。为什么我不能在SpatialUnderstanding中简单地使用从SpatialMapping生成的网格?有没有更好的方法来创建光滑的表面?

此解决方案最适用于预生成的房间。换言之,考虑到目前的限制,一个可以被最终用户使用的通用解决方案是不可能的。

  • 我将从最后一个问题开始:"有没有更好的方法来创建光滑的表面?">

    • 是的,使用带轮子的三脚架生成初始扫描。考虑到硬件中加速计和指南针的分辨率有限,减少一个线性轴、高度和一个旋转轴滚动(滚动在扫描过程中根本不应变化)的变化将导致更准确的扫描。

    • 创建平滑曲面的另一种方法是将网格导出到三维编辑程序并手动展平曲面,然后将网格重新导入Unity3D。

  • "为什么我不能在空间理解中简单地使用从空间映射生成的网格?">

SpacialUnderstanding进一步将生成的网格划分为(8cm,8cm,8cm)体素,然后基于每个体素计算表面。为了控制性能和内存利用率,硬限制约为(10米、10米和10米)。这被实现为(128128128)个体素。

任何试图使用SpacialUnderstanding超过其定义限制的行为,都会由于底层数据结构的溢出而产生虚假的结果。

相关内容

最新更新