在低端设备中支持ARKit?

时间:2017-09-02 13:24:41

标签: swift arkit

在Apple演示文稿中,他们说如果不支持ARWorldTrackingConfiguration,我们可以使用较小的AROrientationTrackingConfiguration(以前称为ARSessionConfiguration)。

但是当我在A8设备(iPad mini 4)上试用它时,是否让byte[] img = null; var tapImage = new TapGestureRecognizer(); tapImage.Tapped += tapImage_Tapped; image.GestureRecognizers.Add(tapImage); private async void tapImage_Tapped(object sender, EventArgs e) { using (var memoryStream = new MemoryStream()) { file.GetStream().CopyTo(memoryStream); file.Dispose(); img = memoryStream.ToArray(); memoryStream.Dispose(); } } private void Insert(object sender, EventArgs e) { if(img != null) { var options = new InformationTable { Id = Guid.NewGuid().ToString(), Quantity = TxtQuantity.Text, Issue = Ccheck.Checked.ToString(), Info = TxtInfo.Text, image = Convert.ToBase64String(img), }; _connection.Insert(options); } } 失败没有区别。跟踪只是不工作。

ARWorldTrackingConfiguration()

如果A8不支持ARKit,那么支持AROrientationTrackingConfiguration()是什么意思?

3 个答案:

答案 0 :(得分:4)

所有ARKit仅支持A9及更高版本,包括AROrientationTrackingConfiguration。正如他们在ARKit docs ...

的顶部所说的那样
  

重要   ARKit需要具有A9或更高版本处理器的iOS设备。

     

要使您的应用仅在支持ARKit的设备上可用,请使用应用的Info.plist的UIRequiredDeviceCapabilities部分中的arkit密钥。如果增强现实是应用程序的辅助功能,请使用isSupported属性来确定当前设备是否支持您要使用的会话配置。

因此,您确实可以制作仅适用于iOS 11设备子集的iOS 11应用程序。 UIRequiredDeviceCapabilities中需要的内容使App Store不会在您不支持的设备上提供您的应用,并使iTunes拒绝安装该应用。

(是的,看起来苹果花了一些时间才能直接了解他们的故事。回到WWDC,看起来他们在较小的设备上支持3DOF跟踪,但现在你需要A9。)

那么AROrientationTrackingConfiguration现在的意义何在?

对于某些类型的应用,当当前条件不允许6DOF时,从世界跟踪(6DOF)回退到仅定向跟踪(3DOF)可能是有意义的。对于将虚拟对象放在桌面上的应用程序来说,这没有多大意义,但如果您只是让空间入侵者在空中让玩家进行射击,或者使用AR覆盖天空中的星座,失去6DOF并没有破坏这么多的经历。

答案 1 :(得分:0)

我认为Apple以虚拟方式实现了这个接口,不支持ARKit的设备如果在应用程序中使用ARKit并且使用比A9 +设备更少的功能运行它们就不会崩溃。

答案 2 :(得分:0)

如果您想支持更多设备,8th Wall XR是您想要的库。它支持比最新iOS更多的设备。如果你决定让你的应用进入该细分市场,相同的代码也适用于Android。