在空间映射中以程序方式在表面上生成对象以提高沉浸感

Procedurally generating objects on surfaces in spatial mapping to improve immersion

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

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

为了在任何人有解决方法的情况下更清楚地了解预期的结果(我没有足够的声誉 post 图像内联):https://i.imgur.com/ctO81d5.png

任何指导将不胜感激!

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

然后,我认为您应该为每个找到的表面放置一个锚点。您可以保存锚点,或与另一台设备交换它们。锚点可以充当草等虚拟对象的生成点。

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

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