空间理解受限于小区域

7
我正在使用Unity中的Hololens,尝试映射一个大区域(15x15x25)米。我能够使用预制件映射整个区域,但我想对该网格进行一些空间处理以平滑地处理地板和墙壁。我一直在尝试使用来实现这一点,但是似乎有一个硬性限制,即可以使用此扫描的区域大小,这已经由hololens forums thread详细说明。
目前,我不理解从到的数据管道如何工作。为什么我不能简单地在中使用从生成的网格?是否有更好的方法创建平滑的表面?
1个回答

1
这个解决方案最适合预先生成的房间。换句话说,当前限制条件下不可能有一个通用的解决方案,可以期望终端用户使用。
我将从最后一个问题开始:“是否有更好的创建平滑表面的方法?” 是的,使用带有轮子的三脚架来生成初始扫描。鉴于硬件中加速度计和罗盘的有限分辨率,减少一个线性轴高度和一个旋转轴roll(在扫描过程中roll不应该变化)的方差,将导致更准确的扫描。创建平滑表面的另一种方法是将网格导出到3D编辑程序中并手动平整表面,然后重新导入网格到Unity3D。
“为什么我不能简单地使用从SpatialMapping生成的网格在SpatialUnderstanding中?” SpatialUnderstanding进一步将生成的网格分成(8cm,8cm,8cm)体素,然后根据每个体素计算surfels。为了保持性能和内存利用率,硬性限制约为(10m,10m,10m),即实现为(128,128,128)体素。
任何试图超出其定义限制使用 SpacialUnderstanding 的尝试,都会由于底层数据结构的溢出而产生虚假结果。

你好Strom,谢谢你的回复。您知道是否有一种方法可以覆盖 SpatialUnderstanding 生成的空间网格的分辨率吗?例如更大的像素(20cm,20cm,20cm)?此外,您是否知道这样的3D程序可以满足我的需求? - Ricky Avina
据我所知,体素大小在DLL中是硬编码的。就3D编辑程序而言:3Ds Max、Maya和Blender是游戏中最常用的程序。其中,Blender是免费的。 - user10316640

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接