我想知道是否有人能够使用 ARCore SDK 实时识别设备前方的垂直平面。
我通过使用直线方程定义墙来获得不错的结果:
z = Multiplier * x + Constant (For every y)
通过“对于每个 y”注释,我的意思是我忽略 y 轴(像房间的二维映射一样从上面看墙),以便计算定义墙的线。
乘数是点之间的旋转:
let angleDeg = Float((360 - angle + 360) % 360) * Float.pi / 180.0;
所有的计算是:
let angle: Int = Int((atan2(pointA.z - pointB.z, pointA.x - pointB.x) * 180) / Float.pi) % 360
yRotation = Float((360 - angle + 360) % 360) * Float.pi / 180.0
if pointA.x == pointB.x {
multiplier = Float.infinity
} else {
multiplier = (pointA.z - pointB.z) / (pointA.x - pointB.x)
}
constant = pointA.z - multiplier * pointA.x
}
现在,我在用户四处走动并对许多点云的点进行采样时触发该计算。
结果不错,但不如 ARCore 的水平面检测准确。
您可以参考Google AR Core官方github repo上的这个问题https://github.com/google-ar/arcore-unity-sdk/issues/31。此功能在 ARCore SDK for unity (v1.2.0) 中发布SDK link正如问题中提到的。希望这可以帮助 :)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)