【问题标题】:Spatial Understanding limited by a small area空间理解受限于小区域
【发布时间】:2019-01-20 17:38:49
【问题描述】:

我正在使用 Unity 中的 Hololens 并尝试绘制大面积 (15x15x25) 米的地图。我可以使用SpatialMapping 预制件绘制整个区域的地图,但我想对该网格进行一些空间处理以平滑地板和墙壁。我一直在尝试为此使用SpatialUnderstanding,但似乎有一个硬性限制,您可以使用它扫描多大的区域,hololens forums thread 对此进行了详细说明。

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

【问题讨论】:

    标签: c# unity3d spatial hololens


    【解决方案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 是免费的。
    猜你喜欢
    • 1970-01-01
    • 2013-03-19
    • 1970-01-01
    • 1970-01-01
    • 2012-01-28
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    • 1970-01-01
    相关资源
    最近更新 更多