空间理解受限于小区域
Posted
技术标签:
【中文标题】空间理解受限于小区域【英文标题】:Spatial Understanding limited by a small area 【发布时间】:2019-01-20 17:38:49 【问题描述】:我正在使用 Unity 中的 Hololens 并尝试绘制大面积 (15x15x25) 米的地图。我可以使用SpatialMapping
预制件绘制整个区域的地图,但我想对该网格进行一些空间处理以平滑地板和墙壁。我一直在尝试为此使用SpatialUnderstanding
,但似乎有一个硬性限制,您可以使用它扫描多大的区域,hololens forums thread 对此进行了详细说明。
目前,我不明白从SpatialMapping
到SpatialUnderstanding
的数据管道是如何工作的。为什么我不能简单地在SpatialUnderstanding
中使用从SpatialMapping
生成的网格?有没有更好的方法来创建光滑的表面?
【问题讨论】:
【参考方案1】:此解决方案最适合预生成的房间。换句话说,考虑到当前的限制,不可能有一个通用的解决方案,即最终用户可以使用的解决方案。
我将从最后一个问题开始:“有没有更好的方法来创建光滑的表面?”
是的,使用带***的三脚架生成初始扫描。鉴于硬件中加速度计和罗盘的分辨率有限,减少一个线性轴、高度和一个旋转轴的变化,滚动(滚动在扫描期间根本不应该变化),将导致更准确的扫描.
创建平滑曲面的另一种方法是将网格导出到 3D 编辑程序并手动压平曲面,然后将网格重新导入 Unity3D。
“为什么我不能在 SpatialUnderstanding 中简单地使用从 SpatialMapping 生成的网格?”
SpacialUnderstanding
进一步将生成的网格划分为 (8cm,8cm,8cm) 体素,然后根据每个体素计算面元。为了控制性能和内存利用率,硬限制约为(10m、10m、10m)。实现为 (128,128,128) 体素。
任何超出其定义限制使用SpacialUnderstanding
的尝试都会由于底层数据结构的溢出而产生虚假结果。
【讨论】:
您好 Strom,感谢您的回复。你知道是否有办法覆盖SpatialUnderstanding
生成的空间网格的分辨率吗?即,更大的体素,如 (20cm,20cm,20cm)?另外,您知道有一款这样的 3D 程序可以满足我的需求吗?
据我所知,体素大小在 DLL 中是硬编码的。至于 3D 编辑程序:3Ds Max、Maya 和 Blender 是游戏中最常用的程序。其中,Blender 是免费的。以上是关于空间理解受限于小区域的主要内容,如果未能解决你的问题,请参考以下文章