显示ARKit节点与真实物体的关系

4
我试图画一个框来帮助别人了解物品的尺寸,但是我一直遇到这样的问题:当我把物品放在平面上时,我需要先识别出这个平面,然后我的框就会被画在物品的前面。有没有可能克服这个问题呢?
参考图片链接:Screenshot
2个回答

3

@John Scalo是对的,你的问题不是需要先检测平面,而是你的渲染引擎不知道你绿色盒子框架的一部分被一个真实世界的物体所遮挡(隐藏)。

"……要想克服这个问题"

是的,通过这样做,您可能会“解决”您原来的问题—帮助别人了解物品的尺寸。

(根据您选择的渲染引擎,例如SceneKit)您可以添加一个无形的3D对象,其尺寸与真实世界的物体相同;因此,渲染引擎将“知道”您的盒子框架的某些部分在此(对于用户而言是不可见的)3D对象的后面。因此,您可以告诉它不绘制您盒子框架的那些部分,这将产生一个错觉 (这里借用了Apple的话),即您的汽水罐周围有盒子。

这些解决方法是不精确的,但也许它们的准确性已足够满足您想要达到的现实主义水平:

  • 选项1:1.检测桌面表面后,在汽水罐上放置一个半透明的3D对象,然后调整它的大小(手势/按钮您自己选择),直到它的尺寸大约等于汽水罐的尺寸。 2.确认您完成了这项工作,并且不要在其上绘制纹理,只需让其遮挡绿色盒子框架即可。

  • 选项2:将设备靠近汽水罐的边缘,并添加足够多的ARAnchor,以能够创建“边界形状”,该形状(再次)可用于捕获真实物体并进行遮挡。

  • 选项3:(强烈且也许是最不准确的)使用手指从各个角度“刷”过物体,并在每次触摸时执行一次命中测试(希望顶部/最近的命中是您的汽水罐的一部分),并通过这种方式建立“边界形状”。

  • 选项X:任何1-2-3的组合。

祝你好运,有很多人正在试图解决此设备/ARKit限制的问题,因此请保持关注好的想法。


0
你正在处理的问题被称为遮挡,而ARKit目前(?)不包括遮挡支持。也许不久的将来,iPhone和iPad将开始配备LIDAR(或类似设备),这样ARKit就能够检测场景中的物体,从而使遮挡变得更容易。

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