【问题标题】:Procedurally generating objects on surfaces in spatial mapping to improve immersion在空间映射中以程序方式在表面上生成对象以提高沉浸感
【发布时间】:2019-04-29 09:30:43
【问题描述】:

我正在开发一款有助于沉浸感的游戏,我想在一些平坦的水平表面上随机放置一簇草。我目前正在努力意识到是否有一种简单的方法可以使用 Unity 中的混合现实工具包来做到这一点,或者我是否需要为 Hololen 生成三角形的内置表面映射寻找较低级别,这显然需要花费大量时间实施时间更长。

我仔细查看了 MRTK 的空间映射组件,因为这似乎是我想要的部分,但从外观上看,它正在查看 Hololens 提供的网格以进行更新,类似于如果您只是将房间模型导入 Unity 中的 Object Surface Observer。似乎没有任何三角形的迭代生成或点的解释,所以我认为我找错了地方。我也考虑过使用空间理解来创建地板表面,但这样就错过了在桌子或其他更高表面上生成对象的能力。

如果有人有解决方法(我没有足够的声望来内联发布图片),为了更清楚地了解期望的结果:https://i.imgur.com/ctO81d5.png

任何指导将不胜感激!

【问题讨论】:

  • 它们是 MRTK 的一部分,用于计算平面特征,但它仅在“播放前扫描房间”模式下可用,而不是“移动时实时更新”模式。

标签: unity3d hololens windows-mixed-reality mrtk


【解决方案1】:

您可以使用空间映射网格的normals,看看哪些指向上方。

空间映射只是运行时生成的网格。没什么特别的,只是一个 mesh 和其他人一样。此外,它总是在 Layer 31 上,称为 Spatial Mapping

【讨论】:

    【解决方案2】:

    不清楚你想要什么。空间映射是主要用于监控现实的功能。空间网格可能会因帧而异。您应该获取网格,找到平面并获取它们的坐标。

    然后,我认为,您应该为每个找到的表面放置一个锚点。您可以保存锚点,或将它们与另一台设备交换。锚点可以作为草等虚拟物体的产卵点。

    【讨论】:

    • 啊,我明白了。我想我真正要问的是如何检索/访问空间网格,因为它表示为三角形集合,而不是单个块对象?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-06
    • 2019-10-22
    • 1970-01-01
    • 2021-02-17
    • 2020-04-27
    • 2021-10-29
    • 2017-09-29
    相关资源
    最近更新 更多