使用 ARKit 3.0 一次最多只能检测和跟踪 4 张图像

Only able to detect and track up to 4 images at a time with ARKit 3.0

使用下面的代码,我在使用 ARKit 时一次最多只能检测和跟踪 4 张图像。

ARImageTrackingConfiguration *configuration = [ARImageTrackingConfiguration new];  
configuration.trackingImages = [ARReferenceImage referenceImagesInGroupNamed:@"AR Resources" bundle:nil];  
configuration.maximumNumberOfTrackedImages = 100;  
[self.sceneView.session runWithConfiguration:configuration]; 

有谁能证实我看到的是什么?我需要能够跟踪更多的 images/markers,当我在 ARKit 3 公告中看到这个功能时我很兴奋。

如果有人能够复制这个就太好了,所以我知道我不是在想象事情^^

我希望这不是 Apple 的限制,8 年前 3DS 可以检测和跟踪超过 4 张图像。

更新:2021 年 6 月 10 日。

ARKit 5.0

在最新版本的 ARKit 中,您最多可以同时跟踪 100 张图像。

ARKit 4.0

在 ARKit 4.0 中,您最多可以同时跟踪 4 张图像。不超过四个。

尽管ARKit 3.0官方文档说.maximumNumberOfTrackedImages实例属性可以等于100,但这百张图片只是会话中跟踪图片的总数。 Apple 软件工程师将图像跟踪功能限制为一次 四张图像。这是有道理的,因为一次跟踪四个以上的图像非常 CPU- 和 GPU-expensive.

Also, you can read about it .

- (void)viewWillAppear:(BOOL)animated {

    [super viewWillAppear:animated];

    ARWorldTrackingConfiguration *config = [ARWorldTrackingConfiguration new];
    config.detectionImages = [ARReferenceImage referenceImagesInGroupNamed:@"Resources" bundle:nil];

    config.maximumNumberOfTrackedImages = 100;       // in ARKit 3.0
    // config.maximumNumberOfTrackedImages = 25;     // in ARKit 2.0

    [self.sceneView.session runWithConfiguration:config];
}

在对 ARImageTrackingConfiguration 的评论中找到官方答案:

@discussion Image tracking provides 6 degrees of freedom tracking of known images. Four images may be tracked simultaneously.

编辑:在 ARConfiguration.h 的第 336 行

中找到