我正在使用ARCore和Unity,并且我成功地跟踪了垂直和水平平面。
我有一个倾斜的扁平平台(它很大:4米x 4米,所以它应该被检测到),与地板相比倾斜了大约30度,但平面检测似乎不能在这个平台上工作。
有没有可能跟踪倾斜的飞机/平台,或者你知道怎么做?
提前谢谢。
发布于 2018-11-12 19:45:25
我相信ARCore目前只支持垂直和水平平面跟踪。
There is an open GitHub FR添加了对一般平面检测的支持,但在此期间,您可能需要自己分析点云并拟合平面。
我怀疑如果不过滤到基本方向,这将是昂贵的和/或嘈杂的,这将解释为什么它还没有实现。
也就是说,如果你确定你要找的飞机与地面相比总是30度,你可能会做类似的事情。
您应该能够使用Frame对象中的静态属性PointCloud来检索点云。这就是ARInterface如何为ARCore做到这一点:
public override bool TryGetPointCloud(ref PointCloud pointCloud)
{
if (Session.Status != SessionStatus.Tracking)
return false;
// Fill in the data to draw the point cloud.
m_TempPointCloud.Clear();
Frame.PointCloud.CopyPoints(m_TempPointCloud);
if (m_TempPointCloud.Count == 0)
return false;
if (pointCloud.points == null)
pointCloud.points = new List<Vector3>();
pointCloud.points.Clear();
foreach (Vector3 point in m_TempPointCloud)
pointCloud.points.Add(point);
return true;
}现在你已经得到了点云,你需要将你的平面与之匹配。This tutorial可能会给你一些关于如何去做的洞察力,它涵盖了通过三点进行基本的平面拟合,以及使用RANSAC进行更健壮的多点平面拟合。您可能还想看看this answer和this answer。
https://stackoverflow.com/questions/52584970
复制相似问题