ARKit —简单的动手体验
大家好,我又是安东尼奥 👋上一次我们进行互动时,我写了一篇关于增强现实(AR)的简单技术介绍,以及它令人惊讶的惊人程度🌟,因此,如果您还没有读过,请仔细阅读。 我保证它不会像它的标题那样令人无聊,使您相信。 😅
全面披露,这篇博客不是要教您ARKit的基础知识,那里已经有很多很好的教程(这是一个非常酷的教程!),我不想只写其中一个。 我想带您经历一个实际的初步动手体验过程,并使用一种很有前途的,崭露头角的技术,这种技术可以带来实际有用的AR体验,而不仅仅是一些松散耦合的技术展示。功能和头。 (这句话满口是形容词,但这是重点!)因此,事不宜迟,让我们开始吧。
ARKit
正如我在上一篇文章中提到的那样,我决定试乘ARKit,然后让我告诉您,这是什么旅程!
对于那些以前从未听说过ARKit的人来说,它是苹果公司开发iOS增强现实应用程序的官方工具包。 它利用了他们最新的A11芯片和深度感知相机,具有以下功能:
- 会话之间的持久性AR体验 ,可以在以后恢复;
- AR会话也可以由多个用户同时共享 ,每个用户都有自己的iOS设备。
- 现实环境中的平面和表面检测 ;
- 真实世界中图像和物体的特征检测 ;
- 真实环境中的图像和物体检测与跟踪 ;
- 物理引擎,用于AR对象相互之间及其环境交互。
而且,我们只是在摸索,每批功能的数量,它们的可靠性以及它们相互补充的方式都超出了我们的预期。 😁
因此,为了体验此技术奇迹并获得启发,我下载了iOS 12和Xcode 10 (ARKit 2的最低要求),下载了所有Apple演示,几个开源项目,并深深地欣赏了它们的优点。 我立刻被迷住了。 使用SwiftShot播放或观看以下视频。 这不是no头,太神奇了!
首先,我们要做的就是将CoreLocation导入到我们的项目中,接下来我们需要设置一个LocationManager,它将不断向我们提供用户的GPS位置。 就我们的应用而言,由于AR已经耗尽了电池的电量,因此我决定采用可以走动的精度,但可以尝试其他精度。
全面披露:地球的曲率不会以任何可见的方式影响我们的应用程序,因为我们将处理最大2 Km的“小”距离,但要考虑潜在的问题并选择使用ARCL作为缓解措施,我们已经在提出更严格的要求。 😉
AR POI场景
与我们的第一个AR场景一样,使用ARCL框架添加我们最近购买的POI也不需要很多。 我们将从他们的书中摘取一页,并创建一个扩展了LocationNode (又扩展了SCNNode )的自定义节点:我们自己的LocationTextAnnotationNode 。
LocationTextAnnotationNode由一个文本子节点组成,用于显示POI的名称及其与当前位置的相对距离。 还有一个图像节点,我们可以在视觉上在AR场景中定位POI。 如您所见,大多数代码本身都是关于如何以美学方式呈现每个节点的,几乎没有考虑到如何将其全部放入AR场景中……🤔感谢ARCL的努力!
创建后,每个LocationTextAnnotationNode都将添加到AR场景。 很简单,对吧?
POI路由
既然已经将POI正确放置在我们的AR场景中,我们希望能够与它们交互,从而使我们能够选择目的地并询问前往该目的地的路线。 设置点击手势识别器并不太麻烦,我们只需要对AR场景中被点击的位置进行命中测试,检索所有受影响的场景节点,然后选择第一个符合条件的匹配项即可。
选择了POI之后,我们要询问从当前位置到其GPS坐标的方向,我们将其作为连续的路线段捆绑进行寻址,最后将这些方向转换为可添加到AR场景的场景节点。
就是这样,我们拥有AR应用程序所需的一切:
- ✅知道用户当前的GPS位置;
- ✅可以搜索附近的景点,例如餐馆,古迹,旅游景点等;
- ✅在用户所在的位置周围有一个AR场景;
- s将POI相对于用户在AR场景中的当前位置放置;
- ✅选择POI时,将获取从用户当前位置到其GPS位置的方向;
- ✅方向将作为节点和路段添加到AR场景中,从而定义了一条清晰的路线。
如果您需要更多有关如何将所有东西很好地粘合在一起的线索,请务必在仓库中检查成品,因为我不得不省略本文的大部分代码库,以确保您既得利益。 😅
哦,别忘了将应用程序带出去兜风! 😃
我希望这篇文章能补充上一篇文章,让您更深入地了解AR开发的神奇世界,并有可能进一步激发您开发自己的应用程序。 我很想知道您最终会创建什么,所以请随时通知我!
再一次,我将在页面末尾保留一堆材料,这些材料以某种形状或形式帮助我撰写了这篇文章。 随时发表评论或将您可能发现的其他有趣/有用的项目和教程发送给我,我将在这里包括它们。
再见! 👋
苹果展示ARKit
- https://developer.apple.com/arkit/
- https://developer.apple.com/arkit/gallery/
- https://www.apple.com/lae/ios/augmented-reality/
官方ARKit文档
- https://developer.apple.com/documentation/arkit
- https://developer.apple.com/documentation/arkit/arworldmap
- https://developer.apple.com/documentation/arkit/creating_a_multiuser_ar_experience
- https://developer.apple.com/documentation/arkit/handling_3d_interaction_and_ui_controls_in_augmented_reality
- https://developer.apple.com/documentation/arkit/handling_3d_interaction_and_ui_controls_in_augmented_reality
- https://developer.apple.com/documentation/arkit/recognizing_images_in_an_ar_experience
- https://developer.apple.com/documentation/arkit/scanning_and_detecting_3d_objects
- https://developer.apple.com/documentation/arkit/swiftshot_creating_a_game_for_augmented_reality
- https://developer.apple.com/documentation/arkit/swiftshot_creating_a_game_for_augmented_reality
- https://developer.apple.com/documentation/arkit/using_vision_in_real_time_with_arkit
其他Apple官方文件
- https://developer.apple.com/documentation/corelocation
- https://developer.apple.com/documentation/vision/tracking_multiple_objects_or_rectangles_in_video
WWDC在ARKit上的视频
- https://developer.apple.com/videos/play/wwdc2018/602
- https://developer.apple.com/videos/play/wwdc2018/603
- https://developer.apple.com/videos/play/wwdc2018/610
- https://developer.apple.com/videos/play/wwdc2018/805
ARKit库
- https://github.com/chriswebb09/ARKitNavigationDemo
- https://github.com/DanijelHuis/HDAugmentedReality
- https://github.com/olucurious/Awesome-ARKit
- https://github.com/ProjectDent/ARKit-CoreLocation
杂项 文章
- https://medium.com/journey-of-one-thousand-apps/arkit-and-corelocation-part-one-fc7cb2fa0150
- https://rubygarage.org/blog/create-augmented-reality-app-for-ios-11
- https://www.3dgep.com/understanding-quaternions/
- https://www.raywenderlich.com/110054/routing-mapkit-core-location
- https://www.raywenderlich.com/146436/augmented-reality-ios-tutorial-location-based-2
- https://www.raywenderlich.com/171726/why-i-love-arkit-apple-ios-11
- https://youtu.be/WTiakRbUF3g
AR资产
- http://graphics.pixar.com/usd/docs/USD-Frequently-Asked-Questions.html
- http://graphics.pixar.com/usd/downloads.html
- https://medium.com/@konathalasuren/all-about-apples-new-usdz-file-format-simplified-12dff29f3fc0