Tango AR相机中的遮挡问题

32

我有一个简单的Tango Unity应用程序,使用Tango AR Camera预制件在增强现实中显示3D对象。

根据这个问题,我想尝试TangoARScreen提供的遮挡功能

因此,我已经:

  • 选中了“启用遮挡”复选框
  • Tango Manager中启用深度检测
  • 添加了一个Tango Point Cloud,启用了更新点网格

然而,3D对象从未被前景现实世界对象遮挡。我错过了什么?

是否有任何演示“启用遮挡”功能的示例项目?

4个回答

8

请试着查看Unity示例中名为ExperimentalMeshOcclusion的示例。

我刚运行了它,遮挡效果很好,您可以看到场景对象以及所使用的代码。


1
这个例子有自己处理遮挡的方式(基于实验性的网格化),它不使用 TangoARScreen 的“启用遮挡”功能。 - sdabet
所有的Unity3D Tango SDK示例在我运行约30秒后都会崩溃,其他人也遇到了同样的问题。你是如何让它们正常工作的?你能告诉我你使用的Unity版本、SDK版本和设备是哪个吗? - Peter Morris

4
为了在TangoARScreen上使用遮挡,您需要在场景中的TangoPointCloud预制体上勾选Update Points Mesh复选框。

1
正如问题中明确提到的那样,我已经添加了一个启用了“更新点网格”的“Tango点云”。 - sdabet

3

这里没有样例,但是以下是修改现有样例以启用它的步骤。在Phab2上测试过。

  1. 区域学习示例开始。
  2. 在Unity中加载场景并打开你的Hierarchy中的"Tango Point Cloud"检查器。
  3. 在"Tango Point Cloud"脚本下选中"Update Points Mesh"。
  4. 打开"Tango AR Camera"检查器。
  5. 在"Tango AR Screen"脚本下选中"Enable Occlusion"。
  6. 运行应用,并确保通过在一个足够大的物体后面放置一个标记并向后移动足够远,使深度传感器能够看到该物体来进行测试。渲染屏幕上的点云数据可以帮助您确保获得所期望的来自深度传感器的输入。

我发现使用@Oren提到的实验性样例会获得更好的结果。


我会尝试,但是我没有看到我尝试并在我的问题中描述的任何区别,有吗? - sdabet
你列出的步骤是一样的,但你可能是从不同的起点开始的,与Area Learning示例不同?我自己也按照这些步骤在Mac上、Unity 5.5.0f3以及最新的(几天前)Tango更新上成功了。而第6步是基于经验的,我曾认为它不起作用,直到我意识到我离我的遮挡物太近,深度传感器无法捕捉到它。只有当我打开点云显示时,我才意识到它有多挑剔。 - Jethro
这对我没有用.. 我从一个干净的区域学习示例开始。 有什么想法? - ShadowMan

0

这个问题似乎已经在最新版本的Tango SDK中得到了修复。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接