【发布时间】:2016-01-09 19:50:20
【问题描述】:
我正在尝试创建一个简单的 AR 游戏,并且我希望能够检测用户位置是否在 ADF 中。我不确定如何做到这一点。我尝试加载选定的 ADF,然后将设备框架与 ADF 框架进行比较,但它不起作用。我可以推导出一个适合步行的区域,但我也不知道该怎么做。
【问题讨论】:
标签: unity3d augmented-reality google-project-tango
我正在尝试创建一个简单的 AR 游戏,并且我希望能够检测用户位置是否在 ADF 中。我不确定如何做到这一点。我尝试加载选定的 ADF,然后将设备框架与 ADF 框架进行比较,但它不起作用。我可以推导出一个适合步行的区域,但我也不知道该怎么做。
【问题讨论】:
标签: unity3d augmented-reality google-project-tango
如果您加载了 ADF 并且设备已重新本地化,则带有 ADF 框架的设备框架(我将使用符号 adf_T_device)应该可以工作。
在学习模式下,adf_T_device 姿势将在服务启动后立即生效。在学习模式下,这个位姿代表优化后的位姿(闭环)。所以你会看到这个pose开始对start_service_T_devicepose建立一个偏移量,这是因为底层系统正在为它校正pose。
但是,当系统中加载了 ADF 时,在根据加载的 ADF 重新定位设备之前,adf_T_device 姿势将无效。如果您很久没有看到设备重新定位,可能是环境变化太大,系统无法识别。由于物体变化或光照条件变化,这很常见。我建议您录制一个新的 ADF 并重试。此外,当您记录 ADF 时,请尝试从各个角度记录该区域。我一直认为录制过程就像在做喷漆。绘制完所有区域后,ADF 就已正确构建。在 Unity 中,我们有一个区域学习示例场景,展示了如何构建 ADF。
要构建一个可步行的区域,我建议您将世界划分为小的“立方体”,从技术上讲是一个八叉树。八叉树的大小由应用程序的用例决定。在学习模式下,每个 adf_T_device 的位置都应该在八叉树中碰到一个“立方体”,在四处走动(学习区域)后,您将拥有一组可步行的“立方体”。在下次运行或加载 ADF 时,您可以使用此八叉树来测试 ADF 中的特定区域是否有效。
【讨论】: