Magic Leap One开发经验与教训:如何正确地进行网格划分( 三 )

4. Waypoints

Waypoints是一组相对于中心点的硬编码偏移量。它们常常漂浮在离用户起点不远的地方。Create的Waypoints包括玩家站立位置朝外的每个基本方向各一个,天花板四个,地板一个。选择这种集合是因为我们需要一个天花板,墙壁和地板网格来包含和支撑我们创建的对象。仅需要地板的应用程序可以调整其Waypoints位置,这样系统就只会采集地板数据。

这样当Create开始的时候,系统将跳过用户已经看过的方向的Waypoints。

Magic Leap One开发经验与教训:如何正确地进行网格划分

图2/5

随着新人引导过程的运行,我们将Waypoints推到与轴对齐的边界框。边界框是通过结合头部姿态位置和Control位置,以及深度传感器摄像头的世界网格结果进行定义。在整个新人引导过程中,边界框用于在缺乏世界网格的情况下定义Waypoints的位置。如果世界网格比边界框更近,我们则将Waypoints拉入世界网格。每个Waypoints都定义为一个方向(上,前,右,左)。要从Waypoints方向导出世界网格位置,我们会对所述方向进行光线投射,直到其到达世界网格或边界框。

推荐阅读