启用自动对焦会在我的AR场景中引起跟踪问题吗?

时间:2019-07-15 15:52:47

标签: unity3d augmented-reality arcore

我正在使用AR Core和Unity 2018.2.20f在Galaxy S7上构建AR场景,在其中我使用AugmentedImageVisualizer跟踪图像并将3d gameObject放在前面。为了跟踪图像,我需要启用自动对焦。问题是我的锚在周围摇晃,有时会完全移开并消失。从调试看来,相机的自动对焦可能会导致跟踪问题。

到目前为止,我最好的解决方法是在检测到图像后将摄像机配置切换为固定,但切换到固定焦点时锚移动的时间的1/3。如果一旦摄像机定焦后锚仍然在视线内,则跟踪效果很好。

其他人以前是否注意到过此问题?有没有一种方法可以更具体地控制相机对焦?

1 个答案:

答案 0 :(得分:0)

如果使用ARCore 1.9或更高版本,则对增强图像的跟踪比以前的版本有所改进。请从下面的链接中找到正式版本。

链接: https://github.com/google-ar/arcore-unity-sdk/releases

就调试而言,将配置设置为自动模式就可以了。有时,如果在配置中同时使用平面跟踪和增强图像,则可能会出现抖动。

此外,也无需使用增强可视化器来检测增强图像。以下代码可以帮助跟踪增强图像并放置任何3D对象。

using GoogleARCore;

private List<AugmentedImage> augmentedImages = new List<AugmentedImage>();

public GameObject AndyObject;//object to place on the image

private bool Is_Placed=false;

void Update()
{
  Session.GetTrackables<AugmentedImage>(augmentedImages, 
                          TrackableQueryFilter.Updated);
  foreach (var image in augmentedImages)
  {
    if (image.TrackingState == TrackingState.Tracking &&     Is_Placed==false)
    {
       Anchor anchor=image.CreateAnchor(image.CenterPose);
       var andyref = Instantiate(AndyObject,image.CenterPose.position,
                                     image.CenterPose.rotation);
       andyref.transform.parent=anchor.transform;
       Is_Placed=true;//To only place the object once
     }
   }
}