@John Scalo是对的,你的问题不是需要先检测平面,而是你的渲染引擎不知道你绿色盒子框架的一部分被一个真实世界的物体所遮挡(隐藏)。
"……要想克服这个问题"
是的,通过这样做,您可能会“解决”您原来的问题—帮助别人了解物品的尺寸。
(根据您选择的渲染引擎,例如SceneKit)您可以添加一个无形的3D对象,其尺寸与真实世界的物体相同;因此,渲染引擎将“知道”您的盒子框架的某些部分在此(对于用户而言是不可见的)3D对象的后面。因此,您可以告诉它不绘制您盒子框架的那些部分,这将产生一个错觉 (这里借用了Apple的话),即您的汽水罐周围有盒子。
这些解决方法是不精确的,但也许它们的准确性已足够满足您想要达到的现实主义水平:
选项1:1.检测桌面表面后,在汽水罐上放置一个半透明的3D对象,然后调整它的大小(手势/按钮您自己选择),直到它的尺寸大约等于汽水罐的尺寸。 2.确认您完成了这项工作,并且不要在其上绘制纹理,只需让其遮挡绿色盒子框架即可。
选项2:将设备靠近汽水罐的边缘,并添加足够多的ARAnchor
,以能够创建“边界形状”,该形状(再次)可用于捕获真实物体并进行遮挡。
选项3:(强烈且也许是最不准确的)使用手指从各个角度“刷”过物体,并在每次触摸时执行一次命中测试(希望顶部/最近的命中是您的汽水罐的一部分),并通过这种方式建立“边界形状”。
选项X:任何1-2-3的组合。
祝你好运,有很多人正在试图解决此设备/ARKit限制的问题,因此请保持关注好的想法。